首页 > 解决方案 > 在 R_ py_call_impl(callable, dots$args, dots$keywords) 中导入模型:AttributeError: 'NoneType' object has no attribute 'get'

问题描述

我使用 Keras 包在 R 中生成了一个人工神经网络(架构 10x30x1,激活函数 = ReLU)。我想保存这个模型,以便我可以在任何其他时间导入它而无需训练它。我用来保存它的代码如下:

模型 %>% save_model_tf("模型")

文件已生成并出现在目录中。

list.files("model") [1] "assets" "saved_model.pb" "variables"

但是,在导入它时,使用以下代码:

new_model <- load_model_tf(“模型”)

它给了我这个错误:

py_call_impl (callable, dots$args, dots$keywords) 中的错误:AttributeError: 'NoneType' 对象没有属性 'get'

我不知道你能否给我一个线索,告诉我我做错了什么,或者我是否错过了中间的一步。

谢谢!

标签: save

解决方案


今天刚刚遇到这个错误,我找到了一个解决方案。

您没有提供示例代码,但从语法来看,它改编自Rstudio tensorflow 教程。

我在 Github 上找到了这个帖子,很多复制粘贴该代码的人在加载模型时遇到了类似的问题。

https://github.com/rstudio/tfdatasets/issues/53

事实证明,有问题的项目是normalizer_fnin spec。摆脱它在我的系统上工作。

代替:

spec <- feature_spec(train_df, label ~ . ) %>% 
step_numeric_column(all_numeric(), normalizer_fn = scaler_standard()) %>% 
fit()

和:

spec <- feature_spec(train_df, label ~ . ) %>% 
step_numeric_column(all_numeric()) %>% 
fit()

至于为什么?不知道。我今天真的开始使用 tensorflow。


推荐阅读