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

问题描述 投票:0回答:2

我是一个学习机器学习的,想应用在树莓派上。我正在运行 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.

我正在尝试加载我在 colab 中训练的模型,该模型使用 Adam 优化器,但是每当我尝试加载它时我都会得到这个结果:

ValueError: Unknown optimizer: Custom\>Adam. Please ensure this object is passed to the \`custom_objects\` argument. See <https://www.tensorflow.org/guide/keras/save_and_serialize#registering_the_custom_object> for details.
import librosa
import numpy as np
import tensorflow as tf
from tensorflow.keras.optimizers import Adam
import simpleaudio as sa

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

我该如何解决该错误?

我尝试添加这个:

# 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})

结果还是一样。

tensorflow machine-learning keras raspberry-pi raspberry-pi4
2个回答
3
投票

根据文档

Keras 通过检查模型的架构来保存模型。这项技术可以拯救一切:

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

Keras 无法保存 v1.x 优化器(来自 tf.compat.v1.train),因为它们与检查点不兼容。对于 v1.x 优化器,您需要在加载后重新编译模型,从而丢失优化器的状态。

由于 Adam Optimizer 是 v1.x 优化器,您可能需要重新编译模型。如果您不使用加载的模型进行训练,则无需重新编译它。只需在调用

compile=False
时设置参数
load_model
即可。

例如:

load_model('file.h5', compile=False)


0
投票

您可以改用tensorflow传统格式:

model.save("model1", save_format='tf')
© www.soinside.com 2019 - 2024. All rights reserved.