mxnet
Macros | Typedefs | Functions
c_predict_api.h File Reference

C predict API of mxnet, contains a minimum API to run prediction. This file is self-contained, and do not dependent on any other files. More...

Go to the source code of this file.

Macros

#define MXNET_DLL
 Inhibit C++ name-mangling for MXNet functions. More...
 

Typedefs

typedef unsigned int mx_uint
 manually define unsigned int More...
 
typedef float mx_float
 manually define float More...
 
typedef void * PredictorHandle
 handle to Predictor More...
 
typedef void * NDListHandle
 handle to NDArray list More...
 

Functions

MXNET_DLL const char * MXGetLastError ()
 Get the last error happeneed. More...
 
MXNET_DLL int MXPredCreate (const char *symbol_json_str, const void *param_bytes, int param_size, int dev_type, int dev_id, mx_uint num_input_nodes, const char **input_keys, const mx_uint *input_shape_indptr, const mx_uint *input_shape_data, PredictorHandle *out)
 create a predictor More...
 
MXNET_DLL int MXPredCreatePartialOut (const char *symbol_json_str, const void *param_bytes, int param_size, int dev_type, int dev_id, mx_uint num_input_nodes, const char **input_keys, const mx_uint *input_shape_indptr, const mx_uint *input_shape_data, mx_uint num_output_nodes, const char **output_keys, PredictorHandle *out)
 create a predictor wich customized outputs More...
 
MXNET_DLL int MXPredGetOutputShape (PredictorHandle handle, mx_uint index, mx_uint **shape_data, mx_uint *shape_ndim)
 Get the shape of output node. The returned shape_data and shape_ndim is only valid before next call to MXPred function. More...
 
MXNET_DLL int MXPredSetInput (PredictorHandle handle, const char *key, const mx_float *data, mx_uint size)
 Set the input data of predictor. More...
 
MXNET_DLL int MXPredForward (PredictorHandle handle)
 Run a forward pass to get the output. More...
 
MXNET_DLL int MXPredPartialForward (PredictorHandle handle, int step, int *step_left)
 Run a interactive forward pass to get the output. This is helpful for displaying progress of prediction which can be slow. User must call PartialForward from step=0, keep increasing it until step_left=0. More...
 
MXNET_DLL int MXPredGetOutput (PredictorHandle handle, mx_uint index, mx_float *data, mx_uint size)
 Get the output value of prediction. More...
 
MXNET_DLL int MXPredFree (PredictorHandle handle)
 Free a predictor handle. More...
 
MXNET_DLL int MXNDListCreate (const char *nd_file_bytes, int nd_file_size, NDListHandle *out, mx_uint *out_length)
 Create a NDArray List by loading from ndarray file. This can be used to load mean image file. More...
 
MXNET_DLL int MXNDListGet (NDListHandle handle, mx_uint index, const char **out_key, const mx_float **out_data, const mx_uint **out_shape, mx_uint *out_ndim)
 Get an element from list. More...
 
MXNET_DLL int MXNDListFree (NDListHandle handle)
 Free a MXAPINDList. More...
 

Detailed Description

C predict API of mxnet, contains a minimum API to run prediction. This file is self-contained, and do not dependent on any other files.

Copyright (c) 2015 by Contributors

Macro Definition Documentation

#define MXNET_DLL

Inhibit C++ name-mangling for MXNet functions.

Typedef Documentation

typedef float mx_float

manually define float

typedef unsigned int mx_uint

manually define unsigned int

typedef void* NDListHandle

handle to NDArray list

typedef void* PredictorHandle

handle to Predictor

Function Documentation

MXNET_DLL const char* MXGetLastError ( )

Get the last error happeneed.

Returns
The last error happened at the predictor.
MXNET_DLL int MXNDListCreate ( const char *  nd_file_bytes,
int  nd_file_size,
NDListHandle out,
mx_uint out_length 
)

Create a NDArray List by loading from ndarray file. This can be used to load mean image file.

Parameters
nd_file_bytesThe byte contents of nd file to be loaded.
nd_file_sizeThe size of the nd file to be loaded.
outThe out put NDListHandle
out_lengthLength of the list.
Returns
0 when success, -1 when failure.
MXNET_DLL int MXNDListFree ( NDListHandle  handle)

Free a MXAPINDList.

Parameters
handleThe handle of the MXAPINDList.
Returns
0 when success, -1 when failure.
MXNET_DLL int MXNDListGet ( NDListHandle  handle,
mx_uint  index,
const char **  out_key,
const mx_float **  out_data,
const mx_uint **  out_shape,
mx_uint out_ndim 
)

Get an element from list.

