Tensorflow小Tips(二):如何给tensor赋值 —— tf.assign函数

  其实tensorflow里面如何改变tensor的值一直是很令人苦恼的事儿,不过我最近发现 tf.assign 函数可以对 tensor 进行整体的赋值。

调用方式

import tensorflow as tf
w = tf.Variable(initial_value=[[1,1], [1,1]], dtype = tf.float32)
update = tf.assign(w, [[1,2],[1,2]])
x = w * 2

注意点 – 和控制流搭配使用

  先看一个实例,如果直接输出 tensor w 的值:

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(sess.run(x))

  然而输出的 w 的值是:
  这里写图片描述
  这就证明了似乎没有执行 update = tf.assign(w, [[1,2],[1,2]]) 这一步。如何确保一定执行了这一步呢?

显式确保调用 update:控制流

with tf.control_dependencies([update]):
    x = w * 2

这样就能够保证在执行 x = w * 2 之前一定执行了 update 那一步。这样再执行就会得到正常的结果了:
这里写图片描述

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值