API¶
Defines
- 
DISABLE_COPY_AND_ASSIGN(classname)¶ 
Enums
Functions
- 
void 
initPaddle(int argc, char **argv)¶ Initialize paddle.
In python, this method should be invoked as
import sys import paddle paddle.initPaddle(sys.argv) or you can change arguments as any list of str.
- 
bool 
isGpuVersion()¶ Return true if this py_paddle is compiled in GPU Version.
Variables
- 
const size_t 
NO_SPARSE_ID¶ In Python, -1UL is hard to write. So define a const value used by python side.
- 
class 
IOError¶ - #include <PaddleAPI.h>
The Error of IO Operation. Such as file not found, etc.
 
- 
class 
RangeError¶ - #include <PaddleAPI.h>
Out of range error.
 
- 
class 
UnsupportError¶ - #include <PaddleAPI.h>
Not support Error, such as access GPU memory directly, etc.
 
- 
struct 
FloatArray¶ - #include <PaddleAPI.h>
This type will map to python’s list of float.
Public Functions
- 
FloatArray(const float *b, const size_t l)¶ 
 - 
 
- 
struct 
IntArray¶ - #include <PaddleAPI.h>
This type will map to python’s list of int.
Public Functions
- 
IntArray(const int *b, const size_t l, bool f = false)¶ 
 - 
 
- 
struct 
IntWithFloatArray¶ - #include <PaddleAPI.h>
This type will map to python’s list of (int, float)
Public Functions
- 
IntWithFloatArray(const float *v, const int *i, size_t l, bool f = false)¶ 
 - 
 
- 
class 
Matrix¶ Public Functions
- 
virtual 
~Matrix()¶ 
- 
void 
toNumpyMatInplace(float **view_data, int *dim1, int *dim2)¶ Cast to numpy matrix.
Example:
import paddle m = paddle.Matrix.createZero(10,2) numpy_mat = m.toNumpyMat()
- Note
 This method take no parameter in python.
This method in python will return a numpy matrix, not void.
Only CpuDenseMatrix is supported.
- 
void 
copyToNumpyMat(float **view_m_data, int *dim1, int *dim2)¶ Copy To numpy mat.
- 
void 
copyFromNumpyMat(float *data, int dim1, int dim2)¶ Copy From Numpy Mat.
- 
bool 
isSparse() const¶ return true if this matrix is sparse.
- 
SparseValueType 
getSparseValueType() const¶ 
- 
SparseFormatType 
getSparseFormat() const¶ 
- 
IntWithFloatArray 
getSparseRowColsVal(size_t i) const¶ 
- 
size_t 
getHeight() const¶ 
- 
size_t 
getWidth() const¶ 
- 
float 
get(size_t x, size_t y) const¶ 
- 
void 
set(size_t x, size_t y, float val)¶ 
- 
FloatArray 
getData() const¶ return type is list of float
- 
void 
sparseCopyFrom(const std::vector<int> &rows, const std::vector<int> &cols, const std::vector<float> &values = std::vector< float >())¶ Copy from rows, cols, values.
if sparse_nonvalue, the values should be []
- 
bool 
isGpu() const¶ 
Public Static Functions
- 
Matrix *
createZero(size_t height, size_t width, bool useGpu = false)¶ Create A Matrix with height,width, which is filled by zero.
- 
Matrix *
createSparse(size_t height, size_t width, size_t nnz, bool isNonVal = true, bool trans = false, bool useGpu = false)¶ Create Sparse Matrix.
After create sparse, sparseCopyFrom can be used to fill matrix.
- Note
 - the default sparse type is SPARSE_CSR.
 - Parameters
 nnz-Number of non zero values.
- 
Matrix *
createDense(const std::vector<float> &data, size_t height, size_t width, bool useGpu = false)¶ Create Dense Matrix.
- Note
 - the value will be copy into a new matrix.
 - Parameters
 data-list of float should be passed in python.
- 
Matrix *
createCpuDenseFromNumpy(float *data, int dim1, int dim2, bool copy = false)¶ Create Cpu Dense Matrix from numpy matrix, dtype=float32
- Parameters
 data-a numpy matrix.