Parameters
handleThe handle to the NDArray
indexThe index in the list
out_keyThe output key of the item
out_dataThe data region of the item
out_shapeThe shape of the item.
out_ndimThe number of dimension in the shape.
Returns
0 when success, -1 when failure.
MXNET_DLL int MXPredCreate ( const char *  symbol_json_str,
const void *  param_bytes,
int  param_size,
int  dev_type,
int  dev_id,
mx_uint  num_input_nodes,
const char **  input_keys,
const mx_uint input_shape_indptr,
const mx_uint input_shape_data,
PredictorHandle out 
)

create a predictor

Parameters
symbol_json_strThe JSON string of the symbol.
param_bytesThe in-memory raw bytes of parameter ndarray file.
param_sizeThe size of parameter ndarray file.
dev_typeThe device type, 1: cpu, 2:gpu
dev_idThe device id of the predictor.
num_input_nodesNumber of input nodes to the net, For feedforward net, this is 1.
input_keysThe name of input argument. For feedforward net, this is {"data"}
input_shape_indptrIndex pointer of shapes of each input node. The length of this array = num_input_nodes + 1. For feedforward net that takes 4 dimensional input, this is {0, 4}.
input_shape_dataA flatted data of shapes of each input node. For feedforward net that takes 4 dimensional input, this is the shape data.
outThe created predictor handle.
Returns
0 when success, -1 when failure.
MXNET_DLL int MXPredCreatePartialOut ( const char *  symbol_json_str,
const void *  param_bytes,
int  param_size,
int  dev_type,
int  dev_id,
mx_uint  num_input_nodes,
const char **  input_keys,
const mx_uint input_shape_indptr,
const mx_uint input_shape_data,
mx_uint  num_output_nodes,
const char **  output_keys,
PredictorHandle out 
)

create a predictor wich customized outputs

Parameters
symbol_json_strThe JSON string of the symbol.
param_bytesThe in-memory raw bytes of parameter ndarray file.
param_sizeThe size of parameter ndarray file.
dev_typeThe device type, 1: cpu, 2:gpu
dev_idThe device id of the predictor.
num_input_nodesNumber of input nodes to the net, For feedforward net, this is 1.
input_keysThe name of input argument. For feedforward net, this is {"data"}
input_shape_indptrIndex pointer of shapes of each input node. The length of this array = num_input_nodes + 1. For feedforward net that takes 4 dimensional input, this is {0, 4}.
input_shape_dataA flatted data of shapes of each input node. For feedforward net that takes 4 dimensional input, this is the shape data.
num_output_nodesNumber of output nodes to the net,
output_keysThe name of output argument. For example {"global_pool"}
outThe created predictor handle.
Returns
0 when success, -1 when failure.
MXNET_DLL int MXPredForward ( PredictorHandle  handle)

Run a forward pass to get the output.

Parameters
handleThe handle of the predictor.
Returns
0 when success, -1 when failure.
MXNET_DLL int MXPredFree ( PredictorHandle  handle)

Free a predictor handle.

Parameters
handleThe handle of the predictor.
Returns
0 when success, -1 when failure.
MXNET_DLL int MXPredGetOutput ( PredictorHandle  handle,
mx_uint  index,
mx_float data,
mx_uint  size 
)

Get the output value of prediction.

Parameters
handleThe handle of the predictor.
indexThe index of output node, set to 0 if there is only one output.
dataUser allocated data to hold the output.
sizeThe size of data array, used for safe checking.
Returns
0 when success, -1 when failure.
MXNET_DLL int MXPredGetOutputShape ( PredictorHandle  handle,
mx_uint  index,
mx_uint **  shape_data,
mx_uint shape_ndim 
)

Get the shape of output node. The returned shape_data and shape_ndim is only valid before next call to MXPred function.

Parameters
handleThe handle of the predictor.
indexThe index of output node, set to 0 if there is only one output.
shape_dataUsed to hold pointer to the shape data
shape_ndimUsed to hold shape dimension.
Returns
0 when success, -1 when failure.
MXNET_DLL int MXPredPartialForward ( PredictorHandle  handle,
int  step,
int *  step_left 
)

Run a interactive forward pass to get the output. This is helpful for displaying progress of prediction which can be slow. User must call PartialForward from step=0, keep increasing it until step_left=0.

1 int step_left = 1;
2 for (int step = 0; step_left != 0; ++step) {
3  MXPredPartialForward(handle, step, &step_left);
4  printf("Current progress [%d/%d]\n", step, step + step_left + 1);
5 }
Parameters
handleThe handle of the predictor.
stepThe current step to run forward on.
step_leftThe number of steps left
Returns
0 when success, -1 when failure.
MXNET_DLL int MXPredSetInput ( PredictorHandle  handle,
const char *  key,
const mx_float data,
mx_uint  size 
)

Set the input data of predictor.

Parameters
handleThe predictor handle.
keyThe name of input node to set. For feedforward net, this is "data".
dataThe pointer to the data to be set, with the shape specified in MXPredCreate.
sizeThe size of data array, used for safety check.
Returns
0 when success, -1 when failure.