Tensorflow 2 当场抓获官方教程
文章目录
- 0. 写在前面
- 1. 最简单的教程
0. 写在前面
本教程内容与Tensorflow 2 官方教程没什么区别,区别大概就是作者做了个翻译然后加了点自己的理解粑,也就是将官方教程——
1. 最简单的教程
这个简短的教程将教会你:
- 创建一个用于图像分类的神经网络
- 训练这个神经网络
- 评估模型的准确度
首先导入TensorFlow:
import tensorflow as tf
载入MNIST数据集,并查看数据集的基本信息:
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()print(type(x_train)) # <class 'numpy.ndarray'>print(x_train.shape) # (60000, 28, 28)
print(y_train.shape) # (60000,)
print(x_test.shape) # (10000, 28, 28)
print(y_test.shape) # (10000,)print(x_train.min(), x_train.max()) # 0 255
print(y_train.min(), y_train.max()) # 0 9
print(x_test.min(), x_test.max()) # 0 255
print(y_test.min(), y_test.max()) # 0 9
将样本数据从整数转换成0~1的小数:
x_train, x_test = x_train / 255.0, x_test / 255.0
将各个层堆叠起来创建Sequential模型:
model = tf.keras.Sequential([tf.keras.layers.Flatten(input_shape=(28, 28)),tf.keras.layers.Dense(128, activation="relu"),tf.keras.layers.Dropout(0.2),tf.keras.layers.Dense(10),
])
通过模型预测一个样本:
sample = x_train[:1]
sample.shape
''' (1, 28, 28) '''predictions = model(sample)
predictions
'''
<tf.Tensor: shape=(1, 10), dtype=float32, numpy=
array([[ 0.0655466 , 0.5331823 , -0.3338868 , 0.28012255, -0.313728 ,-0.5673277 , -0.19933444, 0.16807592, -0.21235606, -0.33416414]],dtype=float32)>
'''
使用softmax函数将其转换为概率值(0~1):
tf.nn.softmax(predictions)
'''
<tf.Tensor: shape=(1, 10), dtype=float32, numpy=
array([[0.11080548, 0.17686947, 0.07431723, 0.13732526, 0.07583057,0.05884471, 0.08502074, 0.12276912, 0.08392081, 0.07429662]],dtype=float32)>
'''
为了验证其是不是概率,进行求和,看看是否等于1:
prob = tf.nn.softmax(predictions)
tf.reduce_sum(prob)
''' <tf.Tensor: shape=(), dtype=float32, numpy=1.0> '''
注:理论上来说可以把softmax作为最后一层的激活函数,尽管这样可以使输出结果更直观(是概率的形式),但是一般不会这么做,因为使用softmax输出的话不可能对所有模型都取得准确的和数字上稳定的损失计算。
使用 losses.SparseCategoricalCrossentropy 损失函数计算交叉熵损失:
(由于这是一个未训练的模型,它给出每个结果的概率为1/10,因此交叉熵应该接近于 -log(1/10)≈2.3 )
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
loss_fn(y_train[:1], tf.nn.softmax(predictions))
''' <tf.Tensor: shape=(), dtype=float32, numpy=2.344348> '''
选择训练时使用的优化器和损失函数:
model.compile(optimizer="adam",loss=loss_fn,metrics=["accuracy"],
)
开始训练,训练5个epoch:
model.fit(x_train, y_train, epochs=5)'''
Train on 60000 samples
Epoch 1/5
60000/60000 [==============================] - 5s 90us/sample - loss: 0.3011 - accuracy: 0.9117
Epoch 2/5
60000/60000 [==============================] - 5s 83us/sample - loss: 0.1430 - accuracy: 0.9574
Epoch 3/5
60000/60000 [==============================] - 7s 119us/sample - loss: 0.1089 - accuracy: 0.9671
Epoch 4/5
60000/60000 [==============================] - 7s 125us/sample - loss: 0.0891 - accuracy: 0.9728
Epoch 5/5
60000/60000 [==============================] - 8s 130us/sample - loss: 0.0739 - accuracy: 0.9768
'''
使用模型的evaluate方法测试模型的表现,一般用在测试集上。
model.evaluate(x_test, y_test, verbose=2)
'''
输出信息:10000/10000 - 1s - loss: 0.0764 - accuracy: 0.9760
返回值:[0.07638283925862052, 0.976]
'''
Tensorflow 2 当场抓获官方教程相关推荐
- TensorFlow2.0 Guide官方教程 学习笔记20 -‘Effective TensorFlow 2‘
本笔记参照TensorFlow Guide官方教程,主要是对'Effictive TensorFlow 2'教程内容翻译和内容结构编排,原文链接:Effictive TensorFlow 2 高效的T ...
- TensorFlow 2官方教程 . Keras机器学习基础知识 . 使用TF Hub进行文本分类
写在前面 此篇博客转载自tensorflow官方教程中文翻译版: https://www.tensorflow.org/tutorials/keras/text_classification_with ...
- 60分钟入门PyTorch,官方教程手把手教你训练第一个深度学习模型(附链接)
来源:机器之心 本文约800字,建议阅读5分钟. 本文介绍了官方教程入门PyTorch的技巧训练. 近期的一份调查报告显示:PyTorch 已经力压 TensorFlow 成为各大顶会的主流深度学习框 ...
- TensorFlow 2.0 极简教程,不到 20 行代码带你入门
今天,Google 发布了 TensorFlow 2.0 的 alpha 版本,真是千呼万唤始出来,对应的 2.0 官方教程 也释出,本文翻译了官方最简单的一个教程,带你入门 TensorFlow. ...
- 【转】真正从零开始,TensorFlow详细安装入门图文教程!(帮你完成那个最难的从0到1)...
AI这个概念好像突然就火起来了,年初大比分战胜李世石的AlphaGo成功的吸引了大量的关注,但其实看看你的手机上的语音助手,相机上的人脸识别,今日头条上帮你自动筛选出来的新闻,还有各大音乐软件的歌曲& ...
- PyTorch 官方教程发布,限时免费开放!
点击上方"AI有道",选择"星标"公众号 重磅干货,第一时间送达 PyTorch 如今已经称为最受欢迎的深度学习框架之一了!2019年1月到6月底,在arXiv ...
- TensorFlow高阶 API: keras教程-使用tf.keras搭建mnist手写数字识别网络
TensorFlow高阶 API:keras教程-使用tf.keras搭建mnist手写数字识别网络 目录 TensorFlow高阶 API:keras教程-使用tf.keras搭建mnist手写数字 ...
- 60分钟入门PyTorch,官方教程手把手教你训练第一个深度学习模型
点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自机器之心. 近期的一份调查报告显示:PyTorch 已经力压 TensorFlow 成为各大顶会的主流深度学习框架.想发论文,不学 PyTor ...
- PyTorch官方教程《Deep Learning with PyTorch》开源分享,LeCun力荐,通俗易懂
1 前言 谈到深度学习框架,就不得不谈TensorFlow 和 PyTorch .目前来看,TensorFlow 和 PyTorch 框架是业界使用最为广泛的两个深度学习框架, TensorFlow在 ...
最新文章
- 【Vue】脚手架 Vue CLI 的使用
- 在SAP WebClient UI里显示倒数计时的UI
- 基于RBGD的mapping
- Introduce Null Object(引入Null对象)
- 根据中文修改英文翻译,重新生成英文翻译文件(保证原有文件的顺序不变)
- 在C语言中,SetConsoleTextAttribute(参数1,参数2)是设置控制台窗口字体颜色和背景颜色的函数。GetStdHandle(参数)函数用于获得句柄
- myid文件缺失导致zookeeper无法启动(myid file is missing)
- @SuppressLint(HandlerLeak),或Handler使用有警告;
- winform最小化至托盘、右下角弹框提示
- CF1399E1 Weights Division (easy version)
- [2018.10.10 T1] 餐馆
- iWebOffice2015入门(二)
- 简单学习Infopath
- C# 基础(十八)C# 工程自动生成app.manifest、AssemblyInfo.cs、Resources.Designer.cs、Settings.Designer.cs文件的作用
- java报表技术总结_15个Java的报表工具总结
- 2055041-21-7,Acid-PEG4-S-PEG4-acid在EDC和HATU等活化剂存在下,羧酸基团可与伯胺反应
- c语言让程序等待鼠标点击,C语言模拟鼠标事件
- Qt QTreeWidget/QTreeView去焦点(虚线框)
- java cst_Java中处理CST格式时间
- 小米一面、二面,面经
热门文章
- 有没有同义句转换的软件v.1.2.3
- 山东大学软件工程应用与实践——GMSSL开源库(十)——重要的大整数
- 二手服务器还是组装机,我表弟不懂电脑,老板竟然给他组装这种电脑:没坑人,明码标价!...
- 利用tushare画股票K线图
- 对接塔吉特Target DVS的EDI流程详解
- 人工智能实战2019第六次作业——尹正超
- android图片3d效果代码,android上类似汽车之家的3d全景照片怎么实现
- [2005.05.26 19:58:17] 一路奔走
- 通过MSSQL SA弱口令入侵服务器
- 泸西一中2021高考成绩查询,红河州高考各县市成绩