dim1-dimension of data.
dim2-dimension of data.
copy-true if copy into a new matrix, false will create matrix inplace.
Private Members
- 
MatrixPrivate *
m¶ 
Friends
- 
friend 
Trainer 
- 
friend 
GradientMachine 
- 
friend 
Arguments 
- 
virtual 
 
- 
class 
Vector¶ Public Functions
- 
~Vector()¶ 
- 
void 
toNumpyArrayInplace(float **view_data, int *dim1)¶ Cast to numpy array inplace.
- 
void 
copyToNumpyArray(float **view_m_data, int *dim1)¶ Copy to numpy array.
- 
void 
copyFromNumpyArray(float *data, int dim)¶ Copy from numpy array.
- 
float 
get(const size_t idx) const¶ getitem in python
- 
void 
set(const size_t idx, float val)¶ setitem in python
- 
bool 
isGpu() const¶ Return is GPU vector or not.
- 
size_t 
getSize() const¶ len in python
Public Static Functions
- 
Vector *
create(const std::vector<float> &data, bool useGpu = false)¶ Create Vector from list of float.
It will create a new vector, and copy data into it.
Private Members
- 
VectorPrivate *
m¶ 
Friends
- 
friend 
Parameter 
- 
friend 
ParameterOptimizer 
- 
friend 
ParameterTraverseCallbackPrivate 
- 
 
- 
class 
IVector¶ Public Functions
- 
void 
toNumpyArrayInplace(int **view_data, int *dim1)¶ Cast to numpy array inplace.
- 
void 
copyToNumpyArray(int **view_m_data, int *dim1)¶ Copy to numpy array.
- 
void 
copyFromNumpyArray(int *data, int dim)¶ Copy from numpy array.
- 
virtual 
~IVector()¶ 
- 
int &
operator[](const size_t idx)¶ This method will map to python [] method.
- 
const int &
operator[](const size_t idx) const¶ 
- 
int 
get(const size_t idx) const¶ 
- 
void 
set(const size_t idx, int val)¶ 
- 
bool 
isGpu() const¶ Return true if it is gpu vector.
- 
size_t 
getSize() const¶ This method will map to python len();.
Public Static Functions
- 
IVector *
create(const std::vector<int> &data, bool useGpu = false)¶ Create IVector from list of int. It will create a new vector, and copy data into it.
Private Members
- 
IVectorPrivate *
m¶ 
Friends
- 
friend 
Arguments 
- 
void 
 
- 
class 
Arguments¶ - #include <PaddleAPI.h>
The Arguments is actual a std::vector<paddle::Argument> in paddle.
Public Functions
- 
void 
resize(size_t slotNum)¶ 
- 
virtual 
~Arguments()¶ 
- 
size_t 
getSlotNum() const¶ Return the slot number that aguments contains.
It is actually the vector’s size
- 
int64_t 
getBatchSize(size_t idx = 0) const¶ 
Public Static Functions
Private Members
- 
ArgumentsPrivate *
m¶ 
Friends
- 
friend 
Trainer 
- 
friend 
GradientMachine 
- 
friend 
SequenceGenerator 
 - 
void 
 
- 
class 
ParameterConfig¶ - 
Private Members
- 
ParameterConfigPrivate *
m¶ 
Private Static Functions
Internal methods
- 
ParameterConfig *
createParameterConfigFromParameterPtr(void *ptr)¶ 
Friends
- 
friend 
Parameter 
- 
friend 
ParameterOptimizer 
- 
friend 
ParameterTraverseCallbackPrivate 
 - 
ParameterConfigPrivate *
 
- 
class 
OptimizationConfig¶ - 
Public Static Functions
- 
OptimizationConfig *
createFromProtoString(const std::string &str)¶ 
Private Functions
- 
DISABLE_COPY_AND_ASSIGN(OptimizationConfig)¶ 
- 
OptimizationConfig()¶ 
- 
void *
getRawPtr()¶ 
Private Members
- 
OptimizationConfigPrivate *
m¶ 
Friends
- 
friend 
TrainerConfig 
- 
friend 
ParameterOptimizer 
 - 
OptimizationConfig *
 
