炼数成金Tensorflow学习笔记之2.2_变量

炼数成金Tensorflow学习笔记之2.2_变量

代码及分析

import tensorflow as tf

x = tf.Variable([1, 2])
a = tf.constant([3, 3])

sub = tf.subtract(x, a)
add = tf.add(x, sub)

init_op = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init_op)
    print(sess.run(sub))  # [-2 -1]
    print(sess.run(add))  # [-1  1]

# 创建一个变量,初始化为0
state = tf.Variable(0, name="counter")
# 创建一个op,作用是使state加1 
new_value = tf.add(state, 1)
# 下面是一个赋值op
update = tf.assign(state, new_value)
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(sess.run(state))
    for _ in range(5):
        print(sess.run(update))
#        sess.run(tf.assign(state, new_value))
        print(sess.run(state))
'''
这一块的输出结果:
0
1
1
2
2
3
3
4
4
5
5
'''
  1. tf.Variable(initial_value=None, trainable=True, collections=None, validate_shape=True, caching_device=None, name=None, variable_def=None, dtype=None, expected_shape=None, import_scope=None
    )
    作用:生成一个变量,维护图在执行过程中的状态信息
    initial_value=None:Variable 类的初始值,这个变量必须指定 shape 信息,否则后面 validate_shape 需设为 False
    trainable=True:是否把变量添加到 collection GraphKeys.TRAINABLE_VARIABLES 中(collection 是一种全局存储,不受变量名生存空间影响,一处保存,到处可取)
    collections=None:全局存储,默认是 GraphKeys.GLOBAL_VARIABLES
    validate_shape=True:是否允许被未知维度的 initial_value 初始化
    caching_device=None:指明哪个 device 用来缓存变量
    name=None:变量名
    variable_def=None:
    dtype=None:如果被设置,初始化的值就会按照这个类型初始化
    expected_shape=None:要是设置了,那么初始的值会是这种维度
    import_scope=None:
    另一篇博客中有介绍
  2. tf.subtract(x, y, name=None)
    作用:返回 x-y 的元素.
    注意:Subtract 支持广播.
  3. tf.add(x,y,name=None)
    作用:返回 x+y 的元素.
    注意:Subtract 支持广播.
  4. tf.global_variables_initializer()
    作用:添加节点用于初始化全局变量(GraphKeys.GLOBAL_VARIABLES)。返回一个初始化所有全局变量的操作(Op)。
    与之相对应的有一个tf.local_variables_initializer():返回一个初始化所有局部变量的操作(Op)。初始化局部变量(GraphKeys.LOCAL_VARIABLE)。
  5. tf.assign(ref, value, validate_shape=None, use_locking=None, name=None)
    作用:函数完成了将value赋值给ref的作用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值