学习目标:

  1. 掌握利用Keras评估神经网络性能的方法
  2. 掌握利用Keras保存与加载神经网络模型的方法

学习内容:

对cifar10数据库(10类),做如下实验:

  1. 利用回调(callbacks),设置ModelCheckpoint,把训练过程中对验证集分类精度最高的模型保存为.h5格式的文件,并且另写一个.py文件,不用重新训练模型,直接读取.h5文件和测试数据计算识别率。
  2. 利用回调(callbacks),记录TensorBoard类的日志,并且在浏览器可视化训练过程。
  3. 保存整个模型和权重,并在另外一个.py文件中读取出来,然后对测试样本分类。

学习过程:

1.

准确率为0.3968

另一个.py文件读取模型:

准确率也为0.3968

2.查看记录TensorBoard类的日志:

时间序列:

准确率为0.3968

3.

读取模型:

能读取出刚刚保存的模型的权重;


源码:

总的源码:

# In[1]:读取cifar10数据集
from keras.datasets import cifar10
from keras import utils
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
y_train=utils.to_categorical(y_train,num_classes=10) #
y_test=utils.to_categorical(y_test,num_classes=10)  #
x_train,x_test = x_train/255.0, x_test/255.0 # In[2]:构造网络
from keras import Sequential,layers,optimizers
model = Sequential()
model.add(layers.Reshape((32*32*3,),input_shape=(32,32,3)))
model.add(layers.Dense(512, activation='relu',name='dense1'))
model.add(layers.Dense(10, activation='softmax',name='dense2'))
optimizer = optimizers.SGD(lr=0.001)
model.compile(optimizer,loss='categorical_crossentropy', metrics=['accuracy']) #分类交叉熵函数# In[4]:训练和测试
# TensorBoard 日志的路径要用 os.path.join 生成,不然在 windows 下会报错
import os
log_dir = os.path.join("logs")
if not os.path.exists(log_dir):os.mkdir(log_dir)from keras import callbacks
my_callbacks = [
# 每一代训练结束时保存验证集精度最高的模型的权重系数
callbacks.ModelCheckpoint(filepath='mymodel_{epoch:02d}.h5',monitor='val_accuracy',save_best_only=True),
callbacks.TensorBoard(log_dir=log_dir),
]# 保存模型
model_save_path = "model_file_path.h5"
model.save(model_save_path)
# 删除当前已存在的模型
del model
# 加载模型,不需要模型的定义代码,即可从.h5文件恢复整个模型,包括结构和权重
from keras.models import load_model
model = load_model(model_save_path) #加载模型# In[3]:
# 拟合模型
model.fit(x_train, y_train, validation_data=(x_test, y_test),batch_size=32, epochs=6, callbacks=my_callbacks)# In[5]:
# 读取checkpoint保存的权重,以继续训练或者测试
model.load_weights('mymodel_05.h5')
loss, accuracy = model.evaluate(x_test, y_test)
# val_accuracy: 0.9777# In[6]:
model.load_weights('model_file_path.h5')
loss, accuracy = model.evaluate(x_test, y_test)# In[获取模型在某一层的输出]:
from keras.models import Model
# 取某一层的输出为输出新建为model,采用函数模型
#dense1_layer_model = Model(inputs=model.input,outputs=model.get_layer('dense2').output)
dense1_layer_model = Model(inputs=model.input,outputs=model.get_layer('dense2').output)
# 以这个model的预测值作为输出
#x_test
#dense1_output = dense1_layer_model.predict(x_train)
dense1_output = dense1_layer_model.predict(x_test)
print(dense1_output.shape)
print(dense1_output)

第一小问:

#第一问
from keras.datasets import cifar10
from keras import utils
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
y_train=utils.to_categorical(y_train,num_classes=10)
y_test=utils.to_categorical(y_test,num_classes=10)
x_train,x_test = x_train/255.0, x_test/255.0#加载模型
from keras.models import load_model
model = load_model('mymodel_05.h5')loss, accuracy = model.evaluate(x_test, y_test)

第三小问:

第三小问:from keras.datasets import cifar10
from keras import utils
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
y_train=utils.to_categorical(y_train,num_classes=10)
y_test=utils.to_categorical(y_test,num_classes=10)
x_train,x_test = x_train/255.0, x_test/255.0#加载模型
from keras.models import load_model
model = load_model('model_file_path.h5')loss, accuracy = model.evaluate(x_test, y_test)

源码下载


学习产出:

能读出了模型的类别、总共有多少个测试样本和模型的权重。