- 
class 
Parameter¶ Public Functions
- 
virtual 
~Parameter()¶ 
- 
std::string 
getName() const¶ get parameter name
- 
size_t 
getID() const¶ get id
- 
ParameterConfig *
getConfig()¶ 
Private Members
- 
ParameterPrivate *
m¶ 
Friends
- 
friend 
UpdateCallbackWrapper 
- 
friend 
GradientMachine 
- 
virtual 
 
- 
class 
ModelConfig¶ - #include <PaddleAPI.h>
You can only get model config from TrainerConfig.
It is used by GradientMachine.
Public Functions
- 
virtual 
~ModelConfig()¶ 
Private Functions
- 
ModelConfig()¶ 
- 
DISABLE_COPY_AND_ASSIGN(ModelConfig)¶ 
- 
void *
getPaddleModelConfig() const¶ 
Private Members
- 
ModelConfigPrivate *
m¶ 
Friends
- 
friend 
TrainerConfig 
- 
friend 
TrainerConfigPrivate 
- 
friend 
GradientMachine 
 - 
virtual 
 
- 
class 
TrainerConfig¶ - #include <PaddleAPI.h>
To get TrainerConfig from file.
It is used by GradientMachine.
Public Functions
- 
virtual 
~TrainerConfig()¶ 
- 
ModelConfig *
getModelConfig() const¶ 
- 
OptimizationConfig *
getOptimizationConfig() const¶ 
Public Static Functions
- 
TrainerConfig *
createFromTrainerConfigFile(const std::string &configPath)¶ 
Private Members
- 
TrainerConfigPrivate *
m¶ 
 - 
virtual 
 
- 
class 
UpdateCallback¶ - #include <PaddleAPI.h>
The callback in backword.
You can inherit this class in python.
class UpdateCallbackInPython(paddle.UpdateCallback): def __init__(self): paddle.UpdateCallback.__init__(self) def apply(self, param): assert isinstance(param, paddle.Parameter)
 
- 
class 
ParameterTraverseCallback¶ Public Functions
- 
~ParameterTraverseCallback()¶ 
- 
void 
apply(const std::vector<Vector *> &vecs, const ParameterConfig &config, size_t sparseId)¶ 
Private Members
- 
ParameterTraverseCallbackPrivate *
m¶ 
Friends
- 
friend 
ParameterOptimizer 
- 
 
- 
class 
ParameterOptimizer¶ Public Functions
- 
~ParameterOptimizer()¶ 
- 
void 
init(size_t numRows, const ParameterConfig *config)¶ 
- 
void 
startPass()¶ 
- 
void 
finishPass()¶ 
- 
void 
startBatch(size_t numSamplesProcessed)¶ 
- 
void 
finishBatch()¶ 
- 
void 
update(const std::vector<Vector *> &vecs, const ParameterConfig &conf, size_t sparseId = NO_SPARSE_ID)¶ 
- 
std::vector<int> 
getParameterTypes() const¶ 
- 
ParameterTraverseCallback *
needSpecialTraversal(const ParameterConfig &config) const¶ 
Public Static Functions
- 
ParameterOptimizer *
create(OptimizationConfig *config)¶ 
Private Members
- 
ParameterOptimizerPrivate *
m¶ 
- 
 
- 
class 
GradientMachine¶ Public Functions
- 
virtual 
~GradientMachine()¶ 
- 
void 
forward(const Arguments &inArgs, Arguments *outArgs, PassType passType)¶ The forward stage of GradientMachine.
- Note
 the outArgs could be zero length arguemnts.
THIS METHOD IS VERY USEFULL FOR PREDICT FROM TRAINED MODEL.
- 
void 
backward(const UpdateCallback &callback = UpdateCallback ())¶ The backward stage of GradientMachine.
- Note
 - Currently the ParameterUpdater is not wrapped in SWIG, so backward cannot actually train a network. But you can write a update callback to change the parameter or implement a ParameterUpdater in python side.
 
