我是一个学习机器学习,我想在树莓派上应用它。我有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})
结果还是一样
1条答案
按热度按时间jum4pzuy1#
根据文件:
Keras通过检查模型的架构来保存模型。这种技术可以保存所有内容:
Keras无法保存v1.x优化器(来自tf.compat.v1.train),因为它们与检查点不兼容。对于v1.x优化器,您需要在加载后重新编译模型-丢失优化器的状态。
由于Adam Optimizer是v1.x优化器,因此您可能需要重新编译模型。如果您不使用加载的模型进行训练,则不需要重新编译它。只需在调用
load_model
时设置参数compile=False
。例如:
load_model('file.h5', compile=False)