Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua 使用Torch-hdf5将张量保存到hdf5_Lua_Hdf5_Torch - Fatal编程技术网

Lua 使用Torch-hdf5将张量保存到hdf5

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”?

我正在尝试使用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”?它只是一条随机分开的路径吗?所以我写下了“数据/”。然后我看到一个可怕的错误:

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)时得到了相同的结果