2016-12-21 1 views
0

나는 Theano 라이브러리와 함께 일하고있다. 크기가 1000x114 인 변수로 정의 된 크기가 114 인 개체가 1000 개 있습니다. 그 변수를 사용하고 0과 113 사이의 1000 숫자를 생성하는 함수가 있습니다. 1000 개체의 각 하나, 이전 함수에서 주어진 위치에있는 숫자를 취하는 함수를 만들어야합니다. 어떻게해야합니까?Theano의 텐서에 액세스하는 기능

input_var = T.imatrix('inputs') 
index = something 
index_fn = theano.function([input_var], index, name="index function") 

이 작동하지 않는 것입니다 :

num = input_var[:][index + 48] 
num_fn = theano.function([input_var], num, name="num function") 

num_fn의 결과는 단순히 내가 입력으로 제공 동일한 데이터입니다

이 작동하는 것입니다.

답변

1

저는 +48이해야 할 일을 모르지만 index + 48이 함수가 반환 한 인덱스의 벡터라고 가정하고 있습니다. theano (및 numpy) 인덱싱 작업 방식은 :를 사용하는 두 번째 방법은 인덱스에 인덱스가있는 행을 반환한다는 것입니다. 대신 범위를 사용해야합니다 (예 :

num = input_var[T.arange(T.shape(input_var)[0]), index + 48] 
num_fn = theano.function([input_var], num, name="num function") 
).