- 
                Notifications
    
You must be signed in to change notification settings  - Fork 2.1k
 
Expr
class VARPenum Dimensionformat {
    NHWC,
    NC4HW4,
    NCHW
};| value | name | 说明 | 
|---|---|---|
| 0 | NHWC | 
|
| 1 | NC4HW4 | 
|
| 2 | NCHW | 
enum InputType {
    INPUT = 0,
    CONSTANT = 1,
    TRAINABLE = 2,
};| value | name | 说明 | 
|---|---|---|
| 0 | INPUT | 
默认输入变量 | 
| 1 | CONSTANT | 
常量 | 
| 2 | TRAINABLE | 
可训练变量 | 
VARP(std::shared_ptr<Variable> c) {
    mContent = std::move(c);
};调用移动构造函数,将c的对象移动至mContent对象
参数:
- 
cVariable类型变量 
返回:void
VARP(Variable* c) {
    mContent.reset(c);
};重置mContent对象中的Variable对象
参数:
- 
cVariable类型变量 
返回:void
Variable* get() const  {
    return mContent.get();
};获取mContent的Variable对象
参数:无
返回:Variable对象
VARP(const VARP& var) {
    mContent = var.mContent;
};把var的content对象赋值给mContent变量
参数:
- 
var输入变量 
返回:void
VARP(VARP&& var) {
    mContent = std::move(var.mContent);
};调用移动构造函数,将var.mContent的对象移动至mContent对象
参数:
- 
var输入变量 
返回:void
VARP operator+(VARP var) const;VARP类型对象加法计算
参数:
- 
var输入变量 
返回:VARP对象
VARP operator-(VARP var) const;VARP类型对象减法计算
参数:
- 
var输入变量 
返回:VARP对象
VARP operator*(VARP var) const;VARP类型对象乘法计算
参数:
- 
var输入变量 
返回:VARP对象
VARP operator/(VARP var) const;VARP类型对象除法计算
参数:
- 
var输入变量 
返回:VARP对象
VARP mean(INTS dims) const;计算均值
参数:
- 
dims一个向量 
返回:VARP对象
VARP sum(INTS dims) const;计算和
参数:
- 
dims一个向量 
返回:VARP对象
bool operator==(const VARP& var) const {
    return var.mContent == mContent;
};重载相等运算符,判断var.mContent和mContent是否相等
参数:
- 
var输入变量 
返回:true/false
bool operator<(const VARP& var) const {
    return mContent < var.mContent;
};重载小于运算符,判断mContent是否小于var.mContent
参数:
- 
var输入变量 
返回:true/false
bool operator<=(const VARP& var) const {
    return mContent <= var.mContent;
};重载小于等于运算符,判断mContent是否小于等于var.mContent
参数:
- 
var输入变量 
返回:true/false
VARP& operator=(const VARP& var) {
    mContent = var.mContent;
    return *this;
};拷贝var.mContent对象到mContent
参数:
- 
var输入变量 
返回:当前对象的拷贝
VARP& operator=(Variable* var) {
    mContent.reset(var);
    return *this;
};重置mContent对象中的Variable对象,并拷贝
参数:
- 
var输入变量 
返回:当前对象的拷贝
Variable* operator->() const  {
    return mContent.get();
};获取mContent对象的值
参数:无
返回:Variable对象
bool fix(InputType type) const;朝零方向取整
参数:
- 
type输入数据类型 
返回:true/false
inline bool operator==(Variable* src, VARP dst) {
    return src == dst.get();
};重载相等运算符,判断src和dst.get()是否相等
参数:
- 
srcVariable类型输入变量 - 
dstVARP类型输入变量 
返回:true/false
inline bool operator!=(Variable* src, VARP dst) {
    return src != dst.get();
};重载不相等运算符,判断src和dst.get()是否不相等
参数:
- 
srcVariable类型输入变量 - 
dstVARP类型输入变量 
返回:true/false
class Variableconst std::string& name() const;获取Variable对象的名称
参数:无
返回:名称
void setName(const std::string& name);设置名称
参数:
- 
name名称 
返回:void
std::pair<EXPRP, int> expr() const {
    return std::make_pair(mFrom, mFromIndex);
};创建一个EXPRP对象,需要mFrom作为参数,位置为mFromIndex
参数:无
返回:EXPRP对象
const Info* getInfo();获取Variable对象的相关信息
参数:无
返回:如果计算信息错误,返回nullptr
bool resize(INTS dims);调整Variable对象的大小
参数:
- 
dims一个向量 
返回:true/false
template <typename T>
const T* readMap() {
    return (const T*)readInternal();
};读取内部信息
参数:无
返回:信息
template <typename T>
T* writeMap() {
    return (T*)writeInternal();
};写入内部信息
参数:无
返回:信息
bool input(VARP src);输入信息
参数:
- 
src输入变量 
返回:true/false
static void replace(VARP dst, VARP src);替换信息
参数:
- 
dst输入变量 - 
src输入变量 
返回:void
static VARP create(EXPRP expr, int index = 0);在index位置创建expr对象
参数:
- 
expr输入变量 - 
index位置下标,默认为0 
返回:VARP对象
static std::vector<VARP> load(const char* fileName);通过文件名加载对象
参数:
- 
fileName文件名 
返回:VARP对象矩阵
static std::map<std::string, VARP> loadMap(const char* fileName);通过文件名读取模型对象
参数:
- 
fileName文件名 
返回:模型对象
static std::vector<VARP> load(const uint8_t* buffer, size_t length);加载存储的,长度为length的模型对象
参数:
- 
buffer存储数据 - 
length数据长度 
返回:模型对象
static std::map<std::string, VARP> loadMap(const uint8_t* buffer, size_t length);读取存储的,长度为length的模型对象
参数:
- 
buffer存储数据 - 
length数据长度 
返回:模型对象
static std::pair<std::map<std::string, VARP>, std::map<std::string, VARP>> getInputAndOutput(const std::map<std::string, VARP>& allVariable);获取模型输入输出节点
参数:
- 
allVariable输入变量 
返回:模型输入输出节点
static std::vector<VARP> mapToSequence(const std::map<std::string, VARP>& source);模型的输出节点及其名称
参数:
- 
source输入变量 
返回:输出节点及其名称
static std::vector<EXPRP> getExecuteOrder(const std::vector<VARP>& output);获取操作指令
参数:
- 
output输入变量 
返回:指令集
static void save(const std::vector<VARP>& vars, const char* fileName);保存vars到指定位置
参数:
- 
vars输入变量 - 
fileName文件名 
返回:void
static std::vector<int8_t> save(const std::vector<VARP>& vars);保存vars到默认位置
参数:
- 
vars输入变量 
返回:void
static void save(const std::vector<VARP>& vars, NetT* dest);保存vars到dest位置
参数:
- 
vars输入变量 - 
dest目标地址 
返回:void
static void prepareCompute(const std::vector<VARP>& vars, bool forceCPU = false);将几个变量打包在一个管道中进行计算
参数:
- 
vars输入变量 - 
forceCPU是否强制使用CPU,默认为false 
返回:void
static void compute(const std::vector<VARP>& vars, bool forceCPU = false);计算变量
参数:
- 
vars输入变量 - 
forceCPU是否强制使用CPU,默认为false 
返回:void
size_t linkNumber() const;获取输出信息的size
参数:无
返回:size
const std::vector<WeakEXPRP>& toExprs() const;返回模型对象信息
参数:无
返回:模型对象信息
void setExpr(EXPRP expr, int index) {
    mFrom = expr;
    mFromIndex = index;
};在index位置设置EXPRP对象
参数:无
返回:EXPRP对象
class Exprenum MemoryType {
    COPY,
    MOVE,
    REF
};| value | name | 说明 | 
|---|---|---|
| 0 | COPY | 
拷贝 | 
| 1 | MOVE | 
移动 | 
| 2 | REF | 
引用 | 
static EXPRP create(Tensor* tensor, bool own = false);创建一个包含tensor的EXPRP变量
参数:
- 
tensor输入变量 - 
own默认为false 
返回:EXPRP变量
static EXPRP create(Variable::Info&& info, const void* ptr, VARP::InputType type, MemoryType copy = COPY);创建一个包含info对象的EXPRP变量
参数:
- 
infoVariable类型输入变量 - 
ptr目标对象地址 - 
type输入数据类型 - 
copy内存拷贝 
返回:EXPRP变量
static EXPRP create(const OpT* op, std::vector<VARP> inputs, int outputSize = 1);创建EXPRP变量
参数:
- 
op输入变量 - 
inputs输入变量 - 
outputSize输出信息大小,默认为1 
返回:EXPRP变量
static EXPRP create(std::shared_ptr<BufferStorage> extra, std::vector<VARP>&& inputs, int outputSize = 1);创建EXPRP变量
参数:
- 
extra输入变量 - 
inputs输入变量 - 
outputSize输出信息大小,默认为1 
返回:EXPRP变量
static EXPRP create(std::unique_ptr<OpT>&& op, std::vector<VARP> inputs, int outputSize = 1) {
    return create(op.get(), inputs, outputSize);
};创建EXPRP变量
参数:
- 
op输入变量 - 
inputs输入变量 - 
outputSize输出信息大小,默认为1 
返回:EXPRP变量
void setName(const std::string& name);设置名称
参数:
- 
name名称 
返回:void
const Op* get() const {
    return mOp;
};获取对象信息
参数:无
返回:对象信息
const std::vector<VARP>& inputs() const {
    return mInputs;
};获取输入节点信息
参数:无
返回:输入节点信息
int outputSize() const {
    return (int)mOutputNames.size();
};返回输出节点信息大小
参数:无
返回:size
static void replace(EXPRP oldExpr, EXPRP newExpr);用newExpr替换oldExpr
参数:
- 
oldExpr输入变量,源对象 - 
newExpr输入变量,目标对象 
返回:void
bool requireInfo();获取需要的信息
参数:无
返回:信息
void visitOutputs(const std::function<bool(EXPRP, int)>& visit);访问输出节点的信息
参数:
- 
visit访问方法 
返回:void
static void visit(EXPRP expr, const std::function<bool(EXPRP)>& before, const std::function<bool(EXPRP)>& after);访问某一个范围的信息
参数:
- 
expr输入变量 - 
beforebefore指针 - 
afterafter指针 
返回:void
const std::vector<WeakEXPRP>& outputs() const {
    return mTo;
};返回输出节点信息
参数:无
返回:信息
析构函数
bool visited() const {
    return mVisited;
};是否已经访问过
参数:无
返回:true/false
void setVisited(bool visited) {
    mVisited = visited;
};设置已经被访问
参数:
- 
visited是否访问 
返回:void
const std::string& name() const {
    return mName;
};获取名称
参数:无
返回:名称
const std::string& outputName(int index) {
    return mOutputNames[index];
};输出指定index的名称
参数:
- 
index下标 
返回:名称
VARP::InputType inputType() const {return mType;};返回当前输入类型
参数:无
返回:输入类型
Variable::Info* outputInfo(int index) const;返回指定下标的输出信息
参数:
- 
index下标值 
返回:输出信息
std::shared_ptr<BufferStorage> extra() const {
    return mStorage;
};返回附加信息
参数:无
返回:附加信息
std::shared_ptr<Inside> inside() const {
    return mInside;
};返回内部信息
参数:无
返回:内部信息
bool valid() const {
    return mValid;
};是否有效
参数:无
返回:true/false