2016-07-08 12 views
1

私は、感想に応じてムービーレビューを分類するためのディエプルプレーニング4jの例を見ています。 ReviewExampleDeeplearning4j:レビューセンチメント分析用のLSTMの例

ライン124から142で、N次元配列は、これらの行で何が起こっているかを作成したと私は種類がわからないよされています

ライン132:

features.put(new INDArrayIndex[]{NDArrayIndex.point(i), 
NDArrayIndex.all(), NDArrayIndex.point(j)}, vector); 

私ができる画像.point(x)こと.point(j)は配列内のセルをアドレス指定しますが、NDArrayIndex.all()コールは正確にここで何をしますか?

機能の配列を構築することが何が起こっているか、多かれ少なかれOKです私はラベルのマスクで完全に混乱している間、これlastIdx変数

ライン138から142

  int idx = (positive[i] ? 0 : 1); 
      int lastIdx = Math.min(tokens.size(),maxLength); 
      labels.putScalar(new int[]{i,idx,lastIdx-1},1.0); //Set label: [0,1] for negative, [1,0] for positive 
      labelsMask.putScalar(new int[]{i,lastIdx-1},1.0); //Specify that an output exists at the final time step for this example 

ラベル配列自体はありますi, idxによって対処されます。列/行は1.0に設定されていますが、このタイムステップの情報がどのように収まるかは実際にはわかりません。これは、最後のパラメータが最後のエントリをマークしなければならないことは従来のことですか?

なぜlabelsMaskはiだけを使用し、i, idxを使用しないのですか?私の質問

答えて

0

それは次元あたりのインデックスだのいくつかを明確にするために役立つ説明やポインタのため

感謝。 All()はインジケータです(このディメンション全体を使用します)。http://nd4j.org/userguide

1については、1はラベルのクラスを意味します。これはテキスト分類の問題です:テキストと単語のベクトルからウィンドウを取り出し、それからクラスを予測させます。

ラベルマスクについて:神経網の予測は、シーケンスの最後に起こります。参照してください: http://deeplearning4j.org/usingrnns

0

テストを書くと、あなたはそれを知っているでしょう。

ヴァル機能= Nd4j.zeros(2、2、3) ヴァルtoPut = Nd4j.ones(2) features.put(配列[INDArrayIndex(NDArrayIndex.point(0)、NDArrayIndex.all、NDArrayIndex。ポイント(1))、toPut)

結果は、 [[[0.00、1.00、0.00]、
[0.00、1.00、0.00]、

[0.00、0.00、0.00]であります
[0.00、0.00、0.00]]] 'toPut'ベクトルをフィーチャに配置します。

関連する問題