딥 학습 알고리즘 코드를 작성했습니다. 그러나 나는 데이터를로드하는 마지막 단계에 막혔다.TensorType (float32, matrix)을 TensorType (int32, matrix)으로 변환 할 때 오류가 발생했습니다.
self.x = T.imatrix("x")
self.y = T.ivector("y")
데이터를 고정하는 변수로 정의된다
그때 수행
train_x, train_y, train_lengths = dataUtils.read_and_sort_matlab_data(path+"train.txt",path+"train_lbl.txt")
validate_x, validate_y, validate_lengths = dataUtils.read_and_sort_matlab_data(path+"valid.txt",path+"valid_lbl.txt")
tested_x, tested_y, tested_lengths = dataUtils.read_and_sort_matlab_data(path+"test.txt",path+"test_lbl.txt")
여기
제가 train_y 형상으로 형 numpy.ndarray이다 변수의 타입을 확인했다 (2000 ,) 이고 train_y [0]의 유형이 'int32'입니다.
def shared(data_x,data_y):
shared_x = theano.shared(np.asarray(data_x, dtype=theano.config.floatX), borrow=True)
shared_y = theano.shared(np.asarray(data_y, dtype=theano.config.floatX), borrow=True)
return shared_x, T.cast(shared_y, "int32")
난 다음 코드
train_mb = theano.function(
[i], cost, updates=updates,
givens={
self.x:
training_x[i*self.document_length: (i+1)*self.document_length],
self.y:
training_y[i: (i+1)]
})
에서 에러가 다음과 같이
다음 I 공유 기능이 정의 theano 공유 변수training_x,training_y = shared(train_x,train_y)
validation_x,validation_y = shared(validate_x,validate_y)
test_x,test_y = shared(tested_x,tested_y)
에 데이터를 넣을 줄에
training_y[i: (i+1)]
그리고 오류가
형식 오류입니다 : 유형 TensorType에 (INT32, 매트릭스) 형식 TensorType (float32, 매트릭스) (0. 변수 Subtensor의 {: INT64 INT64을})로 변환 할 수 없습니다. Subtensor {int64 : int64 :} .0을 수동으로 TensorType (int32, matrix)으로 변환 할 수 있습니다.
shared_y 변수를 이미 캐스팅 한 경우 float32가 도입되는 위치를 알 수 있습니까? 그리고이 오류를 수정하는 방법. 또한 왜 train_y가 제안 된 벡터 인 경우 error 문에 행렬이 있습니까?