TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 变量(Variable)的定义与操作
锋哥原创的Scikit-learn Python机器学习视频教程:
https://www.bilibili.com/video/BV1X5xVz6E4w/
课程介绍
本课程主要讲解基于TensorFlow2的Python深度学习知识,包括深度学习概述,TensorFlow2框架入门知识,以及卷积神经网络(CNN),循环神经网络(RNN),生成对抗网络(GAN),模型保存与加载等。
TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 变量(Variable)的定义与操作
在 TensorFlow 2 中,Variable
是一种张量,它是模型的可训练参数。Variable
和普通的 Tensor
之间的主要区别在于,Variable
的值可以在训练过程中更新,而 Tensor
的值是不可变的。
1. Variable
的定义
tf.Variable
用于定义一个变量。它的构造方法允许你指定初始值、数据类型和形状。通常情况下,初始化值可以是 Tensor
,也可以是 NumPy 数组或 Python 原生的数值。
import tensorflow as tf
# 创建一个标量变量,初始值为 3.0
var1 = tf.Variable(3.0)
# 创建一个 2x2 矩阵变量
var2 = tf.Variable([[1.0, 2.0], [3.0, 4.0]])
print(var1)
print(var2)
运行结果:
<tf.Variable 'Variable:0' shape=() dtype=float32, numpy=3.0>
<tf.Variable 'Variable:0' shape=(2, 2) dtype=float32, numpy=
array([[1., 2.],[3., 4.]], dtype=float32)>
2. Variable
的操作
你可以像普通的 Tensor
一样对 Variable
进行操作,包括加法、乘法、减法等,并且 Variable
会随着操作的执行而更新其值。
import tensorflow as tf
# 创建一个变量
x = tf.Variable(5)
y = tf.Variable(5)
# 进行加法操作,结果会更新变量 x 的值
x.assign(x + 1)
y.assign(y - 1)
print(x)
print(x.value())
print(x.value().numpy())
print(y.value().numpy())
运行结果:
<tf.Variable 'Variable:0' shape=() dtype=int32, numpy=6>
tf.Tensor(6, shape=(), dtype=int32)
6
4
3. 更新变量
Variable
的值可以通过 .assign()
或 .assign_add()
等方法进行修改。
-
assign()
:将变量的值更新为指定的值。 -
assign_add()
:将指定的值加到变量上。 -
assign_sub()
:将指定的值减到变量上。
import tensorflow as tf
# 创建一个变量
v = tf.Variable([1.0, 2.0, 3.0])
# 使用 assign 更新变量
v.assign([4.0, 5.0, 6.0])
print(v)
# 使用 assign_add 对变量加值
v.assign_add([1.0, 1.0, 1.0])
print(v)
# 使用 assign_sub 对变量减值
v.assign_sub([2.0, 2.0, 2.0])
print(v)
运行结果:
<tf.Variable 'Variable:0' shape=(3,) dtype=float32, numpy=array([4., 5., 6.], dtype=float32)>
<tf.Variable 'Variable:0' shape=(3,) dtype=float32, numpy=array([5., 6., 7.], dtype=float32)>
<tf.Variable 'Variable:0' shape=(3,) dtype=float32, numpy=array([3., 4., 5.], dtype=float32)>