2017-12-18 17 views
1

Tensorflow's Estimatorを使用して、LSTMネットワークを使用したトレーニングを簡略化したいと考えています。どうやら、tensorflowの見積もりを使用するために、人はそうのようなモデル関数を定義する必要があります。画像を受け入れるLSTMのTensorflow Estimatorの使用

def some_model_fn(features, labels, mode): 
    ... 

私は入力とラベルを取得するために、プレースホルダを使用して問題はありません。 [batch_size、num_time_steps、num_features]であるテンソルフローlstmsで受け入れられる形状にイメージを変換するにはどうすればよいですか?

+0

独自のレイヤー(畳み込み/ lstmのような)を実装していない限り、イメージをLSTMに供給する前に、イメージを平坦化する必要があります。これは 'np.flatten()'で行うことができます。 'num_time_steps'では、LSTMに後続の画像(ローリングウインドウのような)を送る必要があります。次の画像を予測するのに役立つ連続画像を処理していない場合は、畳み込みネットワークを使用するか、画像の平坦化戦略を適用する方がよい場合があります(たとえば、LSTMなどのピクセルの行または列をシーケンスなどに送ります)。 – umutto

+0

タスクは、手書きの認識であり、私は垂直のストリップでイメージを供給しています。私は最初にイメージを読んだ後、これを転置してこれを行います。 –

答えて

0

多次元配列に画像を読み込むためにnumpyを使うことをお勧めします。これは、画像のサイズと時間ステップの数に応じてかなりのメモリを必要とします。

+0

私は何を求めているのですか?イメージディメンションをrnnディムに縮小しなければならないのですか、それともイメージが読み込まれたときにイメージを供給するのですか? –

+0

はい、サイズを変更する必要があります。イメージのサイズを変更するには、cv2.resizeまたはscipy.misc.imresizeを使用します。ネットワークへのフィーチャが1次元ベクトルとして入力されている場合は、サイズ変更後に画像を平坦化することができます。 – Totoro

関連する問題