这段代码在文件中的方法zero_state
中到底做了什么?我不完全确定表格的形状意味着什么......RNNCell
rnn_cell.py
[-1, n]
3 回答
reshape 的语义类似于 numpy 的语义:http: //docs.scipy.org/doc/numpy/reference/generated/numpy.reshape.html
它将张量更改为具有二维,并且第二维应该具有 self.state_size 元素。例如,如果我的张量有 6 个元素并且我将其重塑为 [-1, 2],那么第一个维度将有 6 / 2 = 3 个元素。
拉法尔的例子很棒。我记得 -1 的方式是,它将该维度的大小设置为适合原始张量中的所有数据所需的大小。重塑中只能有一个 -1。
如果原始张量的大小为 a、b、c(总元素 = a b c)并且您将其调整为 x、y、-1,
那么效果将是 -1 最终将成为 a b c/(y*z)。
一个 3,3,3 张量(27 个元素)重新整形为 9,3,-1 的大小实际上是 9,3,1(27 个元素)
文档含糊地暗示了 -1 的行为。
如果 shape 是特殊值 [-1],则张量被展平,并且操作输出一个包含所有张量元素的一维张量。
当形状是一个数组时,其中一个元素是 -1,这个值只是一个方便的占位符,用于一些可能产生相同形状的整数。请注意,可能没有这样的整数(例如,如果您的起始矩阵是[5x5]
您不能用 重塑它[7, -1]
)。
同样如您所见,不能有两个 -1,因为这会使形状模棱两可。如前所述,该行为类似于numpy 的 reshape。