深度学习 tesorflow2.0版本 入门第一章

为什么要学tensflow

深度学习发展迅猛
框架灵活
google开发
公司应用广泛
2.0更加灵活

后面会学习的项目

图像分类
房价预测
泰坦尼克号生存预测
文本分类
文本生成
机器翻译

核心部分

模型训练
tesorboard----> 查看模型训练进度
模型保存和部署
分布式训练-----> 加速训练速度,提升训练效率
TensorFlow常用库:Tfds, tfhub,tensor2tensor
多平台云端环境GPU:Goolgle cloud环境配置,AWS环境配置
kaggle平台:数据使用 和 打比赛

总纲要

深度学习 tesorflow2.0版本 入门第一章

tensorflow

深度学习 tesorflow2.0版本 入门第一章

tesorflow就是google的开源软件库
深度学习领域最为广泛的开源库

特点
采用 数据流图,用于数值计算
支持多平台——GPU,CPU和移动设备

什么是数据流图

节点: 图中的方框,圆形都是。
主要是 用于 处理数据。对数据进行计算。

线: 节点间的输入输出关系,代表节点间的数据依赖。

张量:线上运输的数据 就是 张量。即为 tensor,也就是n维数据。
0维 数组
1维 向量
2维 矩阵
n维 n维矩阵 (大于等于三维)

最后,图中的节点 被 分配到 各个计算设备上运行。
深度学习 tesorflow2.0版本 入门第一章

tensflow 特性

高度灵活性(封装了很多深度学习的封装,也可以写自己的函数)
可移植性(可以在不同平台上部署执行)
产品和科研结合
自动求微分(尤其是反向传播的求解)
多语言支持(python,C++,JAVA,R等)
性能最优化

tensflow版本变化

2015年11月开源
2016年 支持window,分布式tensflow
2017年 keras继承,1.0稳定版本,初始化TPU支持
2018年 TF Hub,TensorFlow.js, Clould TPU板块和管道v1.6,新的分布式API策略,概率编程工具
2019年 1.10版本,1.12API改进,2.0发布

版本1.0和2.0

1.0 主要特性
XLA特性 提升训练速度。58倍
可以在移动设备上运行
引入高级API tf.layers tf.metrics tf.losses
tensorflow调试器
支持docker镜像,引入tensorflow service服务
深度学习 tesorflow2.0版本 入门第一章

2.0主要特性

使用 tf.keras 和 eager mode 更加简单模型构造
鲁棒的跨平台部署
清楚不常用API

不仅仅是一个架构图
更像是 一个开发流程
深度学习 tesorflow2.0版本 入门第一章

tf2.0开发流程

1 加载数据
2 模型构建
3 模型运行 和 调试
4 分发策略 分布式训练
5 导出模型
6 部署模型
深度学习 tesorflow2.0版本 入门第一章
强大跨平台能力

深度学习 tesorflow2.0版本 入门第一章
强大研究实验能力
深度学习 tesorflow2.0版本 入门第一章

两大深度学习框架 tensorflow VS pytorch

pytorch是Facebook的框架

比较四点
深度学习 tesorflow2.0版本 入门第一章

深度学习 tesorflow2.0版本 入门第一章
深度学习 tesorflow2.0版本 入门第一章
代码对比:

对于tensflow 1.0 来说

import tensflow as tf
print(tf.__version__) # 打印出tensflow的版本

深度学习 tesorflow2.0版本 入门第一章
定义变量

x = tf.Variable(0.)
y = tf.Variable(1.)
print(x)
print(y)

深度学习 tesorflow2.0版本 入门第一章
定义两个操作

add_op = x.assign(x + y)
div_op = y.assign(y / 2)

上面相当于构建好图了,
下面是执行操作。

必须有绘画概念
打开绘画
初始化
执行

打开绘画
with tf.Session() as sess:
初始化绘画
	sess.run(tf.golbal_variables_initializer())
操作执行50次
	for iteration in range(50):
使用操作对象执行50次
		sess.run(add_op)
		sess.run(div_op)
	print(x.eval())

使用pytorch

import torch
print(torch.__version__)

x = torch.Tensor([0.])
y = torch.Tebsir([1.])

for iteraion in range(50):
	x = x + y
	y = y / 2
print(x)

深度学习 tesorflow2.0版本 入门第一章
tensor2.0
对于tensflow1.13版本来说,
打开 eager_execution()就相当于2.0操作了

import tensorflow as tf
tf.enable_eager_execution() # 如果是tf2.0,不用这一行
print(tf.__version__)

定义两个变量
循环50次

x = tf.constant(0.)
y = tf.constant(1.)

for interaion in range(50):
	x = x+ y
	y = y /2
print(x.numpy())

深度学习 tesorflow2.0版本 入门第一章

纯python执行
深度学习 tesorflow2.0版本 入门第一章
图的创建和调试
深度学习 tesorflow2.0版本 入门第一章
全面性

深度学习 tesorflow2.0版本 入门第一章
序列化 和 部署
深度学习 tesorflow2.0版本 入门第一章

总结:

tf1 难用
tf2 和 pytorch 好用,接近,好调试
tf2 部署,应用最广泛

上一篇:TensorFlow自定义损失函数


下一篇:在tensorflow.keras.layers.Layer自定义层中使用for循环