文章目录

  • 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 当场抓获官方教程相关推荐

  1. TensorFlow2.0 Guide官方教程 学习笔记20 -‘Effective TensorFlow 2‘

    本笔记参照TensorFlow Guide官方教程,主要是对'Effictive TensorFlow 2'教程内容翻译和内容结构编排,原文链接:Effictive TensorFlow 2 高效的T ...

  2. TensorFlow 2官方教程 . Keras机器学习基础知识 . 使用TF Hub进行文本分类

    写在前面 此篇博客转载自tensorflow官方教程中文翻译版: https://www.tensorflow.org/tutorials/keras/text_classification_with ...

  3. 60分钟入门PyTorch,官方教程手把手教你训练第一个深度学习模型(附链接)

    来源:机器之心 本文约800字,建议阅读5分钟. 本文介绍了官方教程入门PyTorch的技巧训练. 近期的一份调查报告显示:PyTorch 已经力压 TensorFlow 成为各大顶会的主流深度学习框 ...

  4. TensorFlow 2.0 极简教程,不到 20 行代码带你入门

    今天,Google 发布了 TensorFlow 2.0 的 alpha 版本,真是千呼万唤始出来,对应的 2.0 官方教程 也释出,本文翻译了官方最简单的一个教程,带你入门 TensorFlow. ...

  5. 【转】真正从零开始,TensorFlow详细安装入门图文教程!(帮你完成那个最难的从0到1)...

    AI这个概念好像突然就火起来了,年初大比分战胜李世石的AlphaGo成功的吸引了大量的关注,但其实看看你的手机上的语音助手,相机上的人脸识别,今日头条上帮你自动筛选出来的新闻,还有各大音乐软件的歌曲& ...

  6. PyTorch 官方教程发布,限时免费开放!

    点击上方"AI有道",选择"星标"公众号 重磅干货,第一时间送达 PyTorch 如今已经称为最受欢迎的深度学习框架之一了!2019年1月到6月底,在arXiv ...

  7. TensorFlow高阶 API: keras教程-使用tf.keras搭建mnist手写数字识别网络

    TensorFlow高阶 API:keras教程-使用tf.keras搭建mnist手写数字识别网络 目录 TensorFlow高阶 API:keras教程-使用tf.keras搭建mnist手写数字 ...

  8. 60分钟入门PyTorch,官方教程手把手教你训练第一个深度学习模型

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自机器之心. 近期的一份调查报告显示:PyTorch 已经力压 TensorFlow 成为各大顶会的主流深度学习框架.想发论文,不学 PyTor ...

  9. PyTorch官方教程《Deep Learning with PyTorch》开源分享,LeCun力荐,通俗易懂

    1 前言 谈到深度学习框架,就不得不谈TensorFlow 和 PyTorch .目前来看,TensorFlow 和 PyTorch 框架是业界使用最为广泛的两个深度学习框架, TensorFlow在 ...

最新文章

  1. 【Vue】脚手架 Vue CLI 的使用
  2. 在SAP WebClient UI里显示倒数计时的UI
  3. 基于RBGD的mapping
  4. Introduce Null Object(引入Null对象)
  5. 根据中文修改英文翻译,重新生成英文翻译文件(保证原有文件的顺序不变)
  6. 在C语言中,SetConsoleTextAttribute(参数1,参数2)是设置控制台窗口字体颜色和背景颜色的函数。GetStdHandle(参数)函数用于获得句柄
  7. myid文件缺失导致zookeeper无法启动(myid file is missing)
  8. @SuppressLint(HandlerLeak),或Handler使用有警告;
  9. winform最小化至托盘、右下角弹框提示
  10. CF1399E1 Weights Division (easy version)
  11. [2018.10.10 T1] 餐馆
  12. iWebOffice2015入门(二)
  13. 简单学习Infopath
  14. C# 基础(十八)C# 工程自动生成app.manifest、AssemblyInfo.cs、Resources.Designer.cs、Settings.Designer.cs文件的作用
  15. java报表技术总结_15个Java的报表工具总结
  16. 2055041-21-7,Acid-PEG4-S-PEG4-acid在EDC和HATU等活化剂存在下,羧酸基团可与伯胺反应
  17. c语言让程序等待鼠标点击,C语言模拟鼠标事件
  18. Qt QTreeWidget/QTreeView去焦点(虚线框)
  19. java cst_Java中处理CST格式时间
  20. 小米一面、二面,面经

热门文章

  1. 有没有同义句转换的软件v.1.2.3
  2. 山东大学软件工程应用与实践——GMSSL开源库(十)——重要的大整数
  3. 二手服务器还是组装机,我表弟不懂电脑,老板竟然给他组装这种电脑:没坑人,明码标价!...
  4. 利用tushare画股票K线图
  5. 对接塔吉特Target DVS的EDI流程详解
  6. 人工智能实战2019第六次作业——尹正超
  7. android图片3d效果代码,android上类似汽车之家的3d全景照片怎么实现
  8. [2005.05.26 19:58:17] 一路奔走
  9. 通过MSSQL SA弱口令入侵服务器
  10. 泸西一中2021高考成绩查询,红河州高考各县市成绩