在R中加载h5 keras模型文件

3
我正在构建一个二进制分类的R包,使用opencpu进行托管。目前我将h5文件保存为.RData文件(序列化),然后使用R中的.onLoad()函数在环境中加载它,这使得R脚本可以使用环境变量使用keras::unserialized_model()加载keras模型。
我已经尝试直接在代码中使用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模型的替代方案?
1个回答

0
OpenCPU 运行在哪个操作系统上?为什么它尝试写入 /home/,这非常不寻常?最好的解决方案是将您的代码适应于写入 getwd()tempdir()。更好的方法是将数据存储在本地数据库或 redis 服务器中,并让 R 从那里读取,这样您就不需要磁盘访问了。

如果您在 Ubuntu Server 上运行,则默认情况下不允许从 /home/ 读取。如果您想允许此操作,则需要添加 apparmor 规则,请参见 server manual 的第 3.5 节。

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


谢谢,’keras在opencpu中‘的链接解决了这个问题。这是由于apparmor规则造成的。对于其他人执行相同操作且需要从不同位置读取模型文件的情况,请记得在最后添加 keras ::k_clear_session() 以避免多线程导致的文件读取错误 (链接)。 - Swapnesh Khare

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接