人工智能--Keras网络评估相关推荐

  1. 人工智能--Keras网络训练

    学习目标: 掌握Keras进行训练的方法 掌握各种优化器和损失函数的特点 学习内容: 对cifar10数据库(10类),做如下实验: 对比各种优化器的结果:分别选择SGD.Adam.RMSprop等优 ...

  2. 人工智能--Keras网络构建

    学习目标: 掌握Keras构建网络的方法 理解不同的激活函数 学习内容: 对cifar10数据库(10类),做如下实验: 构建合适的全连接网络结构进行分类,并定义一个自定义的全连接层加入到网络中. 选 ...

  3. 人工智能在网络贷款中鲜为人知的事

    作者 | Laksh Mohan 翻译| 火火酱~,责编 | 晋兆雨 出品 | AI科技大本营 头图 | 付费下载于视觉中国 现在,科技已经成为推动企业发展壮大的基本要素之一.人工智能(AI)就是一个 ...

  4. 人工智能、网络空间对国家核安全的影响

    来源:知远战略与防务研究所 人工智能技术是一把双刃剑,其在网络空间和核领域的应用,一方面能够为网络安全和核安全提供技术保障:另一方面,人工智能技术也可能为对手所用,通过网络空间对核武器体系进行渗透进攻 ...

  5. 【转】人工智能在网络攻防领域的应用及问题分析

    算法.数据与算力是人工智能发展的三大核心要素.近些年来,在算法增强.数据爆增及算力提升等多种有利因素的驱动下,人工智能飞速发展并在各行各业得到广泛应用,在网络空间安全领域也不例外.网络攻防对抗不断演化 ...

  6. GAN网络评估指标:IS、FID、PPL

    GAN网络评估指标:IS.FID.PPL 转自:IS.FID.PPL,GAN网络评估指标 另外关于GAN的评价指标,推荐李宏毅老师的视频:[機器學習2021]生成式對抗網路 (Generative A ...

  7. 学会动态丨中国人工智能学会重磅发布《2018人工智能产业创新评估白皮书》

    来源:中国人工智能学会 摘要:<2018人工智能产业创新评估白皮书>由中国人工智能学会.国家工信安全中心.华夏幸福产业研究院.思保环球联合发布.白皮书聚焦人工智能的使能技术与应用场景两个层 ...

  8. keras 自定义评估函数和损失函数loss训练模型后加载模型出现ValueError: Unknown metric function:fbeta_score

    keras分类回归的损失函数与评价指标 目标函数 (1)mean_squared_error / mse 均方误差,常用的目标函数,公式为((y_pred-y_true)**2).mean() (2) ...

  9. cnn图像二分类 python_人工智能Keras图像分类器(CNN卷积神经网络的图片识别篇)...

    上期文章我们分享了人工智能Keras图像分类器(CNN卷积神经网络的图片识别的训练模型),本期我们使用预训练模型对图片进行识别:Keras CNN卷积神经网络模型训练 导入第三方库 from kera ...

最新文章

  1. Grub及内核的简单介绍安装
  2. 第三十天-ssh key企业批量分发自动化管理案例
  3. 搭建Python+Django开发环境
  4. css背景图片、圆角、盒子阴影、浮动
  5. LeetCode 1655. 分配重复整数(回溯)
  6. 土豚mysql_树莓派LNMP配置
  7. Sharepoint 2010 解决DFWP - Unable to display this Web Part 的问题
  8. DevExpress 之 GridControl 自定义列
  9. BZOJ2118[国家集训队] 墨墨的等式
  10. java留言板源码_jsp留言板示例源码下载(入门级)
  11. CTF Crypto 入门练习
  12. 郝兵c语言_郝斌C语言教程全套视频180集下载地址
  13. 近期计算机病毒爆发,最新警示!最新电脑病毒全面爆发,沉寂已久的incaseformat蠕虫病毒肆虐横行!...
  14. 磁盘显示无法访问数据错误循环冗余检查的资料恢复法子
  15. 三、JavaSE_集合(Set)
  16. 华硕笔记本开机直接进入bios解决方法
  17. 配置Hadoop格式化namenode时报错cannot create directory /usr/local/hadoop/tmp/dfs/name/current
  18. 实现企业微信引流的三大思路
  19. week2__javaSE__选择控制语句__循环控制语句__数组__面向对象之封装
  20. puppet三种认证注册方式详解及常见报错分析

热门文章

  1. Android应用icon和闪屏splash的尺寸
  2. Chrome、safi、IE浏览器通用上一步、下一步代码
  3. 软件测试和java开发哪个前景好_Java开发,软件测试哪个更好,发展前景更大?...
  4. html页面控制标签,html body标签详解与html常用的控制标记
  5. win10输入法在sublime中光标不跟随。
  6. Python学习笔记(6):JSON的编码和解码
  7. 学习Linux命令(32)
  8. 数据结构-带头节点的单链表(C语言)超详细讲解
  9. spring-boot项目实例
  10. php实现动态统计,php+highchats生成动态统计图