一个不可变的具体张量,其数据存储在磁盘上。
当数据类型被 numpy 支持时,此类使用内存映射来避免将张量加载到内存中。否则,张量在访问时才会被延迟加载到内存中。
调用 shape 不会产生 I/O。如果关注 I/O 开销和内存使用,建议在加载张量之前检查形状。
要获取数组,请调用 numpy()。要获取字节,请调用 tobytes()。要将数据写入文件,请调用 tofile()。
location 必须是符合 ONNX 规范的相对路径。给定正确的 base_dir,path 将计算为数据文件的完整路径。用户应该期望 path 始终指向正确的文件。在初始化时,不检查路径。用户有责任确保路径有效且可访问。
- 参数:
-
-
location
数据文件的位置。它是相对于基目录的路径。
-
base_dir
外部数据的基目录。用于解析相对路径。序列化时,只有 location 被序列化到 TensorProto 的 “location” 字段中。
-
path
数据文件的路径。这是通过连接 base_dir 和 location 计算出来的。
-
offset
从文件开头起的字节偏移量。
-
length
数据的字节长度。
-
dtype
张量的数据类型。
-
shape
张量的形状。
-
name
张量的名称。必须指定。
-
doc_string
文档字符串。
-
metadata_props
元数据属性。
-
raw
-
property base_dir: str | PathLike
-
display(*, page=False)
漂亮地打印对象。
- 参数:
page (bool) – 是否分页输出。
- 返回类型:
无
-
property doc_string: str | None
文档字符串。
-
property dtype: DataType
-
invalidate()[source]
使张量无效。
当数据已知损坏或删除时,外部张量将失效。
- 返回类型:
无
-
property length: int | None
-
property location: str | PathLike
-
property meta: MetadataStore
用于中间分析的元数据存储。
如果您希望将元数据序列化到 ONNX proto,请写入 metadata_props。
-
property metadata_props: dict[str, str]
张量的元数据属性。
元数据属性用于存储有关张量的附加信息。与 meta 不同,此属性被序列化为 ONNX 协议。
-
property name: str | None
张量的名称。
-
property nbytes: int
张量中的字节数。
-
numpy()[source]
将张量作为 numpy 数组返回。
数据将被内存映射到内存中,并且不会占用物理内存空间。
- 返回类型:
ndarray
-
property offset: int | None
-
property path: str
-
release()[source]
删除对内存缓冲区的所有引用并关闭内存映射文件。
- 返回类型:
无
-
property shape: Shape
-
property size: int
张量中的元素数量。
-
tobytes()[source]
返回张量的字节。
这将把张量加载到内存中。
- 返回类型:
bytes
-
tofile(file)[source]
将张量写入二进制文件。
此方法将张量的原始字节写入文件类对象。文件类对象必须具有接受字节的 write 方法。
- 参数:
file – 具有接受字节的 write 方法的文件类对象。
- 返回类型:
无
-
valid()[source]
检查张量是否有效。
如果外部张量尚未失效,则它有效。
- 返回类型:
布尔