tensorflowでtf.matmul
関数を用いた形状変換をしたいのですが、NumPyのようにブロードキャストが適用されず、どうしたらいいのかよくわかりません。
コードはcifar-10での畳み込み層に2つ前の層から合流するものを作るのですが、
その合流する際にフィルターの数が変わっている部分があり、そこの調整を行うために
tf.matmul
関数を使って形状変換を試みました。
num_filters = 16 num_filters = 32 h_pool9 = tf.placeholder(dtype=tf.float32, shape=[None, 12, 12, num_filters1]) W_extra = tf.Variable(tf.truncated_normal([num_filters1, num_filters2], stddev=0.05, dtype=dtype2), name='change_weights') b_extra = tf.Variable(tf.constant(0.1, shape=[num_filters2]), name='change_biases') h_pool9_for_11 = tf.matmul(h_pool9, W_extra) + b_extra
これを実行しようとするとエラーが生じます。
ValueError: Shape must be rank 2 but is rank 4 for 'MatMul_9' (op: 'MatMul') with input shapes: [?,12,12,16], [16,32].
最終的にh_pool9_for_11
で求めたい形状は[?, 12, 12, 32]
です。
これを行うためにはどうしたらいいのでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/11 12:19
2017/12/11 12:20
2017/12/11 12:38
2017/12/11 12:41
2017/12/11 12:41