如何使用边缘值填充张量(尺寸为 WxHxC)?
例如:
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
变成:
[1, 1, 2, 3, 3]
[1, 1, 2, 3, 3]
[4, 4, 5, 6, 6]
[7, 7, 8, 9, 9]
[7, 7, 8, 9, 9]
使用tf.pad()
和模式“对称” - 它会反映边缘上的值,但如果你只做 1 个深度填充,它相当于重复边缘值。如果您需要更多填充,则必须重复该操作,但您可以按指数方式进行(首先是 1,然后是 2,然后是 4,等等)。此代码(已测试):
import tensorflow as tf
a = tf.reshape( tf.constant( range( 1, 10 ) ), ( 3, 3 ) )
b = tf.pad( a, [ [ 1, 1 ], [ 1, 1 ] ], "SYMMETRIC" )
with tf.Session() as sess:
print( sess.run( b ) )
输出:
[[1 1 2 3 3]
[1 1 2 3 3]
[4 4 5 6 6]
[7 7 8 9 9]
[7 7 8 9 9]]
如预期的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句