conv1d:1次元フィーチャに関する2つの簡単な例: [2,1,3]によって畳み込まれた[2,1,3]、出力は[ 8. 11. 7. 9. 4.]、これが正しいです。しかし、2次元フィーチャの場合、「[[1,0,2,3,1,1,1]、[1,0,2,3,0,1,1]]」「[[2、 1、3]、[2、1、3]] "出力すべきである" [[8. 11. 7. 9. 4]、[簡単な例の問題
しかし、プログラムの出力:
[[ 2. 1. 3.]
[ 10. 5. 15.]
[ 2. 1. 3.]
[ 4. 2. 6.]
[ 4. 2. 6.]
[ 6. 3. 9.]
[ 4. 2. 6.]]
問題がありますか?すべてのヘルプは理解されるであろう。*
import tensorflow as tf
i = tf.constant([1, 0, 2, 3, 0, 1, 1], dtype=tf.float32, name='i')
print(i.shape)
ii = tf.constant([[1, 0, 2, 3, 0, 1, 1],[1, 0, 2, 3, 0, 1, 1]])
print(ii.shape)
k = tf.constant([2, 1, 3], dtype=tf.float32, name='k')
k2 = tf.constant([[2, 1, 3], [2, 1, 3]], dtype=tf.float32, name='k')
print(k2.shape)
data = tf.reshape(i, [1, int(i.shape[0]), 1], name='data')
data2 = tf.reshape(ii, [1, int(i.shape[0]), 2], name='data')
kernel = tf.reshape(k, [int(k.shape[0]), 1, 1], name='kernel')
kernel2 = tf.reshape(k2, [1, int(k2.shape[0]), 3], name='kernel')
print(kernel2)
res = tf.squeeze(tf.nn.conv1d(data, kernel, 1, 'VALID'))
res2 = tf.squeeze(tf.nn.conv1d(data2, kernel2, 1, 'VALID'))
with tf.Session() as sess:
print(sess.run(kernel2))
print sess.run(res)
print sess.run(res2)
特集:[[1、0、2、3、0をあなたが言及した結果を取得したい場合(FE [2,7,2])
はこのように、コードは、次のようにする必要があります、[1,1、]、[1,0,2,3,0,1,1]フィルター:[[2,1,3]、[2,1,3]] – void
'data2'の値を印刷してみてください。 。私はそれがあなたが期待しているものとは違うと思う。 – Sunreef