Keras 3.4.1中ModelCheckpoint报错:文件路径需以.keras结尾
问题解决:ModelCheckpoint要求路径以
.keras结尾 环境版本
- PYTHON版本:3.12.4
- PIP版本:24.1.1
- KERAS版本:3.4.1
- TENSORFLOW版本:2.16.1
错误信息
运行训练代码时触发如下错误:
ValueError Traceback (most recent call last) Cell In[10], line 2 1 # Model chekpoint Callback ----> 2 cp_callback = tf.keras.callbacks.ModelCheckpoint( 3 model_save_path, verbose=1, save_weights_only=False) 4 # Callback for early Termination 5 es_callback = tf.keras.callbacks.EarlyStopping(patience=20, verbose=1) File ~\AppData\Local\Programs\Python\Python312\Lib\site-packages\keras\src\callbacks\model_checkpoint.py:191, in ModelCheckpoint.__init__(self, filepath, monitor, verbose, save_best_only, save_weights_only, mode, save_freq, initial_value_threshold) 189 else: 190 if not self.filepath.endswith(".keras"): ---> 191 raise ValueError( 192 "提供的文件路径必须以`.keras`结尾(Keras模型格式)。接收路径:" 193 f"filepath={self.filepath}" 194 ) ValueError:提供的文件路径必须以`.keras`结尾(Keras模型格式)。接收路径:filepath=model/keypoint_classifier/keypoint_classifier.hdf5
涉事代码
# Model chekpoint Callback cp_callback = tf.keras.callbacks.ModelCheckpoint( model_save_path, verbose=1, save_weights_only=False) # Callback for early Termination es_callback = tf.keras.callbacks.EarlyStopping(patience=20, verbose=1)
解决方法
Keras 3.x(对应TensorFlow 2.16.x)版本中,保存完整模型(save_weights_only=False)时,默认要求文件路径以.keras后缀结尾。有两种解决方式:
方式一:修改路径后缀为.keras
直接调整model_save_path的值为model/keypoint_classifier/keypoint_classifier.keras,代码无需额外修改。
方式二:保留.hdf5后缀,指定保存格式
在ModelCheckpoint初始化时添加save_format='h5'参数,强制使用HDF5格式保存:
cp_callback = tf.keras.callbacks.ModelCheckpoint( model_save_path, verbose=1, save_weights_only=False, save_format='h5')
内容的提问来源于stack exchange,提问作者Pratik Ranjan
相关产品推荐
相关产品推荐

