当前位置:网站首页>keras调用load_model时报错ValueError: Unknown layer:*解决办法
keras调用load_model时报错ValueError: Unknown layer:*解决办法
2022-08-08 20:54:00 【yddcs】
报的错误是ValueError: Unknown layer: SpatialPyramidPooling,
使用了SPPnet用于分类。
错误原因:keras中SPP不是默认存在的层,使用 load model 函数报错。
解决:
model.save('./vgg40e.h5')
from keras.models import load_model
from keras.utils import CustomObjectScope
with CustomObjectScope({
'SpatialPyramidPooling': SpatialPyramidPooling}):
model = load_model('./vgg40e.h5')
有两个以上的自定义网络层的解决方法如下:
cu_ob = {
'AttentionLayer1': custom_layer.Attention,'AttentionLayer2': custom_layer.Attention}
model = load_model('./cnn.h5', custom_objects=cu_ob)
当然model的权重保存有多种办法,save_weights()方法
测试时直接导入搭建的模型代码,写成类或者函数封装,使用model.load_weights()来导入权重文件。
除此之外,模型的训练历史如果没有事先保存,那就找不到了。下次跑模型是应将其训练日志保存下来。
H = model.fit(X_train, y_train,
batch_size=batch_size,
epochs=epochs,
verbose=1,
validation_data=(X_test, y_test))
accu = H.history['accuracy']
val_acc = H.history['val_accuracy']
loss = H.history['loss']
val_loss = H.history['val_loss']
epochs = range(len(accu))
plt.plot(epochs,accu, 'b', label='Training accuracy')
plt.plot(epochs, val_acc, 'r', label='validation accuracy')
plt.title('Training and validation accuracy')
plt.legend(loc='lower right')
plt.savefig('./train40e.png', dpi = 600)
plt.figure()
plt.plot(epochs, loss, 'r', label='Training loss')
plt.plot(epochs, val_loss, 'b', label='validation loss')
plt.title('Training and validation loss')
plt.legend()
plt.savefig('./tloss40e.png', dpi = 600)
plt.show()
或者在开始训练前使用记录器.
from keras.callbacks import CSVLogger
csv_logger = CSVLogger('training.log', separator=',', append=False)
model.fit(X_train, y_train, callbacks=[csv_logger])
整个日志历史记录存储在文件“ training.log”中,可以获得与H.history相同的信息。加载存储在此文件中的数据,可以使用 pandas read_csv做到这一点:
import pandas as pd
log_data = pd.read_csv('training.log', sep=',', engine='python')
边栏推荐
猜你喜欢
随机推荐
学习笔记:线性表的顺序表示和实现(二级指针实现)
Kotlin学习笔记
Kotlin Notes - Difference Between ForEach and ForEachIndexed
Float.parseFloat()的作用
Solve the problem of slow speed of gradle import package
Protobuf框架与WebAPI
C#实现Everything——数据显示
西湖大学鞠峰组招聘【塑料降解 / 污水工程 / 微生物学】方向博士后和科研助理...
Flask 教程 第十三章:国际化和本地化
Kotlin解析String路径小知识
Kotlin笔记-ForEach与ForEachIndexed区别
Yarn 总结(未完待续)
PHP传递任意数量的函数参数
com.alibaba.fastjson.JSONException: default constructor not found. class
ssh 登录connectction reset by peer
IO in Kotlin flow
单片机--IIC总线篇
实践篇2:深度学习之----LetNet之tensorflow2的实现
Kotlin's JSON format parsing
测试计划