keras ValueError:未知优化器:自定义>Adam|Adam Optimizer on Raspberry Pi(TensorFlow 2.5.0rc0)

toiithl6  于 2023-04-06  发布在  其他
关注(0)|答案(1)|浏览(570)

我是一个学习机器学习,我想在树莓派上应用它。我有RPi 4b运行:

NAME="Raspbian GNU/Linux"  
VERSION_ID="11"
VERSION="11 (bullseye)"
with armv7l architecture
I have installed tensorflow and it's version is 2.5.0-rc0.

我试图加载我在使用Adam优化器的colab中训练的模型,但是每当我尝试加载它时,我都会得到这个结果:
x一个一个一个一个x一个一个二个x
我可以做些什么来解决这个错误?
我试着加上这个:

# Define the custom Adam optimizer
class CustomAdam(Adam):
    pass
# Register the custom optimizer
tf.keras.utils.get_custom_objects().update({'CustomAdam': CustomAdam})
# Load the trained ML model
with tf.device('/cpu:0'):
    model = tf.keras.models.load_model('/home/pi/Desktop/project/pineapplemodeltwoclassbs16e75.h5', custom_objects={'CustomAdam': CustomAdam})

但仍然导致同样的错误。
我也试过这个:

# Load the Adam optimizer from the tensorflow.keras.optimizers module
Adam = tf.keras.optimizers.Adam

# Load the trained ML model
with tf.device('/cpu:0'):
    model = tf.keras.models.load_model('/home/pi/Desktop/project/pineapplemodeltwoclassbs16e75.h5', custom_objects={'Adam': Adam})

结果还是一样

jum4pzuy

jum4pzuy1#

根据文件:
Keras通过检查模型的架构来保存模型。这种技术可以保存所有内容:

  • 权重值
  • 模型的架构
  • 模型的训练配置(传递给.compile()方法的内容)
  • 优化器及其状态(如果有的话)(这使您能够从停止的地方重新开始训练)

Keras无法保存v1.x优化器(来自tf.compat.v1.train),因为它们与检查点不兼容。对于v1.x优化器,您需要在加载后重新编译模型-丢失优化器的状态。
由于Adam Optimizer是v1.x优化器,因此您可能需要重新编译模型。如果您不使用加载的模型进行训练,则不需要重新编译它。只需在调用load_model时设置参数compile=False
例如:load_model('file.h5', compile=False)

相关问题