2017-01-26 6 views
3

ニューラルネットワークを作成しようとしています。しかし、私はトレーニング中にデータに何かをする必要があります。たとえば、5つの畳み込みレイヤーがあり、3番目のレイヤーの後に、出力の形状を変更し、その次元の1つにさらにデータを追加する必要があります。次に、操作されたデータは4番目の層に送られます。KerasまたはTensorflowを使用して深いニューラルネットワークのトレーニング中にデータを追加する方法

問題は、入力データのディメンションが固定されていないことです。トレーニングフェーズのデータ​​から取得する必要があります。形状を変更するとき、Tensorflowはを寸法に入れているので、常にエラーthe dimension must be specifiedを与えます。

この場合、この問題の解決策はありますか?あるいは、最初の部分がデータを操作し終わってから2番目の部分に進み、ネットワークを2つの部分に分けることができますか?

ありがとうございました!

更新:例えば 、第3層の出力は、Lが入力から導出される[1, 1, L, 5]、ある固定数ではありません。 v_1, v_2, ..., v_Lと定義すると、Lの各点のベクトルは、深さが5のもの、つまりshape(v_i)=[1, 5]の特徴となります。私はLが同じものである新形状[1, L, L, 12]、それを変更したい、と深さ寸法にデータがv_iv_jプラス2より新しいデータの連結からです。

+1

データの次元がどのように変化しているかについて、詳細を教えてください。 –

+0

@MarcinMożejko詳細については、アップデートをご覧ください。 –

+0

これは役に立ちますか? http://stackoverflow.com/questions/35374958/reshape-tensor-using-placeholder-value –

答えて

0

tf.shapeから入力ディメンションの形状のランタイム値を取得し、Noneの代わりにこれをtf.reshapeに渡すことができます。

関連する問題