Package ai.djl.repository.zoo
Class ZooModel<I,O>
java.lang.Object
ai.djl.repository.zoo.ZooModel<I,O>
- Type Parameters:
I
- the model input typeO
- the model output type
- All Implemented Interfaces:
Model
,AutoCloseable
-
Constructor Summary
ConstructorDescriptionZooModel
(Model model, Translator<I, O> translator) Constructs aZooModel
given the model and translator. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Casts the model to support a different precision level.void
close()
Returns the input descriptor of the model.Returns the output descriptor of the model.getArtifact
(String name) Finds an artifact resource with a given name in the model.<T> T
getArtifact
(String name, Function<InputStream, T> function) Attempts to load the artifact using the given function and cache it if the specified artifact is not already cached.getArtifactAsStream
(String name) Finds an artifact resource with a given name in the model.String[]
Returns the artifact names associated with the model.getBlock()
Gets the block from the Model.Returns the standard data type used within the model.Returns the directory from where the model is loaded.getName()
Gets the model name.Gets theNDManager
from the model.Returns the model's properties.getProperty
(String key) Returns the property of the model based on property name.Translator<I,
O> Returns the default translator.Returns the wrapped model.void
load
(InputStream modelStream, Map<String, ?> options) Loads the model from theInputStream
with the options provided.void
Loads the model from themodelPath
with the name and options provided.Creates a new Predictor based on the model with the default translator.newPredictor
(Device device) Creates a new Predictor based on the model with the default translator and a specified device.<P,
Q> Predictor<P, Q> newPredictor
(Translator<P, Q> translator, Device device) Creates a new Predictor based on the model.newTrainer
(TrainingConfig trainingConfig) Creates a newTrainer
instance for a Model.void
Saves the model to the specifiedmodelPath
with the name provided.void
Sets the block for the Model for training and inference.void
setDataType
(DataType dataType) Sets the standard data type used within the model.void
setProperty
(String key, String value) Sets a property to the model.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface ai.djl.Model
getProperty, load, load, load, newPredictor, quantize
-
Constructor Details
-
ZooModel
Constructs aZooModel
given the model and translator.- Parameters:
model
- the model to wraptranslator
- the translator
-
-
Method Details
-
load
Loads the model from themodelPath
with the name and options provided. -
load
Loads the model from theInputStream
with the options provided.- Specified by:
load
in interfaceModel
- Parameters:
modelStream
- theInputStream
to load the model fromoptions
- engine specific load model options, see documentation for each engine- Throws:
IOException
- when IO operation fails in loading a resource
-
getWrappedModel
Returns the wrapped model.- Returns:
- the wrapped model
-
save
Saves the model to the specifiedmodelPath
with the name provided.- Specified by:
save
in interfaceModel
- Parameters:
modelPath
- the directory or file path of the model locationmodelName
- the new model name to be saved, use null to keep original model name- Throws:
IOException
- when IO operation fails in loading a resource
-
getModelPath
Returns the directory from where the model is loaded.- Specified by:
getModelPath
in interfaceModel
- Returns:
- the directory of the model location
-
getBlock
Gets the block from the Model. -
setBlock
Sets the block for the Model for training and inference. -
getName
Gets the model name. -
getProperty
Returns the property of the model based on property name.- Specified by:
getProperty
in interfaceModel
- Parameters:
key
- the name of the property- Returns:
- the value of the property
-
setProperty
Sets a property to the model.properties will be saved/loaded with model, user can store some information about the model in here.
- Specified by:
setProperty
in interfaceModel
- Parameters:
key
- the name of the propertyvalue
- the value of the property
-
getProperties
Returns the model's properties.- Specified by:
getProperties
in interfaceModel
- Returns:
- the model's properties
-
newTrainer
Creates a newTrainer
instance for a Model.- Specified by:
newTrainer
in interfaceModel
- Parameters:
trainingConfig
- training configuration settings- Returns:
- the
Trainer
instance
-
newPredictor
Creates a new Predictor based on the model with the default translator.- Returns:
- an instance of
Predictor
-
newPredictor
Creates a new Predictor based on the model with the default translator and a specified device.- Parameters:
device
- the device to use for prediction- Returns:
- an instance of
Predictor
-
newPredictor
Creates a new Predictor based on the model.- Specified by:
newPredictor
in interfaceModel
- Type Parameters:
P
- the input object for pre-processingQ
- the output object from postprocessing- Parameters:
translator
- the object used for pre-processing and postprocessingdevice
- the device to use for prediction- Returns:
- an instance of
Predictor
-
getTranslator
Returns the default translator.- Returns:
- the default translator
-
describeInput
Returns the input descriptor of the model.It contains the information that can be extracted from the model, usually name, shape, layout and DataType.
- Specified by:
describeInput
in interfaceModel
- Returns:
- a PairList of String and Shape
-
describeOutput
Returns the output descriptor of the model.It contains the output information that can be obtained from the model.
- Specified by:
describeOutput
in interfaceModel
- Returns:
- a PairList of String and Shape
-
getArtifactNames
Returns the artifact names associated with the model.- Specified by:
getArtifactNames
in interfaceModel
- Returns:
- an array of artifact names
-
getArtifact
Attempts to load the artifact using the given function and cache it if the specified artifact is not already cached.Model will cache loaded artifact, so the user doesn't need to keep tracking it.
String synset = model.getArtifact("synset.txt", k -> IOUtils.toString(k)));
- Specified by:
getArtifact
in interfaceModel
- Type Parameters:
T
- the type of the returned artifact object- Parameters:
name
- the name of the desired artifactfunction
- the function to load the artifact- Returns:
- the current (existing or computed) artifact associated with the specified name, or null if the computed value is null
- Throws:
IOException
- when IO operation fails in loading a resource
-
getArtifact
Finds an artifact resource with a given name in the model.- Specified by:
getArtifact
in interfaceModel
- Parameters:
name
- the name of the desired artifact- Returns:
- a
URL
object ornull
if no artifact with this name is found - Throws:
IOException
- when IO operation fails in loading a resource
-
getArtifactAsStream
Finds an artifact resource with a given name in the model.- Specified by:
getArtifactAsStream
in interfaceModel
- Parameters:
name
- the name of the desired artifact- Returns:
- a
InputStream
object ornull
if no resource with this name is found - Throws:
IOException
- when IO operation fails in loading a resource
-
getNDManager
Gets theNDManager
from the model.- Specified by:
getNDManager
in interfaceModel
- Returns:
- the
NDManager
-
setDataType
Sets the standard data type used within the model.- Specified by:
setDataType
in interfaceModel
- Parameters:
dataType
- the standard data type to use
-
getDataType
Returns the standard data type used within the model.- Specified by:
getDataType
in interfaceModel
- Returns:
- the standard data type used within the model
-
cast
Casts the model to support a different precision level.For example, you can cast the precision from Float to Int
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceModel
-