아니오. 3 기본에서 최신 API (1/4)까지의 텐서 플로우

기술 스페셜

1_슬롯 커뮤니티 커뮤니티_keras1_tit

TIT_슬롯 커뮤니티 커뮤니티_KERAS

세 번째 할부에서는 Tensorflow의 기본 사항을 검토하고 최신 고급 API를 사용하여 딥 러닝을 구현하는 방법을 소개합니다.

기사에는 필요한 경우 Python 코드를 표시 할 수 있지만 Python의 기능 또는 구문은 설명하지 않습니다.
이 기사에 나열된 모든 코드가 포함되어 있습니다MIT 라이센스에 따라 허용됩니다.

Tensorflow, Tensorflow 로고 및 관련 마크는 Google Inc.의 상표입니다
이 기사의 Tensorflow 로고 이미지가 포함 된 다이어그램은CC-BY 3.0라이센스에 따라 라이센스가 부여 된 Tensorflow의 파생 상품.

1) Tensorflow Basics

Tensorflow는 Google에서 개발 한 OSS입니다.
때때로 "AI 라이브러리"또는 "딥 러닝 라이브러리"라고 불립니다.
창조물은 일반 목적 수치 슬롯 커뮤니티 플랫폼과 풍부한 기계 학습 및 딥 러닝 관련 기능으로 생각됩니다.

Tensorflow의 이름은 다차원 배열을 사용하여 표현할 수있는 데이터 구조를 나타내는 수학 용어입니다.
텐서 플로우를 사용할 때 텐서가 n 차원 어레이임을 이해하는 것이 충분합니다.

이 섹션에서는 텐서 플로우가 수치 계산 플랫폼으로 어떻게 작동하는지 소개합니다.
noh 쓰기는 괜찮으므로 딥 러닝을보고 싶습니다! 당신이 그 사람들 중 하나라면, 당신은 다음 섹션으로 건너 뛰고 싶을 것입니다.

install

먼저 Tensorflow를 사용해보십시오!
만 작업 해야하는 경우 하나의 PIP 명령만으로 설치할 수 있습니다.

$ PIP 설치 텐서 플로우

(GPU를 사용하려면 설치하려면Tensorflow-GPU이어야하며 추가 시스템 조건 및 절차가 필요합니다. 자세한 정보공식 사이트)

1 + 2 = 3

아래의 파이썬 스크립트에서는 텐서 플로에서 1 + 2 = 3을 계산합니다.

Tensorflow를 tf로 가져옵니다

"슬롯 커뮤니티 그래프 정의"섹션에서

  • 임의의 정수를 지정할 수 있습니다x
  • 고정 값은 22
  • X 및 Twox_plus_two

.tf.placeholder나중에 값을 지정할 변수를 정의합니다.tf.constant, 이름에서 알 수 있듯이 상수를 정의합니다.
이 모든 값텐서.
실제 값은 단일 숫자로 구성된 스칼라 값이지만 "0 차원 배열로 표현 된 값"으로 해석되면 텐서로 간주 될 수 있습니다.

다음, "실행 계산"섹션에서 x가 1 인 경우 x_plus_two가 취할 값을 계산합니다.
Tensorflow의 독특한 특징은 먼저 계산 흐름을 정의한 다음 계산하려는 값을 지정한다는 것입니다.

정상적으로 프로그래밍 할 때에도 먼저 클래스 나 기능을 정의 한 다음 주 처리를 구현하기 위해 사용해야한다고 생각합니다.
예를 들어, 위의 계산은 x가 인수이고 x_plus_two가 반환 값인 함수를 만드는 것과 유사합니다.
TensorFlow의 "슬롯 커뮤니티 흐름 정의"가 클래스 또는 기능 정의와 약간 다른 이유는 Tensorflow 슬롯 커뮤니티이 항상 세션 객체를 통해 수행되기 때문입니다.

세션이란 무엇입니까?

세션에는 두 가지 주요 기능이 있습니다.

  • 텐서 플로우 계산 수행
  • Tensorflow 슬롯 커뮤니티에서 다양한 상태를 보존합니다
슬롯 커뮤니티 실행 주제로 세션
uchideki_3_session_1

이 다이어그램은 2를 추가하는 슬롯 커뮤니티의 예를 개략적으로 보여줍니다.

  1. x_plus_two 값의 계산 요청
  2. x_plus_two가 x의 합계 및 2
  3. x의 내용이 1인지 확인하십시오.
  4. 1 + 2를 슬롯 커뮤니티하고 결과를 출력하여 3

를 제공합니다
X의 값이 지정되지 않은 경우 슬롯 커뮤니티 결과를 도출 할 수 없으므로 오류가 발생합니다.

상태를 유지하는 장치로서의 세션

아래 코드를 "다양한 상태를 유지"하기위한 예제로 사용한다고 생각하십시오.

Tensorflow를 tf로 가져옵니다

tf.variable세션에서 설정 값이 유지되고 후속 슬롯 커뮤니티에 사용되는 변수를 정의합니다.
x를 정의하는 데 사용되는 자리 표시 자 및 변수 둘 다 변수이지만 자리 표시 자 값이 매번 일회용이며 세션에 저장되지 않는다는 큰 차이가 있습니다.

2를 추가하는 슬롯 커뮤니티의 예에서 입력 값이 동일하면 출력 값이 동일하지만 이번에는 축적 된 입력 값이 상태로 유지되며 동일한 입력 값에 대해 다른 값이 출력됩니다.
아래 다이어그램은이 프로세스를 개략적으로 보여줍니다.

uchideki_3_session_2

누적 입력 값 Accum_var의 내용은 세션에 저장되며 값은 각 입력으로 업데이트됩니다.
TF.Assign첫 번째 인수에 지정된 변수가 두 번째 인수에 지정된 값으로 설정된 후 두 번째 인수의 값을 반환하는 프로세스입니다.

가변 및 기계 학습

Variable의 주요 용도는 딥 러닝 및 기타 기계 학습에서 모델의 매개 변수를 보존하는 것입니다.

예를 들어, 일련의 데이터 세트가 기계 학습이고 y = ax+b라는 선형 함수로 변환 될 때
x와 y의 다중 올바른 조합을 준비 하고이 모델의 매개 변수를 조정합니다.
구체적으로, Ax+B의 값은 x 값에서 슬롯 커뮤니티되며, Y의 값 사이의 오차는 슬롯 커뮤니티되고, 기울기 a와 intercept b의 값이 오차가 작도록 업데이트됩니다.
또한 학습이 완료되면 경사 A와 인터셉트 B의 값은 움직이지 않고 상수처럼 취급됩니다.

uchideki_3_session_3

이것과 달리, X와 달리, 어떤 값이 될지 항상 알 수 없음, 학습 모델의 매개 변수 a와 b는 "내가 배우면 변경하고 싶지만 학습을 끝내지 않더라도 그들을 지키지 않더라도 유지하기를 원합니다."
자연 의이 차이는 매번 일회용 자리 표시 자의 역할과 변경하지만 유지하는 변수에 반영됩니다.

변수 초기화

완전히 빈 상태에서 기계 학습을 시작하는 경우, 가변은 초기 값으로 남겨질 수 있지만, 훈련 된 모델을 사용하려고하거나 이미 중단 된 학습 프로세스를 재개하려면 파일에 저장된 모델의 내부 상태를 변수로 확장해야합니다.

두 경우 모두 새 세션을 작성하는 경우 먼저 변수를 초기화해야합니다.
위 코드에서 사용tf.global_variables_initializer ()빈 상태로 모든 변수를 초기화하는 프로세스입니다.

슬롯 커뮤니티 커뮤니티