TensorFlow中Variable变量使用

TensorFlow中Variable是一个类,主要用于保存模型在训练过程中需要被修改的量,如各种需要被保存的参数,权重等等。在整个程序运行过程中,它的值是一致被存储的。

1.Variable定义

```python
import tensorflow as tf
# Create a variable.
w = tf.Variable(<initial-value>, name=<optional-name>)
# Use the variable in the graph like any Tensor.
y = tf.matmul(w, ...another variable or tensor...)
# The overloaded operators are available too.
z = tf.sigmoid(w + y)
# Assign a new value to the variable with `assign()` or a related method.
w.assign(w + 1.0)
w.assign_add(1.0)
```

以上代码是从TensorFlow的Variable类中截取的,从中我们可以知道:

1.定义一个Variable类型的变量需要提供一个初始值或者名称,如在进行神经网络训练时对于如w,b等参数在训练开始时需要提供一个初始化值

如:

import tenserflow as tf

w = tf.Variable(1,'w)

2.Variable类型的变量可以使用TensorFlow定义的相关操作函数计算操作,也可以作为表达式的一部分进行操作,且使用如assign()函数对其进行赋值,如:

update = tf.assign(w, 1.5)
y = w + 2

但是在操作的时候必须注意数据类型,不同的数据类型在进行操作时会导致错误。如:

y = w + 0.3

该表达式即错误,因为w是整型,而0.3是浮点型数据

3. 如何在程序中使用Variable

要在程序中使用Variable变量,需要按照如下流程:

(1)定义变量

使用如w = tf.Variable(1,'w)的方式定义一个变量

(2)确定其要参与的计算,如 加、减、乘除、点积等等

如: new_value = tf.add(w, 0.01)

(3)初始化后运行定义的操作

使用Session()进行Variable变量的初始化和运行定义的操作,并显示结果,一个简单的完整呈现如下:

import tensorflow as tf

w = tf.Variable(1.0,"w")
new_w = tf.add(w,0.01)
update = tf.assign(w, new_w)
init=tf.global_variables_initializer() # 可以理解为将变量分配空间,并保持到计算图节点中
with tf.Session() as sess:
 sess.run(init) #运行初始化变量的计算
 for i in range(10): #循环10次,查看a逐渐自加1的结果
 sess.run(update) #执行变量w的加运算
 print(sess.run(w)) #打印变量w的新值
微信 OR 支付宝 扫描二维码
为本文作者 打个赏
pay_weixin    pay_weixin
金额随意 快来“打”我呀~
喜欢 0

这篇文章还没有评论

发表评论