当前位置:网站首页>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')
边栏推荐
- 莫让“学院派”限制我们的思维:在数组的中间位置删除数据一定比链表慢?
- Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
- MySQL权限管理
- 莅临GOPS大会龙智展位,获取Forrester最新报告:《Forrester Wave:2021年第四季度企业服务管理报告》
- Kotlin学习笔记
- Flask 教程 第十章:邮件支持
- SQL-堆叠注入(含例题)
- 高数_复习_第3章:一元函数积分学
- Flask 教程 第十三章:国际化和本地化
- Kotlin delegate property knowledge points
猜你喜欢
随机推荐
Kotlin Notes - Difference Between ForEach and ForEachIndexed
Flask 教程 第三章:Web表单
简单Swing界面笔记
Simple Swing interface notes
各类测试场景的检查点
一下科技:未来短视频行业发展呈四大趋势
charles简单使用
差点被ECCV错过的论文:视频理解新框架,仅用微调的「成本」,达到预训练的「全能」...
WPF主窗体调用 User32的SetWindowPos 设置窗体置顶会导致与其他窗体抢夺焦点的问题
投资基金定投安全吗
有幸与美团大佬共同探讨单节点连接数超1.5W的问题
内网渗透之代理转发
究竟什么才是“云计算” | 科普好文
Matlab用回归、SEIRD模型、聚类预测美国总统大选、新冠疫情对中美经济的影响
源码分析Canal专栏
2020-8-18js练习
0-1 背包问题
莫让“学院派”限制我们的思维:在数组的中间位置删除数据一定比链表慢?
学习笔记:线性表的顺序表示和实现(二级指针实现)
Kotlin学习笔记