2016-07-08 4 views
1

나는 감정에 따라 영화 리뷰를 분류하는 데 4e를 구현하는 예제를 검토 중입니다. 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() 호출은 여기에서 무엇을합니까?

기능의 배열을 구축하는 것은 더 많거나 적은이 일어나고 내가 라벨 마스크에 의해 완전히 혼란이 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()은 표시기입니다 (이 전체 치수 사용). nd4j 사용자 안내서를 참조하십시오. http://nd4j.org/userguide

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'벡터를 피쳐에 배치합니다.