Theano-계산 그래프
위의 두 가지 예에서 Theano에서 우리는 Theano를 사용하여 결국 평가되는 표현식을 생성한다는 것을 알 수 있습니다. function. Theano는 고급 최적화 기술을 사용하여 표현식 실행을 최적화합니다. 계산 그래프를 시각화하기 위해 Theano는printing 라이브러리의 패키지.
스칼라 덧셈에 대한 기호 그래프
스칼라 추가 프로그램의 계산 그래프를 보려면 다음과 같이 인쇄 라이브러리를 사용하십시오.
theano.printing.pydotprint(f, outfile="scalar_addition.png", var_with_name_simple=True)
이 문을 실행하면 scalar_addition.png컴퓨터에 생성됩니다. 빠른 참조를 위해 저장된 계산 그래프가 여기에 표시됩니다.
위의 이미지를 생성하는 전체 프로그램 목록은 다음과 같습니다.
from theano import *
a = tensor.dscalar()
b = tensor.dscalar()
c = a + b
f = theano.function([a,b], c)
theano.printing.pydotprint(f, outfile="scalar_addition.png", var_with_name_simple=True)
행렬 승수에 대한 기호 그래프
이제 행렬 승수에 대한 계산 그래프를 만들어보십시오. 이 그래프를 생성하기위한 전체 목록은 다음과 같습니다.
from theano import *
a = tensor.dmatrix()
b = tensor.dmatrix()
c = tensor.dot(a,b)
f = theano.function([a,b], c)
theano.printing.pydotprint(f, outfile="matrix_dot_product.png", var_with_name_simple=True)
생성 된 그래프는 다음과 같습니다.
복잡한 그래프
더 큰 표현에서는 계산 그래프가 매우 복잡 할 수 있습니다. Theano 문서에서 가져온 그래프 중 하나가 여기에 표시됩니다.
Theano의 작동 방식을 이해하려면 먼저 이러한 계산 그래프의 중요성을 아는 것이 중요합니다. 이러한 이해를 바탕으로 Theano의 중요성을 알게 될 것입니다.
왜 Theano입니까?
계산 그래프의 복잡성을 살펴보면 이제 Theano 개발의 목적을 이해할 수 있습니다. 일반적인 컴파일러는 전체 계산을 단일 단위로 보지 않기 때문에 프로그램에서 로컬 최적화를 제공합니다.
Theano는 전체 계산 그래프를 최적화하기 위해 매우 고급 최적화 기술을 구현합니다. 그것은 대수학의 측면과 최적화 컴파일러의 측면을 결합합니다. 그래프의 일부는 C 언어 코드로 컴파일 될 수 있습니다. 반복 계산의 경우 평가 속도가 중요하며 Theano는 매우 효율적인 코드를 생성하여이 목적을 충족합니다.