tensorflow笔记:图变量tf.Variable的用法解析

TensorFlow中的图变量,跟我们平时所接触的一般变量在用法上有很大的差异。尤其对于那些初次接触此类深度学习库的编程人员来说,会显得十分难上手。

我们通过tf.Variable构造一个variable添加进图中,Variable()构造函数需要变量的初始值(是一个任意类型、任意形状的tensor),这个初始值指定variable的类型和形状。

本文将按照如下篇幅深入剖析tf.Variable这个核心概念:

  1. 图变量的初始化方法
  2. 两种定义图变量的方法
  3. scope如何划分命名空间
  4. 图变量的复用
  5. 图变量的种类

1.图变量的初始化方法

对于一般的Python代码,变量的初始化就是变量的定义,向下面这样:

In [1]: x = 3
In [2]: y = 3 * 5
In [3]: y
Out[3]: 15

如果我们模仿上面的写法来进行TensorFlow编程,就会出现下面的”怪现象”:

In [1]: import tensorflow as tf
In [2]: x = tf.Variable(3, name='x')
In [3]: y = x * 5
In [4]: print(y)
Tensor("mul:0", shape=(), dtype=int32)

y的值并不是我们预想中的15,而是一个莫名其妙的输出——”

#coding:utf-8
import tensorflow as tf
x=tf.Variable(3,name='x')
y=x*5
print y
with tf.Session() as sess:
	sess.run(tf.global_variables_initializer())
	print"输出结果为y为:",sess.run(y)

(tf1.5) zhangkf@Ubuntu2:~/tf/tf4$ python 1.py 
Tensor("mul:0", shape=(), dtype=int32)
输出结果为y为: 15

注意:在TensorFlow的世界里,变量的定义初始化是分开的,所有关于图变量的赋值和计算都要通过tf.Session的run来进行。想要将所有图变量进行集体初始化时应该使用tf.global_variables_initializer。

2.两种定义图变量的方法

tf.Variable

tf.Variable.init(initial_value, trainable=True, collections=None, validate_shape=True, name=None)

注意:trainable=True(标注为可训练的参数,为False标注为不可训练的参数)

虽然有一堆参数,但只有第一个参数initial_value是必需的。

参考链接:

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页