变量

TensorFlow变量是表示程序处理的共享持久状态的最佳方法。变量通过 tf.Variable OP类进行操作。变量是tensor的一种

1.变量的特点

1.存储持久化
2.可修改值
3.可指定被训练

2.创建变量

tf.Variable( initial_value=None,trainable=True,collections=None ,name=None)
  • initial_value:初始化的值
  • trainable:是否被训练
  • collections:新变量将添加到列出的图的集合中collections,默认为[GraphKeys.GLOBAL_VARIABLES],如果trainable是True变量也被添加到图形集合 GraphKeys.TRAINABLE_VARIABLES 变量需要显式初始化,才能运行值

查看打印出来的是什么

import tensorflow as tf

a = tf.Variable(initial_value=20.0)
b = tf.Variable(initial_value=30.0)

sum_ab = tf.add(a,b)
print(a,b,sum_ab)


打印出来的结果返回的是variable,所以

  • <mark>大部分的节点:操作接受可以是tensor类型的数据也可以是variable数据类型,都代表数据,类型不一样返回都是tensor数组类型</mark>

  • <mark>tf.variable 接受的可以是tensor 返回的是variable</mark>

打印变量的值【注意一定要初始化变量,然后还要在会话中运行一下】

import tensorflow as tf

a = tf.Variable(initial_value=20.0)  # 没有赋值,还需要初始化
b = tf.Variable(initial_value=30.0)

sum_ab = tf.add(a, b)

# 运行之前初始化变量
init = tf.global_variables_initializer()

print(a, b, sum_ab)

# 【手动初始化变量!!!然后运行一下!!!】
with tf.Session() as sess:
    sess.run(init)  # 运行一下初始化的变量才可以用哦
    print(sess.run(sum_ab))

2.使用tf.variable_scope()修改变量的命名空间

会在OP的名字前面增加命名空间的指定名字

import tensorflow as tf

#使用tf.variable_scope()修改变量的命名空间
with tf.variable_scope("name"):
    a = tf.Variable(name = "var",initial_value=20.0)  # 没有赋值,还需要初始化
    b = tf.Variable(name = "var",initial_value=30.0)

sum_ab = tf.add(a, b)

# 运行之前初始化变量
init = tf.global_variables_initializer()

print(a, b, sum_ab)

# 【手动初始化变量!!!然后运行一下!!!】
with tf.Session() as sess:
    sess.run(init)  # 运行一下初始化的变量才可以用哦
    print(sess.run(sum_ab))