目录:

  • 前言
  • 基本概念
    • 实现原理
    • 扩展功能
      • 1自动求导
      • 2单独执行子图
      • 3计算图的控制流
      • 4文件系统路径
      • 5队列
      • 6容器
    • 性能优化
  • 尾声:

前言

经过前段时间的努力,已经在电脑上搭好了深度学习系统,接下来就要开始跑程序了,将AI落地了。
安装win10下tensforlow 可以参照之前的例子:win10+gpu安装
在使用gpu版本中一些特别的问题,可以参照这篇:win10+tensorflow+gpu
在运行过程中遇到的一些错误,可以参照这篇::tensorflow 错误
学习的结果要依靠输出来检验。
环境还是得特别强调一下:
硬件:
华硕(ASUS) 飞行堡垒三代FX60VM GTX1060 15.6英寸游戏笔记本电脑(i7-6700HQ 8G 128GSSD+1T FHD)黑色
软件:
python 3.6:下载
tensorflow 1.8.0 地址
cuda 9.0:下载
cudnn 7.1:下载

基本概念

要想流畅得使用tensorflow实现你的项目,必须要对一些基础概念有很深入的理解。

tensorflow中的计算可以表示为一个计算图,其中每一个运算操作将作为一个节点,节点与节点之间的连接称为边。这个计算图描述了数据的计算流程,必须要好好理解这个概念,才能体会到这个计算模型的优越。

计算图中每一个节点可以有任意多个输入和任意多个输出,每一个节点描述了一种运算操作,节点可以算是运算操作的实例化。在计算图的边中流动的数据被称为张量,故得名tensorflow。session 是用户使用tensorflow时的交互式接口。用户可以通过Session的extend方法添加新的节点和边,用以创建计算图,然后就可以通过Session的Run方法执行计算图:用户给出需要计算的节点,同时提供输入数据,Tensorflow就会自动寻找所有需要计算的节点并按依赖顺序执行它们。
variables可以保存张量,而其他张量则不会保存。

实现原理


这张图很好的展示了,tensorflow的实现方式,高度抽象:
客户端负责与使用者交互。
master负责当客户端与worker的中介
worker则负责调度具体的硬件实现计算。
在只有一个硬件设备的情况下,计算图会按照依赖关系被顺序执行。 当一个节点的所有上游依赖都被执行完时(依赖数减为0),这个节点就会被加入ready queue 以等待执行。同时他下游的所有节点的依赖数减1.
分布式的时候遇到的难题:
- 每一个节点该让什么设备执行?
- 如何管理节点间的数据通信。
1第一个问题,目前采用贪婪策略解决,未来希望使用强化学习。
2第二个问题,当给节点的分配方案确定时,整个计算图就会被划分为许多子图,使用同一个设备并且相邻的节点会被划分到同一个子图。然后计算图中从x到y的边,会被取代为一个发送端的发送节点和一个接受端的接受节点,以及从发送节点到接受节点的边。

问题就这样简化了,机制很优秀。

这是cpu和gpu通信的图。

扩展功能

1自动求导

计算costfunction的梯度很关键,tensorflow支持自动求导,
比如一个tensor c在计算图中有一组依赖的tensor{x},那么在tensorflow中可以自动导出{dc/dx}。这个求解过程在计算途中通过增加节点自动实现。
反向规则。
[db,dw,dx]=tf.gradients(C,[b,w,x]).

2单独执行子图

用户可以选择计算图的任意子图,并沿某些边输入数据,同时从另一些边获取输出结果。Tensorflow用节点名加port的形式指定数据,例如bar:0表示名为bar的节点的第一个输出。
同时,tensorflow会自动确定哪些节点应该被执行。

3计算图的控制流

提供高阶函数,例如merge和swith来进行控制流。

4文件系统路径

在分布式的时候,直接读取本地文件,而不是读取异地文件。

5队列

tensorflow支持fifo队列,也支持shuffling queue队列进行调度,用以满足要求。

6容器

每一个进程的默认容器会一直存在,直到进程结束,它可以帮助不同计算图的会话分享状态变量。管理长期变量的机制。

性能优化

