前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tensorflow2.0 教程-初识 TF2.0

Tensorflow2.0 教程-初识 TF2.0

作者头像
机器视觉CV
发布2019-07-14 13:25:44
1.8K0
发布2019-07-14 13:25:44
举报
文章被收录于专栏:机器视觉CV机器视觉CV

建议阅读时长 10分钟

本节内容

  • TF2.0 介绍
  • TF2.0 中的部分模块
  • 实战: Mnist 例程

TF2.0 介绍

TensorFlow 是谷歌基于 DistBelief 进行研发的第二代人工智能学习系统,自 2015 年问世,并在去年 11 月迎来三周岁生日,已经发展为世界上最受欢迎和被广泛采用的机器学习平台之一。

TensorFlow 等于 Tensor+Flow,即数据 + 流动。

本人最开始接触 TF1.0 ,觉得它非常抽象,对新手不是很友好,故而转向 keras 。但是,单纯的学习 keras 并不能胜任更多的工作。 以下是从拉钩网中几家公司的招聘要求,基本上所有的公司都会要求使用 TF、caffe、pytorch 等深度学习框架,但是以这三者居多。

给几个我选择 TF 的几个理由,确切的说 TF2.0:

  • TF2.0 舍弃了之前版本的部分冗余包,TF2.0 有点像 keras , 故有戏称全世界都是 Keras
  • 开源社会活跃,使用人群多,当前有 4100 万次下载,共有 1800 多名贡献者
  • 更重要的一个原因是:最新!TF2.0 是今年 3 月份发布的,想必现在的大部分公司应该开始从 TF1.x 向 TF2.0 迭代,我当前是研究生一年级,等我毕业后,大多数公司的 TF 应该都会更新到最新版,那么到时我便能更快的适应工作

不管你之前有没有接触过或者 TF 或者其他深度学习框架,都无关紧要,当然,有其他框架的使用经历可能会有更好的理解。在这个教程中,我不会去和之前的版本进行比较,因为我没有使用过的经历,我更专注的是最新版 TF 的使用

在学习的过程中,肯定会遇到相当多的问题,但是,坚持下去总能收获,欢迎有同样爱好,或者在学习 TF2.0 的开发者联系我,一起学习。因为,一群人能走得更远!

TF2.0 中的模块介绍

在 TensorFlow2.0 中,Keras 是一个用于构建和训练深度学习模型的高阶 API。以下将介绍 keras 中的几个常用模块。

常用的几个模块使用

  1. datasets

如何使用:

代码语言:javascript
复制
 1# 导入包
 2from tensorflow import keras
 3# 定义数据集对象
 4mnist = keras.datasets.mnist
 5boston_housing = keras.datasets.boston_housing
 6cifar10 = keras.datasets.cifar10
 7cifar100= keras.datasets.cifar100
 8fashion_mnist =keras.datasets.fashion_mnist
 9imdb= keras.datasets.imdb
10reuters= keras.datasets.reuters
11
12# 导入数据,其他类似
13(x_train, y_train), (x_test, y_test) = mnist.load_data()

fashion_mnist 是 mnist 的一个升级版,有人曾调侃道:"如果一个算法在 MNIST 不 work,那么它就根本没法用;而如果它在 MNIST 上 work,它在其他数据上也可能不 work"。所有 fashion_mnist 是一个好的替代品。

  1. layers

与神经网络相关的层,包括卷积层、池化层、全连接层、上采样层,你会发现,这些和 keras 框架中的方法类似

  1. 其他

Mnist 例程

介绍一个入门的例程,称作机器学习的 Hello World 的 Mnist 手写字符识别

代码语言:javascript
复制
 1# Python 兼容的一些包,更多可以参考:https://docs.python.org/2/library/__future__.html
 2
 3# Install TensorFlow
 4# !pip install tensorflow==2.0.0-alpha0 # 未安装的需要安装 TF2.0 这里已经安装了
 5import tensorflow as tf
 6
 7# 导入数据集,并进行归一化
 8mnist = tf.keras.datasets.mnist
 9
