Lua 使用Torch-hdf5将张量保存到hdf5
我正在尝试使用Torch-hdf5将一些张量保存到hdf5 我想非常仔细地遵循这份文件: 但是,在写入hdf5部分,其exmaple是:Lua 使用Torch-hdf5将张量保存到hdf5,lua,hdf5,torch,Lua,Hdf5,Torch,我正在尝试使用Torch-hdf5将一些张量保存到hdf5 我想非常仔细地遵循这份文件: 但是,在写入hdf5部分,其exmaple是: require 'hdf5' local myFile = hdf5.open('/path/to/write.h5', 'w') myFile:write('/path/to/data', torch.rand(5, 5)) myFile:close() 我知道“/path/to/write.h5”指的是最终文件,但什么是“/path/to/data”?
require 'hdf5'
local myFile = hdf5.open('/path/to/write.h5', 'w')
myFile:write('/path/to/data', torch.rand(5, 5))
myFile:close()
我知道“/path/to/write.h5”指的是最终文件,但什么是“/path/to/data”?它只是一条随机分开的路径吗?所以我写下了“数据/”。然后我看到一个可怕的错误:
HDF5-DIAG: Error detected in HDF5 (1.8.13) thread 0:
#000: H5G.c line 287 in H5Gcreate2(): no name
major: Invalid arguments to routine
minor: Bad value
HDF5-DIAG: Error detected in HDF5 (1.8.13) thread 0:
#000: H5I.c line 2245 in H5Iget_name(): can't retrieve object location
major: Object atom
minor: Can't get value
#001: H5Gloc.c line 253 in H5G_loc(): invalid object ID
major: Invalid arguments to routine
minor: Bad value
hdf5是否将数据和指令文件分开存储?这就是我们传入两条路径的原因吗?第一条路径是指向磁盘上实际文件的路径。这是存放所有东西的地方
local myFile = hdf5.open('/path/to/write.h5', 'w')
第二条路径,即数据路径,是指向张量的文件中键名的路径。Hdf5将数据存储为字典字典,因此/path/to/data表示一个名为“path”的全局字典键,该键指向一个名为“to”的字典键,该字典键指向最后一个键“data”,然后指向张量。加载hdf5文件时,可以将其作为hdf5Data[“path”][“to”][“data”]访问
myFile:write('/path/to/data', torch.rand(5, 5))
希望这能有所帮助。我是HDF5开发人员,不是Torch开发人员,所以我不知道Torch是如何工作的,但我可以指出,HDF5允许用户在HDF5文件(因此HDF5中的H)中创建层次结构的“组”。它们的表示方式与POSIX系统上的文件路径相同。在/path/to/data中,“path”和“to”将是HDF5组,“data”将是HDF5数据集,或者可能是一个HDF5组,其中Tensor将存储一个或多个具有标准名称的数据集(快速阅读Torch使其看起来像前者)。我在将hdf 1.8.16升级到开发分支(807187e2f200e63)时得到了相同的结果