深度学习发展迅猛
框架灵活
google开发
公司应用广泛
2.0更加灵活
图像分类
房价预测
泰坦尼克号生存预测
文本分类
文本生成
机器翻译
模型训练
tesorboard----> 查看模型训练进度
模型保存和部署
分布式训练-----> 加速训练速度,提升训练效率
TensorFlow常用库:Tfds, tfhub,tensor2tensor
多平台云端环境GPU:Goolgle cloud环境配置,AWS环境配置
kaggle平台:数据使用 和 打比赛
tesorflow就是google的开源软件库
深度学习领域最为广泛的开源库
特点
采用 数据流图,用于数值计算
支持多平台——GPU,CPU和移动设备
节点: 图中的方框,圆形都是。
主要是 用于 处理数据。对数据进行计算。
线: 节点间的输入输出关系,代表节点间的数据依赖。
张量:线上运输的数据 就是 张量。即为 tensor,也就是n维数据。
0维 数组
1维 向量
2维 矩阵
n维 n维矩阵 (大于等于三维)
最后,图中的节点 被 分配到 各个计算设备上运行。
高度灵活性(封装了很多深度学习的封装,也可以写自己的函数)
可移植性(可以在不同平台上部署执行)
产品和科研结合
自动求微分(尤其是反向传播的求解)
多语言支持(python,C++,JAVA,R等)
性能最优化
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服务
2.0主要特性
使用 tf.keras 和 eager mode 更加简单模型构造
鲁棒的跨平台部署
清楚不常用API
不仅仅是一个架构图
更像是 一个开发流程
tf2.0开发流程
1 加载数据
2 模型构建
3 模型运行 和 调试
4 分发策略 分布式训练
5 导出模型
6 部署模型
强大跨平台能力
强大研究实验能力
pytorch是Facebook的框架
比较四点
代码对比:
对于tensflow 1.0 来说
import tensflow as tf print(tf.__version__) # 打印出tensflow的版本
定义变量
x = tf.Variable(0.) y = tf.Variable(1.) print(x) print(y)
定义两个操作
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)
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())
纯python执行
图的创建和调试
全面性
序列化 和 部署
tf1 难用
tf2 和 pytorch 好用,接近,好调试
tf2 部署,应用最广泛



