深度学习框架tensorflow——华为AI学习笔记16

举报
darkpard 发表于 2022/02/28 22:31:05 2022/02/28
【摘要】 1. 什么是tensorflowgoogle开源的深度学习框架,能很好地支持深度学习算法,能适应各种平台且稳定性很高,也有很好的维护和更新。它分成tensor和flow两部分它在github上的star数量和深度学习框架评分中都遥遥领先(可能已经过时)2. 版本2015.9 0.1版,是alphaGo用的深度学习框架2017.2 1.0版本2019.3 2.0版本,对1.0做了优化,但有些地...

1. 什么是tensorflow

google开源的深度学习框架,能很好地支持深度学习算法,能适应各种平台且稳定性很高,也有很好的维护和更新。

它分成tensor和flow两部分

它在github上的star数量和深度学习框架评分中都遥遥领先(可能已经过时)

2. 版本

2015.9 0.1版,是alphaGo用的深度学习框架

2017.2 1.0版本

2019.3 2.0版本,对1.0做了优化,但有些地方不完全兼容

由于学习视频比较老,仍用了1.14的版本教学

3. 能做什么?

语音识别

自动驾驶等等

4. 特点

4.1. 灵活可扩展

4.2. 多语言

本身是用C++写的,但支持多种语言

4.3. GPU

支持GPU,能够快速地计算

4.4. 多平台

跨平台性非常好

4.5. 运算性能强

4.6. 支持分布式运算

5. 架构

应用层:训练相关库、预测相关库

客户端:python/C++/Java/Go

核心API

计算分布:分布式计算图、本地计算图

数据操作层:Const/Var/matmul/Conv2D

硬件:CPU/GPU

6. 基础概念

6.1. 组成

6.1.1. 张量

tensor,数据载体

6.1.2. flow,计算图

数据流图,即变量计算图,比如定义z=x+y,并不计算,要调用后才计算

定义好数据后像流水一样一步步运行

图片图片

6.1.3. 算子

6.1.4. 会话

定义计算图后要开启一个会话才会计算

6.1.5. 变量

使用占位符,后续再补充,或者直接定义变量

图片

6.1.6. API

tensorflow里提供的一些算法和函数

7. 如何搭建神经网络

7.1. 定义输入节点

输入层的定义

会用到6.1.5.的变量

图片

7.2. 定义”学习参数“的变量

主要是学习中用到的超参数,比如梯度下降中的学习率,批训练中的batch_size等

图片图片

7.3. 定义运算

就是上面说的计算图,它们属于隐藏层

比如全连接神经网络就是一个矩阵运算,可以定义在计算图里面

tf.layers.dense,其实就是一个wx+b的过程

也可以是CNN、RNN等

tf.layers.conv2d
tf.layers.max_pooling2d,这是最大池化,还有平均池化,最小池化等

tf.nn.rnn_cell.BasicRNNCell,这些现在一般很少用

tf.contrib.rnn.BasicLSTMCell,长短记忆神经网络,比较复杂,效果也比较好,解决了传统神经网络梯度消失问题,但计算量增加了很多

tf.contrib.rnn.GRUCell,相对上一个不会差很多,但减少了计算量

图片

7.4. 优化函数/优化目标

实际上就是梯度下降函数和损失函数

图片

7.5. 初始化所有变量

运算前需要初始化所有变量,包括前面定义的超参数和计算图

图片

7.6. 模型训练

是一个反复迭代的训练过程,把我们定义的优化函数更新到最优

图片

7.7. 测试模型

拿准备好的测试集进行测试

图片

7.8. 使用模型

需要本地保存并在后续使用中导入

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。