lua - 使用Torch-hdf5将Tensor保存到Hdf5

标签 lua hdf5 torch

我正在尝试使用 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/

相关文章:

machine-learning - 如何优化神经网络中的动量项

Lua 和 Torch 与 GPU 的问题

JavaScript、Lua、尾调用优化

c++ - HDF5 C++ 接口(interface) : writing dynamic 2D arrays

hdf5 - 从 HDF5 文件中删除数据

python - h5py 的复合数据类型 : datatype inside an attribute

python - 如何在循环中为 pytorch 神经网络中的层创建变量名称

ios - lua require 函数在 iOS 上找不到我需要的文件

windows - 在 'Lua for windows' 中设置运行文件的路径

python-3.x - Neovim LSP : pyright server does not dynamically regognize changes in sub folders