データはNHWC:100 x 64 x 64 x 3
の形式です。私はラプラシアンフィルタを各チャンネルに別々に適用したいと思う。出力を100 x 64 x 64 x 3
としたい。フィーチャマップごとに個別に畳み込みを行う方法
k = tf.reshape(tf.constant([[0, -1, 0], [-1, 4, -1], [0, -1, 0]], tf.float32), [3, 3, 1, 1])
これを試しましたが、これは寸法の誤差をスローします。入力として3つのチャンネルが必要です。 出力= tf.abs(tf.nn.conv2d(入力、K、ストライド= [1、1、1、1]、パディング= 'SAME'))
Iはk = tf.reshape(tf.constant([[0, -1, 0], [-1, 4, -1], [0, 1, 0]]*3, tf.float32), [3, 3, 3, 1])
修飾が、これは単に1つの特徴を出力します地図100 x 64 x 64 x 1
。 `
tf.nn.depthwise_conv2d
を使ってみましたが、同じエラーが発生しました。どのように実際に実装するのですか?
output = tf.abs(tf.nn.depthwise_conv2d(input, k, strides=[1, 1, 1, 1], padding='SAME'))