2013-07-03 3 views
34

theano TensorVariable의 수치는 어떻게 출력합니까? 나는 theano에 새로 왔어. 그러므로 참을성있게 기다려라.theano - TensorVariable의 프린트 값

나는 y을 매개 변수로 받는다. 이제이 y의 모양을 디버그하여 콘솔에 인쇄하고 싶습니다. 내가 (예를 들어, 다음 코드의 수치 결과를 인쇄 할 수있는 방법을

Shape.0 

또는이 얼마나 많은 계산 : (내가 즉, (2,4,4)을 숫자를 기다리고 있었다) 콘솔 출력

print y.shape 

결과를 사용 y의 값)의 절반 최대 값보다 더 큰 :

errorCount = T.sum(T.gt(T.abs_(y),T.max(y)/2.0)) 

errorCount는 하나의 숫자 때문에해야 T.sum은 모든 값을 요약합니다.

Y는 theano 변수 인 경우
Sum.0 
+0

워드 프로세서 - [ "함수/메소드에서 중간 값을 인쇄하려면 어떻게합니까?"] (http://deeplearning.net/software/theano/tutorial/debug_faq.html#how-do-i-print-an-intermediatevalue-in -a-function-method) –

답변

37

, y.shape가있을 것 theano 변수 : 그러나

print errCount 

를 사용하여 나 (예상 134 같은)를 제공합니다. 당신이 표현 y.shape을 평가하려면

Shape.0 

, 당신이 할 수 있습니다 : 입력하지 할

y.shape.eval() 

y.shape 경우 계산 그래서

print y.shape 

반환하는 것이 정상입니다 자체 (공유 변수 및 상수에만 의존). yx Theano 변수에 따라 달라 그렇지 않으면, 당신은 다음과 같이 입력 값을 전달할 수 있습니다

y.shape.eval(x=numpy.random.rand(...)) 

이이 sum에 대한 같은 일이다. Theano 그래프는 theano.function으로 컴파 일하거나 eval()을 호출 할 때까지 계산을 수행하지 않는 심볼릭 변수입니다.

편집은 다음 docs, theano의 새로운 버전의 구문은 미래의 독자

y.shape.eval({x: numpy.random.rand(...)}) 
13

입니다 : 이전 대답은 매우 좋다. 하지만, 내가 디버깅 목적으로 더 유익한 'tag.test_value'메커니즘 (theano-debug-faq 참조) 발견 :

나를 위해
from theano import config 
from theano import tensor as T 
config.compute_test_value = 'raise' 
import numpy as np  
#define a variable, and use the 'tag.test_value' option: 
x = T.matrix('x') 
x.tag.test_value = np.random.randint(100,size=(5,5)) 

#define how y is dependent on x: 
y = x*x 

#define how some other value (here 'errorCount') depends on y: 
errorCount = T.sum(y) 

#print the tag.test_value result for debug purposes! 
errorCount.tag.test_value 

이 훨씬 더 유용을; 정확한 치수 등을 확인하는 것.

1

인쇄 텐서 변수의 값.

다음을 수행

print tensor[dimension].eval() #이 1 차원 텐서 들어 텐서

실시 예에서, 그 위치에있는 콘텐츠/값을 출력한다 :

print tensor[0].eval() 
+0

부분 응답, 맞습니까? – manetsus

관련 문제