TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 变量(Variable)的定义与操作

锋哥原创的TensorFlow2 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)>
相关推荐
海绵宝宝转agent5 小时前
learn-claude-code第1-5章开源学习笔记分享
人工智能·笔记·python·学习
小奇不哭5 小时前
ROS2 单节点,RGB-D 深度相机局部路径提取 + B 样条平滑路径 + YOLOv8 障碍物检测 + 深度测距,用于移动机器人视觉局部循迹。
python·yolov8·ros2·cv2·路径探索循迹
liron715 小时前
智能实体演化系统的统一性概念
人工智能·深度学习·神经网络
小小龙学IT5 小时前
Python scikit-learn 机器学习库深度解析
python·机器学习·scikit-learn
Yolanda_20226 小时前
19.神经网络-最大池化的使用
人工智能·深度学习·神经网络
2601_962071576 小时前
类变量和全局变量的查找路径有什么区别?
开发语言·python
呆萌很7 小时前
消融实验对比方法
人工智能·深度学习
卷无止境7 小时前
独立开发者的"富矿地带":哪些垂直领域值得你押注一辈子?
后端·python
Java后端的Ai之路7 小时前
Python进阶探索29_eval内置函数
开发语言·python·探索·eval·内置函数
计算机毕业编程指导师7 小时前
计算机毕设选题推荐:基于Hadoop与Spark的Steam游戏数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·steam游戏