どのようにすればいいのですか異なる空間空間の2つのレイヤーを組み合わせるTensorflow例えばテンソルフローの多レベルフィーチャ融合
::
batch_size = 3
input1 = tf.ones([batch_size, 32, 32, 3], tf.float32)
input2 = tf.ones([batch_size, 16, 16, 3], tf.float32)
filt1 = tf.constant(0.1, shape = [3,3,3,64])
filt1_1 = tf.constant(0.1, shape = [1,1,64,64])
filt2 = tf.constant(0.1, shape = [3,3,3,128])
filt2_2 = tf.constant(0.1, shape = [1,1,128,128])
#first layer
conv1 = tf.nn.conv2d(input1, filt1, [1,2,2,1], "SAME")
pool1 = tf.nn.max_pool(conv1, [1,2,2,1],[1,2,2,1], "SAME")
conv1_1 = tf.nn.conv2d(pool1, filt1_1, [1,2,2,1], "SAME")
deconv1 = tf.nn.conv2d_transpose(conv1_1, filt1_1, pool1.get_shape().as_list(), [1,2,2,1], "SAME")
#seconda Layer
conv2 = tf.nn.conv2d(input2, filt2, [1,2,2,1], "SAME")
pool2 = tf.nn.max_pool(conv2, [1,2,2,1],[1,2,2,1], "SAME")
conv2_2 = tf.nn.conv2d(pool2, filt2_2, [1,2,2,1], "SAME")
deconv2 = tf.nn.conv2d_transpose(conv2_2, filt2_2, pool2.get_shape().as_list(), [1,2,2,1], "SAME")
deconv1形状 [3、8、8、64]であり、deconv2形状 [3、4、4、128]です。ここではtf.concatを使用してdeconv1とdeconv2を組み合わせることはできません。だから私はこれをどのようにすることができますか?
編集
これは私が実装しようとしたアーキテクチャのイメージです::それは、この用紙にreleatedさ::
VII。 He、W.、Zhang、X.Y.、Yin、F.、& Liu、C.L.(2017)。ディープ・ダイレクト マルチ・オリエンテッド・シーン・テキスト検出のための回帰。 arXivのプレプリント arXivの:1703.08289
最初の答えはTensorflow APIをベースにしているので、この連結操作はできません。連結は軸(すなわち、軸1上のtf.concat([t3、t4]、1)上で行うことができるので、他の軸は同じ形状でなければならない。なぜあなたがこのコンカットをしたいのか教えてください、あなたの目的は何ですか? –
私はオブジェクトの検出をしようとします。このアプローチでは、いくつかの畳み込みレイヤーをプールレイヤー(各コンバージョンレイヤーにプールレイヤーを直接追従させたもの)で使用しました。デコンボリューションレイヤー(UpSample)を使用し、各デコンボリューションレイヤーは異なるプールレイヤーを取ります。たとえば、deconv1はプール1を入力としています。私の問題は次のステップです:どのようにこれらのデコンボリューションレイヤを結合(融合)できますか? – CCCC
あなたはそれを行うことはできません、あなたは異なるプールリング層に起因する異なる形の2つの行列を連結することはできません。質問を編集して使用するアーキテクチャを投稿するには、最終的な答えを書いて、このようなボトルネックパイプラインアーキテクチャを使用する方法を指摘します。https://arxiv.org/pdf/1701.03056.pdf –