我正在尝试使用 Torch-hdf5 将一些张量保存到 hdf5!
我想非常仔细地遵循这个文档: https://github.com/deepmind/torch-hdf5/blob/master/doc/usage.md
但是,在写入hdf5部分,其示例是:
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”是什么?它只是随机的单独路径吗?所以我只是写下了“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))
希望这有帮助。
关于lua - 使用Torch-hdf5将Tensor保存到Hdf5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39220312/