有tensorflow.pad()的例子:
# 't' = is [[1, 2, 3], [4, 5, 6]]. # 'paddings' is [[1, 1,], [2, 2]]. # rank of 't' is 2. ' tf.pad(t, paddings, "CONSTANT")' ==> [[0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 2, 3, 0, 0], [0, 0, 4, 5, 6, 0, 0], [0, 0, 0, 0, 0, 0, 0]]
我的问题是如何在输入的每个维度中填充零?并且t的形状是[2,3],为什么pad()之后的输出是[4,x],'4'是怎么来的? 谢谢你的帮助!!!
答案 0 :(得分:5)
“ paddings”是[[1,1,],[2,2]]。尝试将此谷歌映射为[[top,bottom],[left,right]]。 即
top = 1, //Extra padding introduce on top
bottom = 1, //Extra padding introduce on bottom
left = 2, //Extra padding introduce on left
right = 2. //Extra padding introduce on right
尝试另一个示例,其中“填充”为[[2,1],[2,3]]。 输出将是:
[[0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0]
[0 0 1 2 3 0 0 0]
[0 0 4 5 6 0 0 0]
[0 0 0 0 0 0 0 0]]
此处top = 2,bottom = 1,left = 2,right = 3。
答案 1 :(得分:4)
文档非常明确。 对于输入的每个维度D,填充[D,0]表示在该维度中张量的内容之前要添加的值,填充[D,1]表示在内容之后要添加的值的数量在那个方面的张量。
为什么输出是[4,x]?
4是维度0的大小,维度0具有填充[1, 1]
,根据文档在 t 的零维度之前添加一个,并且在零维度的大小之后添加一个 t 是2, 2 + 1 + 1 ,结果中有4个。即它分别在t的开始和结束处填充一个零行。类似地,对于维度1,由于 padding [1] 是 [2,2] ,因此在开始和结束时将两个零列添加到 t 分别