텐서플로 入門 [예제로 배우는 텐서플로]
- 원서명Getting Started with TensorFlow (ISBN 9781786468574)
- 지은이잔카를로 자코네(Giancarlo Zaccone)
- 옮긴이김창엽
- ISBN : 9788960779198
- 20,000원
- 2016년 10월 20일 펴냄 (절판)
- 페이퍼백 | 208쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 데이터 과학
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
버전별 소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다(최신 업데이트는 Python 3.6 이상, TensorFlow v1.4 기준입니다).
(https://github.com/AcornPublishing/tensorflow)
요약
이 책은 머신 러닝과 딥 러닝에 관심이 있는 독자들이 텐서플로 예제를 구현해 보면서 쉽게 이해할 수 있도록 구성되어 있다. 기본 파이썬 문법부터 기본적인 머신 러닝 알고리즘(선형회귀, KNN, K-Means), 인공 신경망, 합성곱 신경망, 순환 신경망까지 텐서플로 예제를 통해 자세하게 설명한다. 텐서플로의 중요한 특징 중 하나인 텐서보드를 소개하고 GPU를 사용한 텐서플로 프로그래밍과 머신러닝으로 학습한 모델을 실무에서 활용할 수 있도록 환경을 제공하는 텐서플로 서빙까지 다룬다. 텐서플로를 통한 머신 러닝과 딥 러닝 구현의 기초를 다지는 데 큰 도움이 될 것이다.
이 책에서 다루는 내용
■ 수학적 문제 해결을 위한 텐서플로 환경 구축
■ 머신 러닝과 딥 러닝 기본 개념 학습
■ 데이터 모델 구축을 위한 인공 신경망 학습 및 검증
■ 회귀 알고리즘을 이용한 예측
■ 군집화를 통한 데이터 분석
■ 군집화와 데이터 분류를 위한 알고리즘 개발
■ 빅데이터 분석을 위한 GPU 컴퓨팅 구현
이 책의 대상 독자
프로그래밍과 수학에 대한 기본 지식이 있으며, 머신 러닝과 딥 러닝을 배우고 싶어 하는 사람을 대상으로 한다. 이 책의 내용을 숙지한다면 텐서플로의 기능을 이용해 강력한 애플리케이션을 제작할 수 있다.
이 책의 구성
1장, ‘텐서플로: 기초’에서는 텐서플로 구조의 전반적인 내용과 개발 배경, 파이썬 프로그래밍 가이드라인을 설명한다. 텐서플로 설치 방법과 세션을 구동시키는 방법, 그리고 최적화와 디버깅에서 사용하는 텐서보드(TensorBoard)에 대해서도 다룬다.
2장, ‘텐서플로 기초 연산’에서는 텐서플로의 수학 연산 기능에 대해 설명한다. 텐서플로의 기초 자료형을 설명하고, 이를 통해 가장 기본적인 연산부터 복잡한 편미분 방정식까지 풀어본다. 텐서플로에서 주요하게 다루는 자료 구조인 텐서(tensor)에 대해서도 설명한다.
3장, ‘머신 러닝 시작’에서는 머신 러닝 모델에 대해 설명한다. 데이터 간 유사성을 특징으로 사용하는 선형 회귀 알고리즘을 직접 구현해보면서 데이터 간의 연관성에 대해 알아본다. 머신 러닝의 학습 방법은 크게 분류(Classification)와 군집화(Clustering)의 두 가지로 나눌 수 있다. 분류는 새로운 데이터가 입력되면 미리 정의된 카테고리로 나누는 방법이며, 군집화는 비슷한 데이터끼리 그룹을 만드는 방법이다.
4장, ‘인공 신경망 소개’에서는 신경망에 대해 간단하면서도 자세히 설명한다. 인공 뉴런의 연결 구조는 사람의 뉴런이 행동하는 방식을 모방하도록 수학적으로 모델링돼 있다. 즉, 인공 뉴런은 실제 뉴런의 특성을 모방하도록 수학적으로 구성됐다고 할 수 있으며, 신경망(Neural Network)은 인공 뉴런을 연결해서 딥 러닝 알고리즘을 구성한 것이다. 단일 계층 퍼셉트론(Single Layer Perceptron)과 다중 계층 퍼셉트론(Multi Layer Perceptron)이 가장 기본적인 신경망이라 할 수 있으며, 이를 이용해 데이터를 분류해본다.
5장, ‘딥 러닝’에서는 딥 러닝 알고리즘을 다룬다. 최근 몇 년 동안 딥 러닝은 급격히 성장해, 과거에는 불가능하게 여겼던 문제를 해결하고 있다. 딥 러닝에서 가장 중요하게 다뤄지고 있는 CNN(Convolutional Neural Network)과 RNN(Recurrent Neural Network)을 이용해 이미지 인식과 번역을 각각 구현해본다.
6장, ‘GPU 프로그래밍과 텐서플로 서빙’에서는 GPU 연산 능력을 이용해 텐서플로를 더 빠르게 구동시키는 방법을 다루며, 머신 러닝에 특화된 고성능의 오픈소스 서빙 시스템인 텐서플로 서빙을 통해 텐서플로에 최적화된 개발 환경을 구성해본다.
목차
목차
- 1장. 텐서플로: 기초
- 머신 러닝과 딥 러닝 기초
- 지도 학습
- 비지도 학습
- 딥 러닝
- 지도 학습
- 텐서플로 개요
- 파이썬 기초
- 문법
- 데이터 형식
- 문자열
- 제어 흐름
- 함수
- 클래스
- 예외 처리
- 라이브러리 불러오기
- 텐서플로 설치
- 맥과 리눅스 배포판에 설치
- 윈도우에 설치
- 소스코드로부터 텐서플로 설치
- 텐서플로 동작 확인
- 첫 번째 작업 세션
- 데이터 플로우 그래프
- 텐서플로 프로그래밍 모델
- 텐서보드 사용법
- 요약
- 머신 러닝과 딥 러닝 기초
- 2장. 텐서플로 기초 연산
- 텐서 자료 구조
- 1차원 텐서
- 2차원 텐서
- 텐서 다루기
- 3차원 텐서
- 텐서플로를 이용한 텐서 다루기
- 입력 데이터 준비
- 복소수와 프랙탈
- 망델브로 집합 데이터 준비
- 망델브로 집합의 데이터 플로우 그래프 생성과 실행
- 망델브로 집합 시각화
- 쥘리아 집합 데이터 준비
- 쥘리아 집합의 데이터 플로우 그래프 생성과 실행
- 쥘리아 집합 시각화
- 그레이디언트 계산
- 난수
- 균일 분포
- 정규 분포
- 시드를 이용한 난수 생성
- 몬테카를로 기법
- 편미분 방정식 풀기
- 초기 조건 설정
- 모델 생성
- 그래프 실행
- 연산에 사용된 함수 살펴보기
- 요약
- 텐서 자료 구조
- 3장. 머신 러닝 시작
- 선형 회귀 알고리즘
- 데이터 모델
- 비용 함수와 경사 하강법
- 모델 학습
- 비용 함수와 경사 하강법
- 데이터 모델
- MNIST 데이터 집합
- 데이터 다운로드와 준비
- 분류기
- 최근접 이웃 알고리즘
- 학습군 제작
- 비용 함수와 최적화
- 테스트와 알고리즘 평가
- 최근접 이웃 알고리즘
- 데이터 군집화
- k-평균 알고리즘
- 학습군 제작
- 비용 함수와 최적화
- 테스트와 알고리즘 평가
- 요약
- 선형 회귀 알고리즘
- 4장. 인공 신경망 소개
- 인공 신경망이란?
- 신경망 구조
- 단일 계층 퍼셉트론
- 로지스틱 회귀
- 텐서플로 구현
- 모델 생성
- 세션 실행
- 테스트 평가
- 소스코드
- 다중 계층 퍼셉트론
- 다중 계층 퍼셉트론 분류
- 모델 생성
- 세션 실행
- 소스코드
- 다중 계층 퍼셉트론 함수 추정
- 모델 생성
- 세션 실행
- 다중 계층 퍼셉트론 분류
- 요약
- 인공 신경망이란?
- 5장. 딥 러닝
- 딥 러닝 기술
- 합성 곱 신경망
- CNN 구조
- 텐서플로를 이용한 CNN 구현
- 초기화 단계
- 첫 번째 합성 곱 레이어
- 두 번째 합성 곱 레이어
- 완전 연결 레이어
- 출력 레이어
- 모델 학습 및 평가
- 세션 실행
- 소스코드
- 순환 신경망
- RNN 구조
- LSTM 네트워크
- 텐서플로를 이용한 자연어 처리
- 데이터 다운로드
- 모델 제작
- 코드 실행
- 합성 곱 신경망
- 요약
- 딥 러닝 기술
- 6장. GPU 프로그래밍과 텐서플로 서빙
- GPU 프로그래밍
- 텐서플로 서빙
- 텐서플로 서빙 설치
- Bazel
- gRPC
- 텐서플로 서빙 의존성 패키지
- 텐서플로 서빙 설치
- 텐서플로 서빙 사용법
- 텐서플로 모델 학습과 내보내기
- 세션 실행
- 텐서플로 서빙 설치
- 텐서플로 모델 불러오기와 내보내기
- 서버 테스트
- 요약
도서 오류 신고
정오표
정오표
[pp.21-22: 맨 끝 행-첫 행]
https://www.packtpub.com/sites/default/files/downloads/GettingStartedwithTensorFlowColorImages.pdf
->
https://www.packtpub.com/sites/default/files/downloads/GettingStartedwithTensorFlow_ColorImages.pdf
[p. 22: 끝에서 6행]
copyright@packpub.com
->
copyright@packtpub.com
[p.30: 아래에서 3행]
"첫 번째 값"
->
"Element 1"
[p.30 : 아래에서 3행]
"Element 1"
->
'Element 1'
[p.44: 13행]
다른 형식의 텐서 적용하는
->
다른 형식의 텐서에 적용하는
[p.58: 5행]
import TensorFlow as tf
->
import tensorflow as tf
[p.58: 1행]
텐서의 자료 구조는
->
텐서에서 자료 형식은
[p.58: 6행]
[p.59: 마지막행]
import TensorFlow as tf
->
import tensorflow as tf
[p.67: 3행]
import TensorFlow as tf
->
import tensorflow as tf
[p.68: 2행]
import TensorFlow as tf
->
import tensorflow as tf
[p.71: 8행]
import TensorFlow as tf
->
import tensorflow as tf
[p.76:1행]
tf.gradients)()
->
tf.gradients()
[p.76: 7행]
import TensorFlow as tf
->
import tensorflow as tf
[p.77: 14행]
import TensorFlow as tf
->
import tensorflow as tf
[p.79: 1행]
import TensorFlow as tf
->
import tensorflow as tf
[p.81: 19행]
import TensorFlow as tf
->
import tensorflow as tf
[p.83: 마지막행]
import TensorFlow as tf
->
import tensorflow as tf
[p.93: 1행]
NumPy의 random.normal 함수를 이용해 300개의 임의의 점을 y = 0.22x+0.78 수식에 맞춰 할당한다.
->
NumPy의 random.normal 함수를 이용해 500개의 임의의 점을 y = 0.22x+0.78 수식에 맞춰 할당한다.
[p.97: 3행]
for step in range(0,20):
->
for step in range(0,21):