TensorFlow中关于pad函数的详细理解
tensorflow
一个面向所有人的开源机器学习框架
项目地址:https://gitcode.com/gh_mirrors/te/tensorflow
免费下载资源
·
今天用到pad函数,看文档看了老半天,后面终于弄懂了。
以下是本人的理解总结
文档的内容:
# 't' is [[1, 2, 3], [4, 5, 6]].
# 'paddings' is [[1, 1,], [2, 2]].
# 'constant_values' is 0.
# rank of 't' is 2.
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]]
pad(t, paddings, "REFLECT") ==> [[6, 5, 4, 5, 6, 5, 4],
[3, 2, 1, 2, 3, 2, 1],
[6, 5, 4, 5, 6, 5, 4],
[3, 2, 1, 2, 3, 2, 1]]
pad(t, paddings, "SYMMETRIC") ==> [[2, 1, 1, 2, 3, 3, 2],
[2, 1, 1, 2, 3, 3, 2],
[5, 4, 4, 5, 6, 6, 5],
[5, 4, 4, 5, 6, 6, 5]]
思路理解:
tf.pad的使用,第一个是填充0,后面两个是复制前几行或者列
[1,1],[2,2]
[1,1]指的是向上扩充一行,向下扩充一行
[2,2]指的是向左扩充2列,向右扩充2列
1.CONSTANT模式,按上下左右填充几行或者几列的0
paddings=[[1,1],[2,2]]的意思是向上填充一行0,向下填充一行0,向左填充二行0,向右填充两行0
向上填充一行0,变成
0,0,0
1,2,3
4,5,6
向下填充一行0
0,0,0
1,2,3
4,5,6
0,0,0
向左填充二行0
0,0,0,0,0
0,0,1,2,3
0,0,4,5,6
0,0,0,0,0
向右填充两行0
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
2.REFLECT模式,首先要定好边缘(可理解为对称轴),按边缘翻(边缘不复制)
比如刚开始
1, 2, 3
4, 5, 6
向上翻一行,以123为对称轴
4,5,6
1,2,3
4,5,6
向下翻一行,以4,5,6为对称轴
4,5,6
1,2,3
4,5,6
1,2,3
以列4,1,4,1为对称轴,向左翻二行
6,5,4,5,6
3,2,1,2,3
6,5,4,5,6
3,2,1,2,3
以列6,3,6,3为对称轴,向右翻2行
6,5,4,5,6,5,4
3,2,1,2,3,2,1
6,5,4,5,6,5,4
3,2,1,2,3,2,1
3.SYMMETRIC类似的,唯一的区别是把边缘(也就是对称轴)也复制了,从对称轴开始复制
比如刚开始
1, 2, 3
4, 5, 6
向上翻一行,以123为对称轴,从对称轴开始复制
1,2,3
1,2,3
4,5,6
向下翻一行,以4,5,6为对称轴
1,2,3
1,2,3
4,5,6
4,5,6
以列1,1,4,4为对称轴,向左翻二行
2,1,1,2,3
2,1,1,2,3
5,4,4,5,6
5,4,4,5,6
以列3,3,6,6为对称轴,向右翻2行
2,1,1,2,3,3,2
2,1,1,2,3,3,2
5,4,4,5,6,6,5
5,4,4,5,6,6,5
GitHub 加速计划 / te / tensorflow
184.55 K
74.12 K
下载
一个面向所有人的开源机器学习框架
最近提交(Master分支:2 个月前 )
a49e66f2
PiperOrigin-RevId: 663726708
2 个月前
91dac11a
This test overrides disabled_backends, dropping the default
value in the process.
PiperOrigin-RevId: 663711155
2 个月前
更多推荐
已为社区贡献3条内容
所有评论(0)