关于理解tf.pad结果的正确方法

时间:2016-08-29 15:38:04

标签: tensorflow

在阅读tf.pad的文档时,我对本教程中给出的示例感到非常困惑。例如,填充为 // returns the html of the component return ( <div className="entryList"> <a onClick={this.onButtonClick} className="btn right">go</a> {entryList} </div> ); } }); ,它如何导致结果张量具有如图所示的形状。此外,生成那些填充值的机制是什么,例如,用红色圆圈标记的值。如何将解释与示例联系起来还不是很清楚。

enter image description here

3 个答案:

答案 0 :(得分:4)

同意该文件没有很好地解释该方法。如何,

对于pad(t, paddings, "CONSTANT");中的“填充”,让我们从维度0开始(即按行方式),例如,paddings[0,0]=1,表示在上方添加一行paddings[0,1]=1, 1}}表示在结尾添加一行

现在,考虑填充的尺寸1(列方式)。 paddings[1,0]=2,表示在开头添加两列paddings[1,1]=2,表示在结尾添加两列

我希望这有用。

答案 1 :(得分:1)

填充元组中的第一对是水平填充,第二对是垂直填充

反射填充似乎完全反映出好像你在填充之前的最后一个数字上放了一个镜子

输入:123

水平[2,2]的输出:32 123 21

横向

的逻辑相同

对称似乎做同样的事情,除了它还重复边界数

21 123 32

对角线(角点)将填充方案应用于垂直填充输出

反映在[1,1],[2,2]和输入:

MM

输出:

123
456

答案 2 :(得分:1)

让我们逐行阅读文档。

  

此操作根据您指定的填充填充张量(占位符或变量)。 paddings是一个整形张量,形状为[n,2](它必须是2,因为n指定的每个维度中只有两个方向),其中n是张量的等级(张量的维数)。

例如,此填充:[[1,2],[1,1],[2,2],[3,1]]表示张量的等级为4(4维)。

  

对于输入的每个维度D,填充[D,0]表示在该维度中张量的内容之前要添加的值,并且填充[D,1]表示在张量的内容之后要添加的值的数量那个维度。

按照上面的例子,对于0维我们先加1行,后加2行([1,2]); 1维我们前面加1列,后面加1列([1,1]);尺寸2,2前面2后面2([2,2]);最后一个维度,前面3个,后面1个([3,1])。

  

如果模式为“REFLECT”,则填充[D,0]和填充[D,1]必须不大于tensor.dim_size(D) - 1.如果mode为“SYMMETRIC”,则两个填充[D, 0]和填充[D,1]必须不大于tensor.dim_size(D)。

通过那里的例子,这条线是如此明显。