tensorflow - 无法使用 RectifiedAdam 优化器加载 Keras 模型
问题描述
尝试使用加载 Keras 模型tf.keras.models.load_model
时出现以下错误:
import tensorflow as tf
from tensorflow_addons.optimizers import RectifiedAdam
model = tf.keras.models.load_model('model', custom_objects = {'RectifiedAdam' : RectifiedAdam})
错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/mylib/python3.7/site-packages/tensorflow_core/python/keras/saving/save.py", line 150, in load_model
return saved_model_load.load(filepath, compile)
File "/mylib/python3.7/site-packages/tensorflow_core/python/keras/saving/saved_model/load.py", line 99, in load
training_config))
File "/mylib/python3.7/site-packages/tensorflow_core/python/keras/saving/saving_utils.py", line 229, in compile_args_from_training_config
optimizer_config, custom_objects=custom_objects)
File "/mylib/python3.7/site-packages/tensorflow_core/python/keras/optimizers.py", line 819, in deserialize
printable_module_name='optimizer')
File "/mylib/python3.7/site-packages/tensorflow_core/python/keras/utils/generic_utils.py", line 292, in deserialize_keras_object
config, module_objects, custom_objects, printable_module_name)
File "/mylib/python3.7/site-packages/tensorflow_core/python/keras/utils/generic_utils.py", line 250, in class_and_config_for_serialized_keras_object
raise ValueError('Unknown ' + printable_module_name + ': ' + class_name)
ValueError: Unknown optimizer: RectifiedAdam
我可以使用 compile 加载模型为 False tf.keras.models.load_model('model', compile=False)
,然后使用 RectifiedAdam 优化器再次编译它(如此处建议:https ://stackoverflow.com/a/56565801 )——但这并不理想......
所以有什么想法,我做错了什么?
解决方案
解决此问题的一个快速技巧是手动分配RectifiedAdam
给 Tensorflow 命名空间中的对象:
import tensorflow as tf
from tensorflow_addons.optimizers import RectifiedAdam
tf.keras.optimizers.RectifiedAdam = RectifiedAdam
...
推荐阅读
- facebook - 模式中的 FB.login 未打开弹出窗口
- php - 在woocommerce中显示没有折扣的产品价格
- batch-file - 使用 .bat 文件在每行输出 txt 文件的开头插入文件名
- sql - 如何在列中查找带有英文字符的名称?
- android - 二进制 XML 文件第 25 行:膨胀类 TextView 时出错
- c++ - 使用 Switch-case 语句拉取随机扑克牌等级和花色以显示用户
- python - Python:rolling.apply() 给出 TypeError
- tcl - 如何使用 TCL 从 snake_case 转换为 CamelCase(又名 PascalCase)?
- php - 当我尝试从 PHP codeigniter 框架中的视图将 jquery var 传递给控制器中的方法时,我收到 404
- pine-script - strategy.exit 有问题