2014-11-09 5 views
0

Pylearn2에 의해 2 층 적층 CAE 모델을 교육하고 저장했습니다. 이 모델을로드하고 새로운 데이터 세트를 변형하고 싶습니다. 어떻게해야합니까?Pylearn2를 사용하여 교육 된 Autoencoder로 어떻게 소설 데이터를 변환 할 수 있습니까?

l1 = serial.load('CAE_l1.pkl') 
l2 = serial.load('CAE_l2.pkl') 
print l1 
<pylearn2.models.autoencoder.ContractiveAutoencoder object at 0x7f3bb6d482d0> 

내가이 뭔가를 시도했지만 작동하지 않습니다

이 내 모델입니다.

data = T.matrix('data') 
transform = theano.function([data], l1(data)) 

이것은 나는 그것의 정확성에 대해 최근 아니지만 확실히 할 것입니다 :

data = T.matrix('data') 
transform = theano.function([data], l1.encode(data)) 
X_1 = transform(X.astype(float32)) 

답변

2

쌓아 사용하는 방법, pretrained autoencoders을 표시하는 구성 파일의 pylearn2.scripts.autoencoder 디렉토리를 확인합니다. 미리 준비된 모델을 데이터 세트의 변형 객체로로드하여 모델의 다음 단계로 가져옵니다. 당신은 YAML 파일을 사용하지 않으려면

것은, 당신은 문자열을 할 수 있어야한다 (I 내 머리의 상단을 쓰고 있어요으로 검증되지 않은) 함께 올바른 방법을 사용하여 모델 기능 :

입력 T.vector =()

ENC l1.encode = (입력)

출력 = l2.encode (ENC)

theano.function F = ([입력] 오 utput)

real_transformation = F (real_data)

그리고 돌아갑니다, 당신은 ae_layer.decode() 방법과 동일한 기능을 수행 할 수 있습니다.

이러한 항목이 MLP의 레이어 인 경우 MLP에서 .fprop() 메서드를 호출하여 모든 레이어를 위쪽으로 통과시킬 수 있습니다.

+0

귀하의 솔루션이 올바른 것입니다. 또한 다중 입력 데이터를 일괄 처리하려면 T.matrix()로 T.vector()를 대체 할 수 있습니다. – mitch