# Model
```java
import com.mindspore.model;
```
Model defines model in MindSpore for compiling and running.
## Public Member Functions
| function |
| ------------------------------------------------------------ |
| [boolean build(Graph graph, MSContext context, TrainCfg cfg)](#build) |
| [boolean build(MappedByteBuffer buffer, int modelType, MSContext context, char[] dec_key, String dec_mode)](#build) |
| [boolean build(final MappedByteBuffer buffer, int modelType, MSContext context)](#build) |
| [boolean build(String modelPath, int modelType, MSContext context, char[] dec_key, String dec_mode)](#build) |
| [boolean build(String modelPath, int modelType, MSContext context)](#build) |
| [boolean predict()](#predict) |
| [boolean runStep()](#runstep) |
| [boolean resize(List inputs, int[][] dims)](#resize) |
| [List getInputs()](#getinputs) |
| [List getOutputs()](#getoutputs) |
| [MSTensor getInputsByTensorName(String tensorName)](#getinputsbytensorname) |
| [MSTensor getOutputByTensorName(String tensorName)](#getoutputbytensorname) |
| [List getOutputsByNodeName(String nodeName)](#getoutputsbynodename) |
| [List getOutputTensorNames()](#getoutputtensornames) |
| [boolean export(String fileName, int quantizationType, boolean isOnlyExportInfer,List outputTensorNames)](#export) |
| [List getFeatureMaps()](#getfeaturemaps) |
| [boolean updateFeatureMaps(List features](#updatefeaturemaps) |
| [boolean setTrainMode(boolean isTrain)](#settrainmode) |
| [boolean getTrainMode()](#gettrainmode) |
| [boolean setLearningRate(float learning_rate)](#setlearningrate) |
| [boolean setupVirtualBatch(int virtualBatchMultiplier, float learningRate, float momentum)](#setupvirtualbatch) |
| [void free()](#free) |
| [ModelType](#modeltype) |
## build
```java
public boolean build(Graph graph, MSContext context, TrainCfg cfg)
```
Compile MindSpore model by computational graph.
- Parameters
- `graph`: computational graph.
- `context`: compile context.
- `cfg`: train config.
- Returns
Whether the build is successful.
```java
public boolean build(MappedByteBuffer buffer, int modelType, MSContext context, char[] dec_key, String dec_mode)
```
Compile MindSpore model by computational graph buffer.
- Parameters
- `buffer`: computational graph buffer.
- `modelType`: computational graph type, optional MindIR, ONNX.
- `context`: compile context.
- `dec_key`: define the key used to decrypt the ciphertext model. The key length is 16, 24, or 32.
- `dec_mode`: define the decryption mode. Options: AES-GCM, AES-CBC.
- Returns
Whether the build is successful.
```java
public boolean build(final MappedByteBuffer buffer, int modelType, MSContext context)
```
Compile MindSpore model by computational graph buffer, the default is MindIR model type.
- Parameters
- `buffer`: computational graph buffer.
- `modelType`: computational graph type, optional MindIR, ONNX.
- `context`: compile context.
- Returns
Whether the build is successful.
```java
public boolean build(String modelPath, int modelType, MSContext context, char[] dec_key, String dec_mode)
```
Compile MindSpore model by computational graph file.
- Parameters
- `modelPath`: computational graph file.
- `modelType`: computational graph type, optional MindIR, ONNX.
- `context`: compile context.
- `dec_key`: define the key used to decrypt the ciphertext model. The key length is 16, 24, or 32.
- `dec_mode`: define the decryption mode. Options: AES-GCM, AES-CBC.
- Returns
Whether the build is successful.
```java
public boolean build(String modelPath, int modelType, MSContext context)
```
Compile MindSpore model by computational graph file,no decrypt.
- Parameters
- `modelPath`: computational graph file.
- `modelType`: computational graph type, optional MindIR, ONNX.
- `context`: compile context.
- Returns
Whether the build is successful.
## predict
```java
public boolean predict()
```
Run predict.
- Returns
Whether the predict is successful.
## runStep
```java
public boolean runStep()
```
Run train by step.
- Returns
Whether the run is successful.
## resize
```java
public boolean resize(List inputs, int[][] dims)
```
Resize inputs shape.
- Parameters
- `inputs`: Model inputs.
- `dims`: Define the new inputs shape.
- Returns
Whether the resize is successful.
## getInputs
```java
public List getInputs()
```
Get the input MSTensors of MindSpore model.
- Returns
The MindSpore MSTensor list.
## getOutputs
```java
public List getOutputs()
```
Get the output MSTensors of MindSpore model.
- Returns
The MindSpore MSTensor list.
## getInputsByTensorName
```java
public MSTensor getInputsByTensorName(String tensorName)
```
Get the input MSTensors of MindSpore model by the node name.
- Parameters
- `tensorName`: Define the tensor name.
- Returns
MindSpore MSTensor.
## getOutputsByNodeName
```java
public List getOutputsByNodeName(String nodeName)
```
Get the output MSTensors of MindSpore model by the node name.
- Parameters
- `nodeName`: Define the node name.
- Returns
The MindSpore MSTensor list.
## getOutputTensorNames
```java
public List getOutputTensorNames()
```
Get output tensors names of the model compiled by this session.
- Returns
The vector of string as output tensor names in order.
## getOutputByTensorName
```java
public MSTensor getOutputByTensorName(String tensorName)
```
Get the MSTensors output of MindSpore model by the tensor name.
- Parameters
- `tensorName`: Define the tensor name.
- Returns
MindSpore MSTensor.
## export
```java
public boolean export(String fileName, int quantizationType, boolean isOnlyExportInfer,List outputTensorNames)
```
Export the model.
- Parameters
- `fileName`: Model file name.
- `quantization_type`: The quant type.
- `isOnlyExportInfer`: Is only export infer.
- `outputTensorNames`: The output tensor names for export.
- Returns
Whether the export is successful.
## getFeatureMaps
```java
public List getFeatureMaps()
```
Get the FeatureMap.
- Returns
FeatureMaps tensor list.
## updatefeaturemaps
```java
public boolean updateFeatureMaps(List features)
```
Update model Features.
- Parameters
- `features`: New featureMaps tensor List.
- Returns
Whether the model features is successfully update.
## settrainMode
```java
public boolean setTrainMode(boolean isTrain)
```
Set train mode.
- Parameters
- `isTrain`: Is train mode.
## gettrainmode
```java
public boolean getTrainMode()
```
Get train mode.
- Returns
Whether the model work in train mode.
## setLearningRate
```java
public boolean setLearningRate(float learning_rate)
```
set learning rate.
- Parameters
- `learning_rate`: learning rate.
- Returns
Whether the set learning rate is successful.
## setupVirtualBatch
```java
public boolean setupVirtualBatch(int virtualBatchMultiplier, float learningRate, float momentum)
```
Set the virtual batch.
- Parameters
- `virtualBatchMultiplier`: virtual batch multuplier.
- `learningRate`: learning rate.
- `momentum`: monentum.
- Returns
Whether the virtual batch is successfully set.
## free
```java
public void free()
```
Free Model.
## ModelType
```java
import com.mindspore.config.ModelType;
```
Model file type.
```java
public static final int MT_MINDIR = 0;
public static final int MT_AIR = 1;
public static final int MT_OM = 2;
public static final int MT_ONNX = 3;
public static final int MT_MINDIR_OPT = 4;
```