BatchSplit
函数功能
图像处理类算法,张量支持Batch拆分操作,支持float16、float32、uint8。支持异步调用,支持输入输出内存复用。
当前支持Atlas 推理系列产品和Atlas 200I/500 A2 推理产品。
使用时需满足一下条件:
- 接口中的各参数(stream及数据内存)需位于同一Device中。
- 同步场景下,数据内存所在Device需与初始化的Device一致。
- 各输入、输出参数对应Tensor的类型一致,输入Tensor的形状(Shape)为三维或者四维,如NWHC/NCHW/NHW。
- 输出不为空时需输出vector的大小等于输入Tensor的Batch大小,且输出vector中每个Tensor为输入Tensor去掉Batch维度后的结果,即将NWHC/NCHW/NHW拆分为N个WHC/CHW/HW。
函数原型
APP_ERROR BatchSplit(const Tensor &src, std::vector<Tensor> &dst, bool isReplace, AscendStream &stream = AscendStream::DefaultStream());
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
src |
输入 |
Tensor类,输入张量。其中,Tensor支持float16、float32、uint8类型。维度支持三维或四维。 |
dst |
输出 |
std::vector<Tensor>类,输出。支持float16、float32、uint8(需与“src”一致)。支持传入空vector,如果vector不为空,vector中的tensor需要调用Tensor.Malloc()接口提前分配内存。 |
isReplace |
输入 |
bool类型,当值为true时,输出dst会复用输入src的内存,两者的生命周期一致,因此需要用户自行保证。当值为false时,输出dst与输入src互不影响(各自的内存释放由各自的生命周期决定)。 |
stream |
输入 |
AscendStream类型,默认值为AscendStream::DefaultStream()。当参数值为默认值时或当“isReplace”为“true”时,接口为同步操作。其余情况下,接口为异步操作。 |
返回参数说明
数据结构 |
说明 |
---|---|
APP_ERROR |
程序执行返回的错误码,请参考APP_ERROR说明。 |
父主题: TensorOperations