import numpy as np
import tensorflow as tf
X_node = tf.placeholder('float',[1,10,1])
filter_tf = tf.Variable( tf.truncated_normal([3,1,1],stddev=0.1) )
Xconv_tf_tensor = tf.nn.conv1d(X_node, filter_tf,1,'SAME')
X = np.random.normal(0,1,[1,10,1])
with tf.Session() as sess:
tf.global_variables_initializer().run()
feed_dict = {X_node: X}
filter_np = filter_tf.eval()
Xconv_tf = sess.run(Xconv_tf_tensor,feed_dict)
Xconv_np = np.convolve(X[0,:,0],filter_np[:,0,0],'SAME')
我正在尝试查看Tensorflow卷积的结果,以检查它是否按照我的意图执行。当我运行numpy卷积并将其与Tensorflow卷积进行比较时,答案不同。上面的代码是我运行测试的方法。我希望
Xconv_tf
和Xconv_np
相等。我的最终目标是在具有1维过滤器的矩阵上运行2D卷积,该过滤器对每行使用相同的1d卷积。为了使这个工作正常(基本上是一系列对行进行1d卷积的循环),我需要弄清楚为什么我的
np.convolve
和tf.conv1d
给出了不同的答案。