数据结构
模块:polygraphy.common
- class TensorMetadata(dct=None)[source]
基类:
Interface
一个 OrderedDict[str, MetadataTuple],将输入名称映射到它们的数据类型和形状。
形状可能包括负值,
None
或字符串以指示动态维度。示例
shape = tensor_meta["input0"].shape dtype = tensor_meta["input0"].dtype
- static from_feed_dict(feed_dict)[source]
使用来自提供的 feed_dict 的信息构造新的 TensorMetadata。
- 参数:
feed_dict (OrderedDict[str, Union[numpy.ndarray, torch.tensor]]) – 输入张量名称到相应输入数组的映射。
- 返回值:
TensorMetadata
- add(name, dtype, shape, min_shape=None, max_shape=None, docstring=None)[source]
用于添加条目的便捷函数。
- 参数:
name (str) – 输入的名称。
dtype (Any) – 输入的数据类型。这可以是任何可以转换为 Polygraphy DataType 的类型。
shape (Sequence[Union[int, str]]]) – 输入的形状。动态维度可以用负值,
None
或字符串表示。min_shape (Sequence[int]) – 输入的最小有效形状。如果提供,则此形状不应包含任何动态维度。
max_shape (Sequence[int]) – 输入的最大有效形状。如果提供,则此形状不应包含任何动态维度。
docstring (str) – 与张量关联的任何附加信息。
- 返回值:
新添加的条目。
- class FormattedArray(array, shape)[source]
基类:
object
[实验性,未经测试] 此 API 是实验性的且未经测试,并且在未来的版本中可能会进行重大修改。使用时请注意!
表示语义形状与其在内存中的物理大小不同的数组。
例如,考虑形状为
(1, 3, 28, 28)
的NCHW
张量。如果我们使用像N(C/4)HW4
这样的向量化格式,那么数组的物理大小将是(1, 1, 28, 28 * 4)
,因为通道维度将被填充为 4 的倍数。但是,我们仍然需要一种方法来跟踪语义形状,例如用于形状推断。此类提供了一种机制来独立于底层数组指定数组的形状。
- 参数:
array (Union[np.ndarray, polygraphy.cuda.DeviceView]) – 数组。在大多数情况下,这将是一个原始字节数组。
shape (Sequence[int]) – 数据的语义形状。
- static from_json(src)
解码 JSON 对象并创建此类的实例。
- 参数:
src (str) – 对象的 JSON 表示
- 返回值:
解码后的实例
- 返回类型:
- Raises:
PolygraphyException – 如果 JSON 无法解码为 FormattedArray 的实例
- static load(src)
从 JSON 文件加载此类的实例。
- 参数:
src (Union[str, file-like]) – 要从中读取的路径或类似文件的对象。
- 返回值:
解码后的实例
- 返回类型:
- Raises:
PolygraphyException – 如果 JSON 无法解码为 FormattedArray 的实例
- save(dest)
将此实例编码为 JSON 对象并将其保存到指定的路径或类似文件的对象。
- 参数:
dest (Union[str, file-like]) – 要写入的路径或类似文件的对象。
- to_json()
将此实例编码为 JSON 对象。
- 返回值:
此实例的 JSON 表示。
- 返回类型:
str