Torch无法找到HDF5头文件

时间:2017-06-04 13:39:47

标签: hdf5 torch

所以,我正在尝试使用this tutorial在我的mac(Sierra)上设置火炬。我已完成步骤1-6(基本安装和预处理数据),但当我尝试运行所需的实际训练命令时,我遇到了错误:

Catons-Mac-mini:torch-rnn catons$ th train.lua -gpu -1 -input_h5 data/datafile.h5 -input_json data/datafile.json
/Users/catons/torch/install/bin/luajit: /Users/catons/torch/install/share/lua/5.1/trepl/init.lua:389: /Users/catons/torch/install/share/lua/5.1/trepl/init.lua:389: /Users/catons/torch/install/share/lua/5.1/hdf5/ffi.lua:42: Error: unable to locate HDF5 header file at /usr/local/Cellar/hdf5/1.10.1/include;/usr/include;/usr/local/opt/szip/include/hdf5.h
stack traceback:
    [C]: in function 'error'
    /Users/catons/torch/install/share/lua/5.1/trepl/init.lua:389: in function 'require'
    train.lua:6: in main chunk
    [C]: in function 'dofile'
    ...tons/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk
    [C]: at 0x0105195a10

注意:由于缺乏CUDA支持,我不得不修改列车命令

我尝试使用brew卸载并重新安装hdf5,包括使用--with-mpi选项。然而,头文件仍未显示。

感谢您提供任何帮助或建议!

编辑:好的,所以头文件实际存在,我不认为火炬因为权限问题而无法找到它,因为我将文件的权限设置为-rwxrwxrwx(其中,诚然,可能是矫枉过正的。)

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我正在使用Sierra运行2013年初的Mac。

对我有用的是使用HDF5 1.8而不是1.10.1。

brew install hdf5@1.8

然后更新/Users/catons/torch/install/share/lua/5.1/hdf5/init.lua中的路径,指向1.8而不是1.10.1。

hdf5._config = {
  HDF5_INCLUDE_PATH = "/usr/local/Cellar/hdf5@1.8/1.8.18/include",
  HDF5_LIBRARIES = "/usr/local/Cellar/hdf5@1.8/1.8.18/lib/libhdf5.dylib;/usr/local/opt/szip/lib/libsz.dylib;/usr/lib/libz.dylib;/usr/lib/libdl.dylib;/usr/lib/libm.dylib"
}

如果在此之后出现“关闭”错误,请使用以下命令替换该目录中ffi.lua文件中的第44行:

local process = io.popen("gcc -D '_Nullable=' -E " .. headerPath) -- TODO pass -I

最后,如果您使用的是torch-cl,则需要替换config.lua和ffi.lua的torch-cl版本中的路径和第44行。