500
2
부
신경망과 딥러닝
3.
함수에서 텐서플로 변수 (또는 데이터셋이나 큐와 같은 상태가 있는 다른 텐서플로 객체 )
를 만든다면 처음 호출될 때만 수행되어야 합니다. 아니면 예외가 발생합니다. 일반적
으로 텐서플로 함수밖에서 변수를 생성하는 것이 좋습니다(예를 들면 사용자 정의 층의
build
()
메서드 ). 변수에 새로운 값을 할당하려면
=
연산자 대신에
assign
()
메서드를
사용하세요.
4.
파이썬 함수의 소스 코드는 텐서플로에서 사용 가능해야 합니다. 만약 소스 코드를 사용
할 수 없다면 (예를 들어, 소스 코드에 접근할 수 없는 파이썬 셸에서 함수를 정의하거나
컴파일된
*.
pyc
파이썬 파일을 상용 환경에 배포한다면 ) 그래프 생성 과정이 실패하거
나 일부 기능을 사용할 수 없을 것입니다.
5.
텐서플로는 텐서나 데이터셋을 순회하는
for
문만 감지합니다. 따라서
for
i
in
range
(
x
)
대신
for
i
in
tf
.
range
(
x
)
를 사용해야 합니다. 그렇지 않으면 이 반복문
이 그래프에 표현되지 못할 것입니다. 대신 트레이싱 단계에서 실행됩니다 (일부러 이런
for
문을 사용해 그래프를 만들 수 있습니다. 예를 들면 신경망의 층을 반복문으로 만듭
니다 ).
6.
성능면에서는 반복문보다 가능한 한 벡터화된 구현을 사용하는 것이 좋습니다.
이제 정리할 시간입니다! 텐서플로를 간단히 소개하는 것으로 이 장을 시작했고 텐서, 연산, 변
수, 특별한 데이터 구조를 포함하여 텐서플로의 고수준
API
를 살펴보았습니다. 이런 ...