megenginelite.tensor#

class LiteTensor(layout=None, device_type=LiteDeviceType.LITE_CPU, device_id=0, is_pinned_host=False, shapes=None, dtype=None, physic_construct=True)[源代码]#

带有必要信息的数据块描述

参数:
  • layout – tensor 内存布局

  • device_type – tensor 设备类型

  • device_id – tensor 设备ID

  • is_pinned_host – 设置该选项后,存储内存会被设置为页锁定内存,可以用于H2D和D2H内存拷贝的优化,若从其他如CUDA设备上拷回的tensor没有设置layout和shape时,默认设为页锁定内存

  • shapes – 数据形状

  • dtype – 数据类型

备注

数据形状维度少于8,当前支持的数据类型定义在LiteDataType中

copy_from(src_tensor)[源代码]#

从src_tensor 拷贝内存

参数:

src_tensor – 拷贝来源tensor

property device_id#

获取tensor 设备ID

property device_type#

获取tensor 设备类型

fill_zero()[源代码]#

对tesnor buffer内存填0

get_ctypes_memory()[源代码]#

获取tensor 内存,返回tensor的内存c_void_p指针

get_data_by_share()[源代码]#
获取tensor 数据并共享到新的numpy 数组

返回对应numpy 数组

备注

注意numpy数组的数据只在tensor 内存再次写入前有效

如 LiteNetwok再次推理之前

property is_continue#

tensor 内存是否连续

property is_pinned_host#

tensor是否为页锁定内存tensor

property layout#
property nbytes#

获取内存字节数

reshape(shape)[源代码]#

变化tensor 形状不改动数据内容

参数:

shape – 目标形状

set_data_by_copy(data, data_length=0, layout=None)[源代码]#

拷贝数据到tensor中

参数:
  • data – 待拷贝到tensor的数据,可以是list, numpy.ndarray 或者带长度的buffer

  • data_length – 数据字节数

  • layout – 数据内存布局

set_data_by_share(data, length=0, layout=None)[源代码]#

共享数据到指定tensor

参数:

data – 待共享的数据,可以是numpy.ndarray 或者 C buffer

share_memory_with(src_tensor)[源代码]#
同``src_tensor``共享内存,自身的内存将被释放

freed

参数:

src_tensor – 待与当前tensor共享内存的tensor

slice(start, end, step=None)[源代码]#

用指定起始位置和步长切分tensor

参数:
  • start – 各个维度切分起始索引

  • end – 各维度终止索引

  • step – 各维度切分步长

to_numpy()[源代码]#

获取tensor buffer

update()[源代码]#

更新来自C 接口的内存,在slice和share等操作后自动调用

class LiteLayout(shape=None, dtype=None)[源代码]#
Lite中数据内存布局的完整定义

数据内存布局将由形状和数据类型完全决定

参数:
  • shape – 数据形状

  • dtype – 数据类型

备注

数据形状维度少于8,当前支持的数据类型定义在LiteDataType中

实际案例

import numpy as np
layout = LiteLayout([1, 4, 8, 8], LiteDataType.LITE_FLOAT)
assert(layout.shape()) == [1, 4, 8, 8]
assert(layout.dtype()) == LiteDataType.LITE_FLOAT
data_type#

Structure/Union 成员

property dtype#
ndim#

Structure/Union 成员

property shapes#