sess.run()

session.run()
session.run([fetch1, fetch2])

import tensorflow as tf
state = tf.Variable(0.0,dtype=tf.float32)
one = tf.constant(1.0,dtype=tf.float32)
new_val = tf.add(state, one)
update = tf.assign(state, new_val)
init = tf.initialize_all_variables()
with tf.Session() as sess:
    sess.run(init)
    for _ in range(10):
        u,s = sess.run([update,state])
        print s

0.0
1.0
3.0
3.0
5.0
5.0
7.0
8.0
9.0
9.0

猜测是:底层在fectch这两个值的时候,是并行运算的,第一次:程序先fetch “state”的值,然后fetch “update”(导致了assign op)。 第二次,程序先fetch “update”(导致了 assign op),然后fetch “state” . 所以导致了第二次输出是1.0, 第三次输出是3.0.

另外,在执行run方法时,tensorflow并没有计算整个图,只是计算了与想要fetch 的值相关的部分

feed_dict参数的作用是替换图中的某个tensor的值。例如:

a = tf.add(2, 5)
b = tf.multiply(a, 3)
with tf.Session() as sess: 
    sess.run(b)

除此之外,feed_dict还可以用来设置graph的输入值,这就引入了

x = tf.placeholder(tf.float32, shape=(None, 2))
w1 = tf.Variable(tf.random_normal([2,3],stddev=1,seed=1))
w2 = tf.Variable(tf.random_normal([3,1],stddev=1,seed=1))

a = tf.matmul(x,w1)
y = tf.matmul(a,w2)

with tf.Session() as sess:
    init_op = tf.global_variables_initializer()
    sess.run(init_op)
    print(sess.run(y, feed_dict={x:[[0.7,0.5],[0.2,0.3],[0.3,0.4],[0.4,0.5]]}))
    print(sess.run(w1))
    print(sess.run(w2))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值