1高阶函数自动优化基本操作。
2任务调度优化,内存,cpu综合考虑。
3支持优化库。
4数据压缩
5并行计算模式:1数据并行,模型并行,流水线并行。


尾声:

学以致用,以学促用。
欢迎大家一起分享。

Win10:tensorflow 学习笔记(1)相关推荐

  1. Win10: tensorflow 学习笔记(3)

    前言 学以致用,以学促用.输出检验,完整闭环. 怕什么真理无穷,进一寸有一寸的欢喜--胡适 经过前段时间的努力,已经在电脑上搭好了深度学习系统,接下来就要开始跑程序了,将AI落地了. 安装win10下 ...

  2. Win10:tensorflow学习笔记(4)

    前言 学以致用,以学促用.输出检验,完整闭环. 经过前段时间的努力,已经在电脑上搭好了深度学习系统,接下来就要开始跑程序了,将AI落地了. 安装win10下tensforlow 可以参照之前的例子:w ...

  3. win10:tensorflow学习笔记(2)

    目录: 前言 Tensorflow的故事 1Tensorflow和其他框架的对比 2Tesorflow 目前进展 3大杀器tensorboard 尾声 前言 经过前段时间的努力,已经在电脑上搭好了深度 ...

  4. 【TensorFlow学习笔记】完美解决 pip3 install tensorflow 没有models库,读取PTB数据

    安装tensorflow 我使用的是最最最简单的容易的 pip3 install <TensorFlow学习笔记> 一. 安装win10下python3.6的tensorflow的CPU版 ...

  5. Tensorflow学习笔记6:解决tensorflow训练过程中GPU未调用问题

    Tensorflow学习笔记6:解决tensorflow训练过程中GPU未调用问题 参考文章: (1)Tensorflow学习笔记6:解决tensorflow训练过程中GPU未调用问题 (2)http ...

  6. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

  7. tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数

    tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报  分类: tensorflow(4)  目录(?)[+] 本笔记目的 ...

  8. tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)

    续集请点击我:tensorflow学习笔记--使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...

  9. TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅

    TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅读 ...

  10. Tensorflow学习笔记2:About Session, Graph, Operation and Tensor

    简介 上一篇笔记:Tensorflow学习笔记1:Get Started 我们谈到Tensorflow是基于图(Graph)的计算系统.而图的节点则是由操作(Operation)来构成的,而图的各个节 ...

最新文章

  1. 听说你有病,我这儿可有对症的药
  2. 徘徊于win和ubuntu
  3. 小端字节序与大端字节序
  4. 安全测试需要关注那些要点
  5. MySQL多表查询实例
  6. Quickly Find/ Open a file in Visual Studio
  7. 学习 MySQL中导入 导出CSV
  8. AutoCAD彻底卸载和清理注册表
  9. hibernate官网下载
  10. 小米手机助手 云服务器错误,小米手机助手连接手机失败的处理操作过程
  11. mysql mariadb libs_mysql 安装 【解决】mariadb-libs is obsoleted by *** - Ctrl+CCtrl+V - ITeye博客...
  12. 步进电机结构C语言程序,51单片机驱动步进电机(含电路图和C语言源程序代码)
  13. 倾斜摄影在农房一体不动产测量中的技术流程(Smart3D+EPS)
  14. 201809-4 再卖菜 ccf
  15. Linux DRM(二) --Xorg/DRM
  16. 第五届中国网络安全大会(NSC2017)
  17. 再高贵的打工人都得在体检报告前低下高贵的头颅
  18. python中 “按位与,或,异或”与C语言的不同
  19. 55 个 Linux 练手项目合集,打通你的 Linux 任督二脉 !
  20. 解决Git出现rpc failed 问题

热门文章

  1. 博士选题的态度:商量着来
  2. 吃完晚饭干什么的好方法
  3. Python cv2 摄像头
  4. pom.xml文件指定jdk版本号/跳过测试
  5. Java 位运算- 十进制数值转十六进制(内存中的数据)
  6. Linux公社资料库地址
  7. UML学习总结(1)——UML学习入门
  8. 对list中的元素按照元素的属性进行排序
  9. ”这个动作需要从没有授权的软件源来安装软件包“解决办法
  10. Tomcat正常启动,一访问就报错