2016-05-16 3 views
1

Deeplearning4jでLSTMを理解しようとしています。私はこの例のソースコードを調べていますが、これを理解することはできません。Deeplearning4j LSTM例

 //Allocate space: 
    //Note the order here: 
    // dimension 0 = number of examples in minibatch 
    // dimension 1 = size of each vector (i.e., number of characters) 
    // dimension 2 = length of each time series/example 
    INDArray input = Nd4j.zeros(currMinibatchSize,validCharacters.length,exampleLength); 
    INDArray labels = Nd4j.zeros(currMinibatchSize,validCharacters.length,exampleLength); 

3Dアレイを保存する理由とはどういう意味ですか?

+0

コードを取得したサンプルファイルの名前は何ですか? –

+0

https://github.com/deeplearning4j/dl4j-0.4-examples/blob/master/src/main/java/org/deeplearning4j/examples/recurrent/character/CharacterIterator.java次の方法 – Nueral

+0

Nueralで 見て - ください。 GitterのDeeplearning4jコミュニティに参加して質問に答えます:https://gitter.im/deeplearning4j/deeplearning4j – tremstat

答えて

1

良い質問です。しかし、それはLSTMの機能とは無関係ですが、タスクそのものを扱っています。つまり、次のキャラクターは何かを予測することです。次のキャラクターの予測には、分類と近似という2つの側面があります。 近似のみを扱う場合、1次元配列のみを扱うことができます。しかし、近似と分類を同時に扱うと、文字の正規化されたASCII表現だけをニューラルネットワークに供給することはできません。各文字を配列に変換する必要があります。例えば

(ない資本)この方法で表現されます。

は1,0,0,0,0,0,0,0,0,0,0,0,0,0 、0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 、0,0,0,0,0,0,0,0,0,0

b(大文字ではない)は、 ,0,1,0,0,0,0,0,0 、0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 、0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 cは、

,0,0,1,0 、0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 、0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

Z(z capital !!!! )

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 、0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 、1

だから、各文字は私たちに2次元の配列を与えます。どのようにそれらの次元のすべてが建設されましたか?コードのコメントは、以下の説明があります

// dimension 0 = number of examples in minibatch 
    // dimension 1 = size of each vector (i.e., number of characters) 
    // dimension 2 = length of each time series/example 

私はsincerlyたいLSTMがどのように機能するかを理解する上であなたの努力を称賛していますが、指摘コードはNNのすべての種類に適用可能であり、テキストを操作する方法を説明します例を示しますニューラルネットワークのデータではありますが、LSTMの仕組みは説明されていません。ソースコードの別の部分を見る必要があります。

+0

@Nueral意味がありますか? –