Tensor类的构造函数。
1 | Tensor::Tensor(); //默认构造函数。 构造失败时,会抛出std::runtime_error异常 |
1 | Tensor::Tensor(const Tensor &other); // 支持拷贝构造 |
1 2 | Tensor::Tensor(const std::vector<uint32_t> &shape, const MxBase::TensorDType &dataType, const int32_t &deviceId = -1); //不传入内存,可搭配Malloc接口进行内存申请,申请的内存无需用户管理释放。 构造失败时,会抛出std::runtime_error异常 |
1 2 | Tensor::Tensor(void* usrData,const std::vector<uint32_t> &shape, const MxBase::TensorDType &dataType, const int32_t &deviceId = -1); //传入用户自己构造的数据内存,需要用户自身对此内存进行管理(保证内存数据的生命周期)。 构造失败时,会抛出std::runtime_error异常 |
1 | Tensor::Tensor(const std::vector<uint32_t> &shape, const MxBase::TensorDType &dataType, const int32_t &deviceId, bool isDvpp); |
1 | Tensor::Tensor(void *usrData, const std::vector<uint32_t> &shape, const MxBase::TensorDType &dataType,const int32_t &deviceId, const bool isDvpp, const bool isBorrowed); |
1 | Tensor::Tensor(const Tensor &tensor, const Rect &rect); // 带引用区域的拷贝构造,可用于构造ROI区域(仅Atlas 推理系列产品适用该原型) |
参数名 |
输入/输出 |
说明 |
---|---|---|
other |
输入 |
已初始化的其它Tensor。 |
usrData |
输入 |
用户构造的输入内存,该内存由用户管理申请和释放。 |
shape |
输入 |
Tensor的shape属性。 |
dataType |
输入 |
Tensor的数据类型,具体请参见TensorDType。 |
deviceId |
输入 |
Tensor所在的设备ID,默认为-1,在Host侧。
|
isDvpp |
输入 |
设置是否申请DVPP的内存,“deviceId”如果为“-1”,则申请Host侧内存,该参数设置无效。 如果传入用户指针“usrData”并且“isDvpp”设置为“true”,则需保证“usrData”指向的内存在Device侧,否则后续业务存在风险和异常。 |
isBorrowed |
输入 |
设置是否将usrData指向的内存交由Tensor来释放,“isBorrowed”的值设为“false”,则由Tensor来释放usrData指向的内存,用户无需释放;“isBorrowed”的值设为“true”,则用户需要自行管理usrData指向的内存。 须知:
委托Tensor管理该内存,仅支持需要手动释放的内存,否则可能导致内存重复释放。 |
rect |
输入 |
代表图片的引用区域坐标(x0, y0, x1, y1)左闭右开。 须知:
若采用Tensor(const Tensor &tensor, const Rect &rect)的方式进行构造,要求:
|
tensor |
输入 |
已初始化的其它Tensor。 |