TensorFlow 시작하기(노트)

4218 단어
이 편에서는 TensorFlow 기본 개념에 대해 설명합니다.세 번째 절에서는 TensorFlow의 계산 모델, 데이터 모델과 운행 모델을 소개한다.마지막 절에서는 신경 네트워크의 주요 계산 절차와 TensorFlow를 통해 어떻게 이런 계산을 실현하는지 간단하게 소개했다.
1 TensorFlow 계산 모델 - 계산도 계산도는 TensorFlow에서 가장 기본적인 개념으로 TensorFlow의 모든 계산은 계산도의 노드로 전환된다.두 노드 사이의 변은 계산 간의 의존 관계를 묘사했다.TensorFlow 프로그램은 두 단계로 나뉘는데 그것이 바로 계산도에 있는 모든 계산을 정의하고 계산을 실행하는 것이다.TensorFlow는 자동으로 정의된 계산을 계산도에 있는 노드로 바꿉니다.프로그램에서 시스템은 tf를 통해 기본 계산도를 자동으로 유지합니다.get_default_graph 함수는 현재 기본 계산도를 가져올 수 있습니다.예: print(a.graph is tf.get default graph()).기본 계산도를 사용하는 것 외에 TensorFlow는 tf를 통해 지원합니다.Graph 함수는 새로운 계산도를 생성하는데, 서로 다른 계산도의 장량과 연산은 공유되지 않는다.예: import tensorflow as tf g1 = tf.Graph() with g1.as_default(): ...
     g2 = tf.Graph()
     with g2.as_default():
          ...
  TensorFlow                  ,              。       tf.Graph.device           。  TensorFlow  GPU     。

