Lecture1 Overview of Tensorflow

最近发现Stanford新开了一门课cs20si《Tensorflow for Deep Learning Research》准备好好学习一下。

第一节课主要介绍Tensorflow的一些基本知识。

Note中提出了Tensorflow具有以下重要特种:

  • Python API
  • 轻便。可以用一个单独的API实现desktop,server以及移动设备上1个或多个CPU/GPU的计算部署。
  • 灵活性。Android,windows,iOS,Linux上都可以使用。
  • 可视化。提供了TensorBoard
  • Checkpoints.
  • 自动求导
  • 大规模的社区
  • 有很多基于Tensorflow的项目

Data Flow Graph

Tensorflow将模型的定义与模型的执行分开,使用Session来进行操作。
tensorflow中并不是将所有计算都先算好,将数据保存下来,而是等到计算的操作出现时,再进行计算。

有API并不清楚,可以通过看源码来了解函数的具体意义

这种data Flow graph的优点在于,可以方便地将graph分为多块,每一块指定不同的cpu/gpu.

可以创建多个graph,但是其实并不需要多个graph,session在默认的graph上运行。

  • 多个graph需要多个session,每一个session都会默认请求使用所有的资源
  • 多个graph间传递数据,仍需要通过Python/numpy传递,
  • 使用一个graph里有多个不连接的subgraph更好。比如可以有多个模型,看哪个模型输出的值更高。

创建新的graph,需要用as_default()函数,否则的话,会在默认的graph中进行计算。通常要将graph作为Default graph。

g = tf.Graph()
with g.as_default():
    x = tf.add(3, 5)

sess = tf.Session(graph=g)

http://danijar.com/what-is-a-tensorflow-session/介绍了graph和session的用法
1. graph是用于定义计算的。它并不进行计算,也不存储数据,仅仅定义了一些操作。tensorflow中会创建一个默认的graph。
2. session是用来执行graph或者部分graph。它可以分配资源(在一台或者多台机器上,这些资源存储结果或者变量。可以在多个session中使用同一个graph,这些计算是独立进行的。

a = tf.Variable(1, name="foo")
init = tf.global_variables_initializer()

assign = a.assign(10)

with tf.Session() as sess:
    sess.run(init)
    print "a=", sess.run(a)

with tf.Session() as sess:
    sess.run(init)
    sess.run(assign)
    print "a=", sess.run(a) 

输出为
a=1
a=10

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值