10(x_train, y_train), (x_test, y_test) = mnist.load_data()
11x_train, x_test = x_train / 255.0, x_test / 255.0
12
13# 构建模型,这里没有用到卷积
14model = tf.keras.models.Sequential([
15    tf.keras.layers.Flatten(input_shape=(28, 28)),
16    tf.keras.layers.Dense(128, activation='relu'),
17    tf.keras.layers.Dropout(0.2),
18    tf.keras.layers.Dense(10, activation='softmax')
19])
20
21model.summary()
22model.compile(optimizer='adam',
23              loss='sparse_categorical_crossentropy',
24              metrics=['accuracy'])
25
26"""输出:
27Model: "sequential"
28_________________________________________________________________
29Layer (type)                 Output Shape              Param #   
30=================================================================
31flatten (Flatten)            (None, 784)               0         
32_________________________________________________________________
33dense (Dense)                (None, 128)               100480    
34_________________________________________________________________
35dropout (Dropout)            (None, 128)               0         
36_________________________________________________________________
37dense_1 (Dense)              (None, 10)                1290      
38=================================================================
39Total params: 101,770
40Trainable params: 101,770
41Non-trainable params: 0
42_________________________________________________________________
43"""
代码语言:javascript
复制
 1# 训练模型
 2model.fit(x_train, y_train, epochs=5)
 3
 4"""训练结果
 5Epoch 1/5
 660000/60000 [==============================] - 9s 156us/sample - loss: 0.2956 - accuracy: 0.9143
 7Epoch 2/5
 860000/60000 [==============================] - 9s 147us/sample - loss: 0.1405 - accuracy: 0.9585
 9Epoch 3/5
1060000/60000 [==============================] - 9s 154us/sample - loss: 0.1050 - accuracy: 0.9678
11Epoch 4/5
1260000/60000 [==============================] - 9s 153us/sample - loss: 0.0867 - accuracy: 0.9727
13Epoch 5/5
1460000/60000 [==============================] - 9s 156us/sample - loss: 0.0737 - accuracy: 0.9764
15"""
代码语言:javascript
复制
1# 模型评估
2model.evaluate(x_test, y_test)
3
4"""预测效果
510000/10000 [==============================] - 1s 99us/sample - loss: 0.0706 - accuracy: 0.9763
6
7[0.07059373209443874, 0.9763]
8"""

TF2.0 中的 keras 模块应该会是最经常使用的模块,与 keras 框架有许多相似之处。

一句话送给大家:如果你在你当前的行业积累并不是很深的时候,而另外一个行业(比如:机器学习)又有比较好的前景的时候,可以考虑 ALL in 一个新的行业。

工具千千万,效率第一条,任何框架的迭代速度都在加快,不应该只是学会调用框架,一些最基础的概念、算法应该要相当熟悉,这也是我经常提醒自己的。

参考资料:

  • 幕布为本教程思维导图制作软件
  • https://tensorflow.org
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器视觉CV 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本节内容
  • TF2.0 介绍
  • TF2.0 中的模块介绍
  • Mnist 例程
相关产品与服务
腾讯云 TI 平台
腾讯云 TI 平台(TencentCloud TI Platform)是基于腾讯先进 AI 能力和多年技术经验,面向开发者、政企提供的全栈式人工智能开发服务平台,致力于打通包含从数据获取、数据处理、算法构建、模型训练、模型评估、模型部署、到 AI 应用开发的产业 + AI 落地全流程链路,帮助用户快速创建和部署 AI 应用,管理全周期 AI 解决方案,从而助力政企单位加速数字化转型并促进 AI 行业生态共建。腾讯云 TI 平台系列产品支持公有云访问、私有化部署以及专属云部署。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档