tf.nn.conv1d 使用问题

a =tf.Variable(np.random.rand(10,128,),dtype=np.float32)
a0 = tf.reshape(a,[-1,128,1])
W2 = tf.Variable(np.random.rand(6,1,100),dtype=np.float32)
zz = tf.nn.conv1d(a0,W2,stride=2,padding='SAME')
sess.run(tf.global_variables_initializer())
b = sess.run(zz)

print(b.shape)

结果:

(10, 64, 100)

按道理应该是 (10, 128, 100)才对,搞不明白。

不知道有没有遇到这个问题的小伙伴。

问题结果:

一维卷积中padding='SAME'只在输入的末尾填充0.

a = tf.constant([1,2,3,4,5],dtype=np.float16)
a = tf.reshape(a,[-1,5,1])
b = tf.constant([1,2],dtype=np.float16)
b = tf.reshape(b,[2,1,1])

c = tf.nn.conv1d(a,b,stride=2,padding='SAME')
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(sess.run(c))

结果:[[[ 5.] [11.] [ 5.]]]

a = tf.constant([1,2,3,4,5],dtype=np.float16)
a = tf.reshape(a,[-1,5,1])
b = tf.constant([1,2],dtype=np.float16)
b = tf.reshape(b,[2,1,1])

c = tf.nn.conv1d(a,b,stride=2,padding='VALID')
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(sess.run(c))

结果: [[[ 5.] [11.]]]

 

你可能感兴趣的:(tensorflow)