根据学习斯坦福cs20si的课件记录学习笔记
一些有趣的tensorflow项目
学习目标
推荐的资料
书:
网站:
下面来开始Tensorflow的代码学习
首先,导入tensorflow
import tensorflow as tf
简化tensorflow
图计算
数据流图
先装饰图,在执行操作
张量的定义
依次类推
定义加法
x=3,y=5
进一步:
a = tf.add(3,5) 得到张量a,如下图
打印出来
import tensorflow as tf
a = tf.add(3, 5)
print (a)
Tensor(“Add_7:0”, shape=(), dtype=int32)
显然没有得到a = 8这个数值,而是以张量的形式来表示的
问题:如何得到数字a呢?
代码如下:
import tensorflow as tf
a = tf.add(3,5)
init = tf.global_variables_initializer()
#启动模型
sess = tf.Session()
#初始化模型
sess.run(init)
print (sess.run(a))
结果为 8
或者
代码如下:
import tensorflow as tf
a = tf.add(3,5)
init = tf.global_variables_initializer()
#启动模型
sess = tf.Session()
#初始化模型
sess.run(init)
with tf.Session() as sess:
print (sess.run(a))
结果为:8
关于tf.Session
构建更多的图
代码如下:
import tensorflow as tf
x =3;y=2;
op1 = tf.add(x, y)
op2 = tf.mul(x, y)
op3 = tf.pow(op2, op1)
with tf.Session() as sess:
op3 = sess.run(op3)
print (op3)
结果为:7776
子图
代码如下:
import tensorflow as tf
x = 2
y = 3
op1 = tf.add(x, y)
op2 = tf.mul(x, y)
useless = tf.mul(x, op1)
op3 = tf.pow(op2, op1)
with tf.Session() as sess:
op3 = sess.run(op3)
print (op3)
结果为:7776
对无用的图也做执行
代码如下:
import tensorflow as tf
x = 2
y = 3
op1 = tf.add(x, y)
op2 = tf.mul(x, y)
useless = tf.mul(x, op1)
op3 = tf.pow(op2, op1)
with tf.Session() as sess:
op3, not_useless = sess.run([op3, useless])
print ('op3:',op3,'not_useless:',not_useless)
结果:op3: 7776 not_useless: 10
对于函数tf.Session.run定义如下:
tf.Session.run(fetches, feed_dict=None,
options=None, run_metadata=None)
计算模块GPU或CPU的图表示:
Distributed Computation分布式计算
上图的代码存在问题,目前不知道怎么修改。若是有朋友有修改方案,请在下方留言,谢谢!
如果想构建多个图呢?
使用默认图,不能构建多个图。
若是非要构建多个图呢?要求如下:
构建图
这张图的代码也有问题,等后续修正。
或者:
代码如下:
import tensorflow as tf
g = tf.Graph()
with g.as_default():
a = 3
b = 5
x = tf.add(a, b)
sess = tf.Session(graph=g) # session is run on the graph g
# run session
print (sess.run(x))
sess.close()
结果:8
操作默认图
用函数g = tf.get_default_graph()
代码如下:
import tensorflow as tf
g = tf.Graph()
# add ops to the default graph
a = tf.constant(3)
# add ops to the user created graph
with g.as_default():
b = tf.constant(5)
print (b)
结果:Tensor(“Const:0”, shape=(), dtype=int32)
代码如下:
import tensorflow as tf
g1 = tf.get_default_graph()
g2 = tf.Graph()
# add ops to the default graph
with g1.as_default():
a = tf.constant(3)
print (a)
# add ops to the user created graph
with g2.as_default():
b = tf.constant(5)
print (b)
Tensor(“Const_1:0”, shape=(), dtype=int32) Tensor(“Const:0”, shape=(), dtype=int32)
课件下载地址:链接:http://pan.baidu.com/s/1bSFLhG 密码:yz24
TensorFlow for Machine Intelligence : 链接:http://pan.baidu.com/s/1nvwf5yh 密码:v9w9