tensorflow变量的用法、修改

import tensorflow as tf

# 变量初始化方式以及变量必须指定初始值
a = tf.constant(value=3.0, dtype=tf.float32, name='a')
b = tf.Variable(initial_value=2.0, dtype=tf.float32, name='b')  # 变量必须指定初始值。
c = tf.add(a, b)
d = tf.subtract(c, a)

# 相当于在图中添加一个初始化全局变量的操作
init_op = tf.global_variables_initializer()

with tf.Session(graph=tf.get_default_graph(),
                config=tf.ConfigProto(log_device_placement=True, allow_soft_placement=True))\
        as sess:
    # 1.allow_soft_placement置为True指:设备不行的话,重新找设备2.log_device_placement=True表示运行时打印日志
    init_op.run()  # (作用同下行)这行代码也是初始化运行操作,但要求明确给定当前代码快对应的默认Session(tf.get_default_session)是哪个,底层使用默认Session
    # sess.run(init_op)
    # print(sess.run(c))  # (作用同下行)
    # print(c.eval())
    print(sess.run(fetches=[c, d]))  # print(sess.run([c, d]))  同时获取多个op操作的值
    

'''
# 变量依赖和assign
w1 = tf.Variable(tf.random_normal(shape=[10], stddev=0.5, dtype=tf.float32, seed=3), name='w1')
# 变量值服从正态分布,形状是10维数组(其实就是一个数组,里面有10个元素),方差是0.5,随机种子给定使得每次运行产生的数据一致
a = tf.constant(2.0, dtype=tf.float32)
w = tf.assign(w1, w1.initialized_value()*0.0)  # 修改w1的值
w2 = tf.Variable(w1.initialized_value()*a, name='w2')  #  变量依赖的案例
# 注意哦:最好写成w1.initialized_value()*a,不要写成直接写成w1*a,以免出错

init_op = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init_op)
    print(sess.run(w1))  # [ 0.53083104 -0.43928915  0.05593609 ...]
    sess.run(w)
    print(sess.run(w1))  # [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
    print(sess.run(w2))  # [ 1.0616621 , -0.8785783 ,  0.11187217...],说明w1变了,但w2依赖的w1任然是原来没有被修改的w1的值
'''

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值