Python 批量大小作为重量的尺寸

Python 批量大小作为重量的尺寸,python,python-3.x,tensorflow,neural-network,Python,Python 3.x,Tensorflow,Neural Network,在阅读TensorFlow的教程时,我遇到了几个例子,其中权重定义为一个大小[批量大小,…] 示例: -虽然有点过时 据我所知,当使用迷你批次时,您可以向网络提供迷你批次中的所有示例。所有这些示例都将使用相同的权重进行变换。在基于(例如)单个梯度的平均值处理最后一个示例之后,将更新权重 我的假设是,通过减少运算量,使用扩展张量(通过批量大小维度放大)来加快计算速度 问:它是否只是创建了批量大小权重的副本,这些副本在最后进行平均,以形成下一个小批量的状态?(这也将使可变批量大小变得简单。

在阅读TensorFlow的教程时,我遇到了几个例子,其中权重定义为一个大小[批量大小,…]

示例:

  • -虽然有点过时
据我所知,当使用迷你批次时,您可以向网络提供迷你批次中的所有示例。所有这些示例都将使用相同的权重进行变换。在基于(例如)单个梯度的平均值处理最后一个示例之后,将更新权重

我的假设是,通过减少运算量,使用扩展张量(通过批量大小维度放大)来加快计算速度

问:它是否只是创建了
批量大小
权重的副本,这些副本在最后进行平均,以形成下一个小批量的状态?
(这也将使可变批量大小变得简单。)


如果是这样,如何将权重初始化为平均值
mu
和标准偏差
sd
的随机非零值?我是否用随机值手动创建[input_size,hidden_size],然后通过复制[code>batch_size时间来创建张量,从而生成[batch_size,input_size,hidden_size]形状?

您看到的是
重复单元格的初始单元格状态。请注意,循环单元有一个内部单元状态,该状态在每次调用时更新,然后在最后一次调用后作为输出取出。您可以将其视为香草神经网络中某个层的输出,但您需要为该层的更新准备一些值

因此,当您第一次调用循环单元格时,需要为这些单元格状态设置种子,这意味着您需要提供一些占位符值。现在,如您所见,此状态对于每个输入都是唯一的,因此您需要为每个输入为这些单元格设置种子。在这里,在您的示例中,您正在对单元格状态和输出进行种子设定

如下图所示,我们需要提供一个单元格状态和一个输出状态,在调用时更新,这就是为什么需要为两个值设置种子。


你所说的重量实际上是共享的。在上图中,它们对应于多个门(i、f、o),也用于输入x,就像在神经层中一样。您可以在中阅读有关LSTM的更多信息。

哦,我现在看到了。我把重量和状态弄糊涂了。既然你指出了,我明白了。
hidden_state = tf.zeros([batch_size, lstm.state_size])
current_state = tf.zeros([batch_size, lstm.state_size])
initializer=(tf.zeros([batch_size, state_size]), init_state))