- 
void 
forwardBackward(const Arguments &inArgs, Arguments *outArgs, PassType passType, const UpdateCallback &callback = UpdateCallback ())¶ Combine forward/backward
- 
void 
loadParameters(const std::string &path)¶ 
- 
size_t 
getParameterSize() const¶ 
- 
void 
randParameters()¶ 
- 
SequenceGenerator *
asSequenceGenerator(const std::vector<std::string> &dict = std::vector< std::string >(), size_t begin_id = 0UL, size_t end_id = 0UL, size_t max_length = 100UL, size_t beam_size = -1UL)¶ Create a sequence generator.
- Note
 - It just like a paddle_gen_sequence.
 
Public Static Functions
- 
GradientMachine *
createByConfigProtoStr(const std::string &protoStr, GradientMatchineCreateMode mode = CREATE_MODE_NORMAL, const std::vector<int> ¶meterTypes = defaultParamTypes)¶ Create By ProtoStr.
The ProtoStr can be generate by python’s protobuf code.
- 
GradientMachine *
createByModelConfig(ModelConfig *conf, GradientMatchineCreateMode mode = CREATE_MODE_NORMAL, const std::vector<int> ¶meterTypes = defaultParamTypes)¶ Create by ModelConfig object.
To get ModelConfig, you can get TrainerConfig from config file, then get model config by TrainerConfig
Private Members
- 
GradientMachinePrivate *
m¶ 
Private Static Functions
- 
GradientMachine *
createFromPaddleModelPtr(void *confPtr, GradientMatchineCreateMode mode, const std::vector<int> &types)¶ 
Private Static Attributes
- 
std::vector<int> 
defaultParamTypes¶ 
- 
virtual 
 
- 
class 
Trainer¶ Public Functions
- 
virtual 
~Trainer()¶ 
- 
void 
startTrain()¶ Start Train.
- 
void 
finishTrain()¶ 
- 
void 
startTrainPass()¶ Start Pass.
- 
void 
finishTrainPass()¶ 
- 
void 
setBatchSize(size_t batchSize)¶ 
- 
bool 
trainOneBatch(size_t batchSize = -1UL)¶ Train one batch,
- Return
 - true if all batch finished.
 - Parameters
 batchSize--1 wiil use command line or batch size set before, otherwise use this batchSize for train.
- 
bool 
prepareBatchData(size_t batchSize = -1UL)¶ 
- 
void 
finishTrainOneBatch()¶ 
- 
void 
forwardOneBatch()¶ 
Public Static Functions
- 
Trainer *
createByCommandLine()¶ Create A Trainer By TrainerConfig. using paddle command line.
Private Members
- 
TrainerPrivate *
m¶ 
- 
virtual 
 
- 
class 
ISequenceResults¶ - #include <PaddleAPI.h>
The N-Best results generated from one input sequence.
Subclassed by PathSequenceResults
Public Functions
- 
virtual 
~ISequenceResults()¶ 
- 
virtual size_t 
getSize() const = 0¶ Number of result.
- 
virtual std::string 
getSentence(size_t id, bool split = false) const = 0¶ Get sentence from dictionary.
- Parameters
 id-the index of result.
split-if true, the return sentence will be splited with ‘ ‘ by each word. Default is false.
- 
virtual std::vector<int> 
getSequence(size_t id) const = 0¶ 
- 
virtual float 
getScore(size_t id) const = 0¶ 
 - 
virtual 
 
- 
class 
SequenceGenerator¶ Public Functions
- 
virtual 
~SequenceGenerator()¶ 
- 
ISequenceResults *
generateSequence(const Arguments &inArgs) const¶ Generate Sequence by input.
- Note
 The inArgs is just one sequence of data.
The return will get a N-best generate result by inArgs. Sort by score.
- 
void 
setDict(const std::vector<std::string> &dict)¶ 
- 
void 
setBos(size_t bos)¶ 
- 
void 
setEos(size_t eos)¶ 
- 
void 
setMaxLength(size_t maxlength)¶ 
- 
void 
setBeamSize(size_t beamSize)¶ 
Private Members
- 
SequenceGeneratorPrivate *
m¶ 
Private Static Functions
Friends
- 
friend 
GradientMachine 
- 
virtual 
 
Functions
- template <typename T1, typename T2>
 - 
void 
staticCastVector(std::vector<T2> *dest, const std::vector<T1> &src)¶