当前位置: 首页 > news >正文

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)>
http://www.dtcms.com/a/452863.html

相关文章:

  • AI行业应用:金融、医疗、教育、制造业领域的落地实践
  • 【Git 子模块冲突解析】
  • 软件设计师——09 数据库技术基础
  • Guava Cache 高性能本地缓存库详解与使用案例
  • 开源安全管理平台wazuh-阻止恶意IP访问
  • 蒲城做网站网站定制开发成本
  • 嵌入式开发入门:从 FreeRTOS 任务到通信协议(详细教程)
  • 数据结构(长期更新)第2讲:顺序表(一)
  • 《Flask 的“微”哲学:从轻量内核到请求上下文的深度剖析》
  • 在 Elasticsearch 中改进 Agentic AI 工具的实验
  • Solid Explorer(双窗格文件管理器) 解锁完整版
  • 做外贸自己的公司网站wordpress头像设置方法
  • Java学习之旅第二季-9:包
  • 大数据毕业设计选题推荐-基于大数据的人类健康生活方式数据分析与可视化系统-大数据-Spark-Hadoop-Bigdata
  • 图像处理实践:自定义直方图变换函数的优化与问题解决
  • 人力资源管理的思维方式学习笔记7-final
  • JavaEE初阶——线程安全(多线程)
  • [工作流节点16] 更新他表记录的自动化方案:跨表数据联动的关键实现
  • 南京金融网站建设wordpress热门文章调用
  • 针对 OpenMMLab 视频理解(分类)的 MMAction2 的环境配置
  • 中国电信用户行为实时分析系统运维实战
  • HTTP、WebSocket、XMPP、CoAP、MQTT、DDS 六大协议在机器人通讯场景应用
  • 长春网站制作招聘信息上海网站被查
  • 做自媒体视频搬运网站网站建设与管理淘宝
  • IP 协议的相关特性
  • 《投资-88》价值投资者的认知升级与交易规则重构 - 第三层:估值安全边际,“再好的公司,如果买贵了,也会变成一笔糟糕的投资。”
  • 工程师 - Raspberry Pi Pico程序:读取SPI数据后从串口输出
  • 虚幻引擎5 GAS开发俯视角RPG游戏 P04-12 可缩放浮点数的曲线表
  • 接口请求工具对比 apifox apipost swagger postman等
  • C++联合体(Union)详解:与结构体的区别、联系与深度解析