예: g = tf.Graph () with g.device ('/gpu: 0'):result = a + b TensorFlow 프로그램의 자원을 효과적으로 정리하는 것도 계산도의 중요한 기능입니다.하나의 계산도에서 집합을 통해 서로 다른 종류의 자원을 관리할 수 있다.tf를 통과하면add_to_collection 함수는 자원을 하나 이상의 집합에 넣고 tf를 통과할 수 있습니다.get_collection은 집합 안의 모든 자원을 가져옵니다.이곳의 자원은 장량, 변수,TensorFlow 프로그램을 실행하는 데 필요한 대기열 자원일 수 있습니다.
2 TensorFlow 데이터 모델 - 장량 장량은 TensorFlow가 데이터를 관리하는 형식으로 모든 데이터는 장량의 형식으로 표시된다.기능의 측면에서 볼 때 장량은 다차원 그룹으로 간단하게 이해할 수 있다.그 중에서 0 단계 장량은 표량, 즉 하나의 수를 나타낸다.1 단계 장량은 벡터, 즉 1차원 수조이다.n 단계 장량은 n차원 그룹으로 이해할 수 있다.그러나 장량이 TensorFlow에서의 실현은 수조의 형식을 직접 채택한 것이 아니라 TensorFlow에서 연산한 결과에 대한 인용일 뿐이다.장량에 진정으로 숫자를 저장하지 않고 어떻게 이 숫자들을 얻을 수 있는지 계산하는 과정을 저장한다.예:result = tf.add(a,b,name='add') print(result) ... 출력:Tensor("add:0",shape=(2,),dtype=float32) 한 장에 이름, 차원, 유형 세 가지 속성이 저장되어 있습니다.장량의 사용은 주로 두 가지로 나눌 수 있다. 첫째, 첫 번째 용도는 중간 계산 결과에 대한 인용이다.2. 계산도 구조가 완성된 후에 장량은 계산 결과를 얻을 수 있다. 즉, 실제 숫자를 얻을 수 있다(세션을 통해session).
3 TensorFlow 실행 모델 - 세션 세션은 TensorFlow 프로그램이 실행될 때의 모든 자원을 가지고 관리합니다.모든 계산이 끝난 후에 자원 유출을 피하기 위해 세션을 닫아야 합니다.TensorFlow에서 세션을 사용하는 모드는 두 가지가 있습니다. 세션 생성 함수를 명확하게 호출하고 세션 함수를 닫으며, Python의 상하문 관리자를 통해 세션을 사용합니다.with tf.Session() as sess: sess.run(...) 파이썬 상하문 관리자 메커니즘을 통해 모든 계산을 'with' 내부에 두면 됩니다.상하문 관리자가 종료될 때 모든 자원을 자동으로 방출합니다.대화식 환경(예를 들어 Python 스크립트나 Jupyter 편집기)에서 기본 세션을 설정하는 방식으로 장량의 값을 얻는 것이 더욱 편리하다.TensorFlow는 상호작용 환경에서 기본 세션을 직접 구축하는 함수를 제공합니다: tf.InteractiveSession.이 함수를 사용하면 생성된 세션이 자동으로 기본 세션으로 등록됩니다.예: sess = tf.InteractiveSession() print(result.eval()) sess.close () 는 tf를 통과합니다.InteractiveSession 함수는 생성된 세션을 기본 세션으로 등록하는 프로세스를 생략합니다.ConfigProto Protocol Buffer를 사용하여 생성할 세션을 구성할 수 있습니다.예: config = tf.ConfigProto(allow_soft_placement=True) sess1 = tf.IntreactiveSession(config=config) sess2 = tf.세션(config=config)은 ConfigProto를 통해 유사한 병렬 스레드 수, GPU 분배 정책, 연산 시간 초과 등 파라미터를 설정할 수 있습니다.
4 TensorFlow 신경 네트워크 구현TensorFlow 놀이터(http://playground.tensorflow.org) 웹 브라우저를 통해 훈련할 수 있는 간단한 신경 네트워크로 시각화된 훈련 과정을 실현하는 도구다.신경 네트워크를 사용하여 분류 문제를 해결하는 4단계: 1. 문제에서 실체의 특징 벡터를 추출하여 신경 네트워크의 입력으로 한다.2. 신경 네트워크의 구조를 정의하고 신경 네트워크의 입력에서 출력을 어떻게 얻는지 정의한다.이 과정이 바로 신경 네트워크의 전방향 전파 알고리즘이다.3. 훈련 데이터를 통해 신경 네트워크의 매개 변수의 수치를 조정하는데 이것이 바로 신경 네트워크를 훈련하는 과정이다.4. 훈련된 신경 네트워크를 사용하여 미지의 데이터를 예측한다.전방향 전파 알고리즘.컴퓨터 네트워크의 전방향 전파 결과는 세 부분의 정보를 필요로 한다. 그것이 바로 신경 네트워크의 입력, 즉 실체에서 추출한 특징 벡터이다.신경 네트워크의 연결 구조, 신경 네트워크는 신경원으로 구성되고 신경 네트워크의 구조는 서로 다른 신경원 간의 입력과 출력의 연결 관계를 나타낸다.신경원 중의 매개 변수.전방향 전파 알고리즘은 행렬 곱셈을 통해 표현할 수 있다.TensorFlow에서 변수는 신경 네트워크의 매개 변수를 저장하고 업데이트하는 역할을 한다.초기 값을 지정해야 합니다.신경 네트워크에서 매개 변수에 무작위 초기 값을 부여하는 것이 가장 흔하기 때문에 일반적으로 랜덤으로 텐소프루의 변수를 초기화합니다.예: weights = tf.Variable(tf.random_normal([2,3], stddev=2)). TensorFlow에서 변수의 초기 값은 무작위 수, 상숙 또는 다른 변수의 초기 값으로 설정할 수 있습니다.TensorFlow는 tf를 제공합니다.initialze_all_variables () 함수는 모든 변수를 초기화하는 과정을 실현합니다.예: initop = tf.initialize_all_variables() sess.run(init op)은 tf를 통과합니다.initialize_all_variables 함수는 변수를 하나하나 초기화할 필요가 없습니다.이 함수도 변수 간의 의존 관계를 자동으로 처리합니다.신경 네트워크를 사용하여 실제 분류나 회귀 문제를 해결할 때 파라미터의 값을 더욱 잘 설정해야 한다.신경 네트워크 파라미터를 설정하는 과정은 바로 훈련 과정이다.효과적인 훈련을 거친 신경 네트워크 모델만이 분류나 회귀 문제를 진정으로 해결할 수 있다.감독 학습 방식을 사용하여 신경 네트워크 파라미터를 설정하려면 표시된 훈련 데이터 집합이 필요하다.감독 학습의 가장 중요한 사상은 이미 알고 있는 답안의 표기 데이터 집합에서 모델이 제시한 예측 결과는 진실한 답안에 최대한 가까워야 한다는 것이다.신경 네트워크 중의 매개 변수를 조정하여 훈련 데이터에 대해 의합을 하면 모델이 미지의 견본에 대해 예측 능력을 제공할 수 있다.신경 네트워크 최적화 알고리즘 중 가장 자주 사용하는 방법은 역방향 전파 알고리즘이다.

좋은 웹페이지 즐겨찾기