Hstack
函数功能
图像处理类算法,张量水平堆叠操作,支持float16、float32、uint8。支持异步调用,支持预加载(示例请参见“初始化算子预加载文件实例”章节)。
当前支持Atlas 推理系列产品和Atlas 200I/500 A2 推理产品。
使用时需满足一下条件:
- 接口中的输入输出Tensor必须在Device或DVPP侧且各参数(stream及数据内存)需位于同一Device中。
- 同步场景下,数据内存所在Device需与初始化的Device一致。
- 请注意处理数据类型越界问题。
- 各输入、输出参数对应Tensor的形状(shape)相等(除“W”维度)、类型一致且不超过4维。
- 各输入Tensor的宽度总和需小于等于Tensor类型的最大宽度(uint32类型最大值)。
- 输出Tensor不为空时需输出Tensor宽度等于各输入Tensor宽度总和。
函数原型
APP_ERROR Hstack(const std::vector <Tensor> &tv, Tensor &dst, AscendStream &stream = AscendStream::DefaultStream());
参数说明
参数名 |
输入/输出 |
说明 |
---|---|---|
tv |
输入 |
std::vector<Tensor>类,用于存储等待拼接的Tensor张量。其中,Tensor支持float16、float32、uint8类型,数据内存必须在Device侧或DVPP侧。维度支持HW(2维)、HWC(3维)、NHWC(4维)且“tv”张量长度大于1(至少传入2个Tensor),“tv”的长度以该vector能成功构造为准,“tv”中Tensor宽度的和不应超过Tensor类的最大宽度(uint32最大值)。 |
dst |
输出 |
Tensor类,输出张量,拼接后的Tensor,支持float16、float32、uint8(需与“tv”一致),支持输入空Tensor,若“dst”不为空,形状必须与“tv”相同,“W”维度(宽度)需等于“tv”中所有Tensor“W”的总和,需调用Tensor.Malloc()接口提前分配内存,数据内存必须在Device侧(与“tv”同一个Device)或DVPP侧。 |
stream |
输入 |
AscendStream类型,默认值为“AscendStream::DefaultStream()”。当参数值为默认值时,接口为同步操作,其他情况下,接口为异步操作。 |
返回参数说明
数据结构 |
说明 |
---|---|
APP_ERROR |
程序执行返回的错误码,请参考APP_ERROR说明。 |
父主题: TensorOperations