2017-05-15 8 views
0

入力チャンネルごとに畳み込み演算を行うことは可能ですか?深さ2の入力チャンネルが2つあるため、フィルターを[2,2,1,1]と設定するとエラーになります。次に、2つの入力チャンネルで別々に畳み込みを実行するにはどうすればよいですか?入力チャンネルでコンボリューションを個別に実行する方法は?

input = tf.Variable(tf.random_normal([1,4,4,2])) 
filter = tf.Variable(tf.random_normal([2,2,2,1])) 
op = tf.nn.conv2d(input, filter, strides=[1, 2, 2, 1], padding='SAME') 
+0

'' tf.slice''はあなたの問題に有効ですか?例えば'' input_1 = tf.slice(入力、[0、0、0、0]、[1,4,4,1]) ''とし、 '' conv2d''を実行します。 – Seven

+0

はい、それは働いています。ありがとう –

+0

私はそれらを分割する場合、それはパラメータの数を変更しますか?私はそれらを分割して別々に畳み込みを行い、その後それらにどのような効果が出るのでしょうか? –

答えて

0

入力チャンネルで別々に畳み込みを実行するにはどうすればよいですか?

tf.nn.depthwise_conv2d

「が各入力チャンネル(各チャンネルをchannel_multiplierする1つのチャンネルから拡大)に異なるフィルタを適用し、その後、一緒に結果を連結します。」

関連する問題