2

这段代码在文件中的方法zero_state中到底做了什么?我不完全确定表格的形状意味着什么......RNNCellrnn_cell.py[-1, n]

在此处输入图像描述

4

3 回答 3

4

reshape 的语义类似于 numpy 的语义:http: //docs.scipy.org/doc/numpy/reference/generated/numpy.reshape.html

它将张量更改为具有二维,并且第二维应该具有 self.state_size 元素。例如,如果我的张量有 6 个元素并且我将其重塑为 [-1, 2],那么第一个维度将有 6 / 2 = 3 个元素。

于 2015-11-11T04:17:20.873 回答
1

拉法尔的例子很棒。我记得 -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 个元素)

于 2015-11-11T04:39:49.930 回答
0

文档含糊地暗示了 -1 的行为。

如果 shape 是特殊值 [-1],则张量被展平,并且操作输出一个包含所有张量元素的一维张量。

当形状是一个数组时,其中一个元素是 -1,这个值只是一个方便的占位符,用于一些可能产生相同形状的整数。请注意,可能没有这样的整数(例如,如果您的起始矩阵是[5x5]您不能用 重塑它[7, -1])。

同样如您所见,不能有两个 -1,因为这会使形状模棱两可。如前所述,该行为类似于numpy 的 reshape

于 2015-11-11T06:00:44.640 回答