在 R 中加载 h5 keras 模型文件

Load h5 keras model file in R

我正在构建一个用于二进制分类的 R 包,我正在使用 opencpu 来托管它。目前我已经将 h5 文件保存为 .RData 文件(序列化),然后使用 R 中的 .onLoad() 函数将其加载到环境中。这使 R 脚本能够使用环境变量加载 keras使用 keras::unserialized_model().

的模型

我尝试直接在代码中使用 keras::load_model_hdf5(),但是在 opencpu 上构建和部署后,当我尝试命中预测 API 时,出现错误

ioerror: unable to open file (unable to open file: name = '/home/modelfile_26feb.h5', errno = 13, error message = 'permission denied', flags = 0, o_flags = 0)

我已经更改了文件 (777) 甚至组的权限,但仍然出现错误。

我什至尝试将文件放在 inst/extdata 文件夹中,以便它进入包中,但仍然出现同样的错误。

任何人都可以帮助解决这个问题,或者建议一些替代方法来直接加载 h5 模型吗?

OpenCPU运行在哪个OS上?为什么它会尝试写入 /home/,这很不寻常?最好的解决方案是调整您的代码以编写 getwd()tempdir()。更好的方法是将数据存储在本地数据库或 Redis 服务器中,让 R 从那里读取数据,因此您根本不需要磁盘访问。

如果您在 Ubuntu 服务器上 运行,默认情况下不允许从 /home/ 读取。如果要允许这样做,则需要添加 apparmor 规则,请参阅 server manual.

的第 3.5 节

来自 opencpu 邮件列表的一些相关主题: