【3】TensorFlow光速入门-训练及评估
本文地址:https://www.cnblogs.com/tujia/p/13862357.html
系列文章:
【1】TensorFlow光速入门-tensorflow开发基本流程
【2】TensorFlow光速入门-数据预处理(得到数据集)
【4】TensorFlow光速入门-保存模型及加载模型并使用
【6】TensorFlow光速入门-python模型转换为tfjs模型并使用
一、导入需要的包
import tensorflow as tf
from tensorflow import keras
import numpy as np
二、初始化模型并配置神经网络层
model = keras.Sequential([
# 展平数据,输入类型要和数据集保持一致,我这里是100*100的灰图
keras.layers.Flatten(input_shape=(100, 100, 1)),
# 第二层是神经元
keras.layers.Dense(128, activation='relu'),
# 第三层的参数很重要,2表示分两类,如果要分5类就传5,10类就传10
keras.layers.Dense(2, activation='softmax')
])
注:如果是图片分类,这三层网络是固定搭配,需要注意的是,input_shape要和数据集数据保持一致,第三层分几类就传几;其他模型的层选择和配置,我们后面再慢慢了解
三、模型编译
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
注:同样,图片分类的优化器、损失函数及指标也是固定搭配,其他类型的模型我们后面再慢慢了解
四、训练
model.fit(ds, epochs=100, steps_per_epoch=10)

注1:ds 是上一节准备好的数据集;epochs 代表要训练多少次,steps_per_epoch 代表每一次分几步训练;因为我准备的数据比较少,所以设置的训练100次。数据多的话,不用训练那么多次。
注2:使用 ZipDataset 类型的数据集时,steps_per_epoch 参数为必填,其他情况,根据自己的情况可以不传。
五、评估(评估训练效果)
test_loss, test_acc = model.evaluate(ds, verbose=2, steps=10)

注1:正常情况下,训练要用训练集,评估要用测试集。因为偷懒的原故,这里我都用的同一个数据集。
注2:使用 ZipDataset 类型的数据集时,steps 参数为必填,其他情况,根据自己的情况可以不传。
六、预测
预测即使用的意思,评估通过的模型,可以直接使用了
predictions = model.predict(ds, steps=10)
label = np.argmax(predictions[0])
print(label_names[label])

注:这里批量预测,对整个数据集都进行预测,正式使用的时候,一般只预测一张图片就可以了,下一节会说。
重点 Api :
keras.Sequential https://tensorflow.google.cn/api_docs/python/tf/keras/Sequential
model.compile https://tensorflow.google.cn/api_docs/python/tf/keras/Sequential#compile
model.fit https://tensorflow.google.cn/api_docs/python/tf/keras/Model#fit
model.evaluate https://tensorflow.google.cn/api_docs/python/tf/keras/Model#evaluate
model.predict https://tensorflow.google.cn/api_docs/python/tf/keras/Model#predict
至此,我们的图片分类模型已经训练好了。可以使用了模型来做图片分类预测了。
下一节,让我们来说一下,怎么保存这个训练好的模型。以及如何加载已保存的模型并使用:
【4】TensorFlow光速入门-保存模型及加载模型并使用
本文链接:https://www.cnblogs.com/tujia/p/13862357.html
完。
【3】TensorFlow光速入门-训练及评估的更多相关文章
- 【6】TensorFlow光速入门-python模型转换为tfjs模型并使用
本文地址:https://www.cnblogs.com/tujia/p/13862365.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...
- 【0】TensorFlow光速入门-序
本文地址:https://www.cnblogs.com/tujia/p/13863181.html 序言: 对于我这么一个技术渣渣来说,想学习TensorFlow机器学习,实在是太难了: 百度&qu ...
- 【1】TensorFlow光速入门-tensorflow开发基本流程
本文地址:https://www.cnblogs.com/tujia/p/13862339.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...
- 【2】TensorFlow光速入门-数据预处理(得到数据集)
本文地址:https://www.cnblogs.com/tujia/p/13862351.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...
- 【4】TensorFlow光速入门-保存模型及加载模型并使用
本文地址:https://www.cnblogs.com/tujia/p/13862360.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...
- 【5】TensorFlow光速入门-图片分类完整代码
本文地址:https://www.cnblogs.com/tujia/p/13862364.html 系列文章: [0]TensorFlow光速入门-序 [1]TensorFlow光速入门-tenso ...
- Tensorflow高速入门2--实现手写数字识别
Tensorflow高速入门2–实现手写数字识别 环境: 虚拟机ubuntun16.0.4 Tensorflow 版本号:0.12.0(仅使用cpu下) Tensorflow安装见: http://b ...
- TensorFlow学习——入门篇
本文主要通过一个简单的 Demo 介绍 TensorFlow 初级 API 的使用方法,因为自己也是初学者,因此本文的目的主要是引导刚接触 TensorFlow 或者 机器学习的同学,能够从第一步开始 ...
- 音频标签化3:igor-8m项目的训练、评估与测试
上一节介绍了youtube-8m项目,这个项目以youtube-8m dataset(简称8m-dataset)样本集为基础,进行训练.评估与测试.youtube-8m设计用于视频特征样本,但实际也适 ...
随机推荐
- powershell编程实例-001-生成指定大小的null/zero文件或随机文件
NULL文件,也有的称为zero文件,即全是二进制/十六进制的0文件 在powershell 中可以按如下方法生成指定大小的zero文件: 只需要修改大小即可,格式如3MB,或者2GB $tempFi ...
- 堆中的线程私有缓存区域TLAB(Thread Local Allocation Buffer)
TLAB产生的原因 堆区是线程共享区域,任何线程都可以访问到堆区中的共享数据 由于对象实例的创建在JVM中非常频繁,因此在并发环境下从堆区中划分内存空间是线程不安全的 为避免多个线程操作同一地址,需要 ...
- C# NX二次开发环境搭建
在网上看到一篇C#二次开发环境搭建的文章:NX二次开发-使用NXOPEN C#手工搭建开发环境配置 ,写得非常好.我按照文章操作,过程中遇到几个问题,把问题分享给大家,希望对各位有帮助. 注意三点: ...
- Python2.7集成scrapy爬虫错误解决
运行报错: NotSupported: Unsupported URL scheme 'https':.... 解决方法:降低对应package的版本 主要是scrapy和pyOpenSSL的版本 具 ...
- linux系统内存爆满的快速解决办法!
首先用free工具检查一下内存的使用情况: $ free -m total used free shared buff/cache available Mem: 15884 207 573 145 1 ...
- burp suite 之 intruder(入侵者)
intruder:包括自动提交请求的功能 登录密码 撞库 注入 脱裤 Fuzz Burp intruder包含四个模块: Target:攻击的网站目标的详情信息 Positions :用来设置攻击类型 ...
- spring aop 源码分析(二) 代理方法的执行过程分析
在上一篇aop源码分析时,我们已经分析了一个bean被代理的详细过程,参考:https://www.cnblogs.com/yangxiaohui227/p/13266014.html 本次主要是分析 ...
- Spring学习(四)--Spring的IOC
1.BeaDefinition的Resource定位 (1)直接使用BeanDefinitionFactory 定义一个Resource来定位容器使用的BeanDefinition. Resource ...
- 下载、安装 PL/SQL Developer
操作系统:Windows 10 x64 第一节:下载 Oracle Database XE 11gR2 第二节:安装.验证安装 Oracle Database XE 11gR2 第三节:Oracle ...
- 9.23 T1 tree
题意描述: 给你一个长度为 \(n\) 的序列,让你从中选出 \(k\) 个数组成一个集合,定义这个集合的极限高度为\(a_i...a_k\) 的最大值. 让你求所有的集合极限高度 之和对 \(100 ...