TensorFlow变量
一个TensorFlow变量是表示由程序操作的共享持久状态的最佳方法。
变量通过tf $变量
类。一个tf $变量
表示一个张量,它的值可以通过对其运行操作来改变。特定的操作允许你读取和修改这个张量的值。像Keras这样的高级库使用tf $变量
存储模型参数。本指南涵盖了如何创建、更新和管理tf $变量
在TensorFlow中。
创建一个变量
要创建变量,只需提供初始值
图书馆(tensorflow)my_variable < -特遣部队$变量(特遣部队$0(形状(1,2,3.)))
这就创建了一个变量,它是一个具有形状的三维张量[1,2,3]
全是0。默认情况下,此变量将具有dtype
tf float32美元
.如果未指定dtype,则从初始值推断。
如果有一个tf美元的设备
作用域激活,变量将被放置在该设备上;否则变量将被放置在与其dtype兼容的“最快”设备上(这意味着如果GPU可用,大多数变量将自动放置在GPU上)。例如,下面的代码片段创建了一个名为v
并将其放在第二个GPU设备上:
与(特遣部队$设备(“/设备:GPU: 1”), {v < -特遣部队$变量(特遣部队$0(c(10,10)))})
理想情况下,你应该使用tf发行美元
API,因为它允许您编写一次代码,并使其在许多不同的分布式设置下工作。
使用变量
要使用a的值tf $变量
在一个TensorFlow图中,简单地把它当作一个正常的tf美元张量
:
若要为变量赋值,请使用方法分配
,assign_add
,和朋友在一起tf $变量
类。例如,下面是如何调用这些方法:
# # <特遣部队。变量'UnreadVariable' shape=() dtype=float32, numpy=1.0>
大多数TensorFlow优化器都有专门的操作,可以根据一些类似梯度下降的算法有效地更新变量的值。看到tf keras优化优化器美元美元
以了解如何使用优化器。
还可以显式读取变量的当前值read_value
:
# # <特遣部队。变量'UnreadVariable' shape=() dtype=float32, numpy=1.0>
## tf.Tensor(1.0, shape=(), dtype=float32)
当最后引用到tf $变量
超出作用域时释放内存。