Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tensorflow变量是必要的吗?_Python_Tensorflow - Fatal编程技术网

Python Tensorflow变量是必要的吗?

Python Tensorflow变量是必要的吗?,python,tensorflow,Python,Tensorflow,我非常理解Tensorflow中变量的概念(我想),但我仍然没有发现它们非常有用。我读到这篇文章的主要原因是对它们的使用感兴趣,是为了以后恢复它们,这在某些情况下可能很方便,但使用numpy.save保存矩阵和值,甚至将它们写入日志文件,也可以获得类似的结果 变量用于保存张量,但您可以使用Python变量来保存它们,从而避免使用Tensorflow的变量额外包装器 当使用get_变量函数时,变量变得很好,因为代码比使用字典存储权重要干净得多,但是,就功能而言,我不明白它们为什么重要 关于TF变量

我非常理解Tensorflow中变量的概念(我想),但我仍然没有发现它们非常有用。我读到这篇文章的主要原因是对它们的使用感兴趣,是为了以后恢复它们,这在某些情况下可能很方便,但使用numpy.save保存矩阵和值,甚至将它们写入日志文件,也可以获得类似的结果

变量用于保存张量,但您可以使用Python变量来保存它们,从而避免使用Tensorflow的变量额外包装器

当使用get_变量函数时,变量变得很好,因为代码比使用字典存储权重要干净得多,但是,就功能而言,我不明白它们为什么重要


关于TF变量,我的结论是它们帮助我们编写更好的代码,但它们不是必需的。有什么想法吗?

使用
tf.Variable
s的主要好处是,在训练神经网络时,不必明确说明要优化什么。从机器学习的角度来看,
变量
s是网络参数(或权重),在训练前具有一些初始值,但在训练过程中得到优化(损失梯度根据变量计算,并使用优化算法更新其变量)。(SGD算法的著名方程式
w=w-alpha*dL_dw

相反,
tf.constant
用于存储那些不需要梯度损失的网络参数。在训练期间,不会计算与常数相关的梯度损失,因此不会更新其值。为了向网络提供输入,我们使用
tf.placeholder

它们是必要的吗?是的。一个深层的神经网络在几十个变量中有数百万个参数,尽管一个人可以

  • 使用一些初始值定义张量(基于一些启发式,如Glorot初始化)
  • 计算每一个循环的损失梯度(可能使用
    for
    循环)
  • 根据某些优化算法(如SGD)更新其值
  • 特别注意不要留下任何一个

  • 一个聪明的人只会使用变量,让魔法发生。毕竟,更多杂乱的代码意味着更多出错的机会。

    使用变量的主要好处是你不必在训练神经网络时明确说明要优化什么。从机器学习的角度来看,
    变量
    s是网络参数(或权重),在训练前有一些初始值,但在训练过程中得到优化(损失梯度根据变量计算,并使用优化算法更新变量。(SGD算法的著名方程
    w=w-alpha*dL_dw

    相反,
    tf.constant
    用于存储那些不需要梯度损失的网络参数。在训练期间,不会计算与常数相关的梯度损失,因此不会更新其值。为了向网络提供输入,我们使用
    tf.placeholder

    它们是必要的吗?是的。一个深层的神经网络在几十个变量中有数百万个参数,尽管一个人可以

  • 使用一些初始值定义张量(基于一些启发式,如Glorot初始化)
  • 计算每一个循环的损失梯度(可能使用
    for
    循环)
  • 根据某些优化算法(如SGD)更新其值
  • 特别注意不要留下任何一个

  • 聪明的人只会使用变量,让神奇的事情发生。毕竟,更多杂乱的代码意味着更多出错的机会。

    你不能用变量解决优化任务你不能用变量解决优化任务