TensorFlow 예
이 튜토리얼은 예제를 통해 TensorFlow를 쉽게 알아볼 수 있도록 설계되었습니다. 가독성을 위해 TF v1 및 v2에 대한 설명과 함께 노트북과 소스 코드가 모두 포함되어 있습니다.
TensorFlow에 대한 명확하고 간결한 예제를 찾고 싶은 초보자에게 적합합니다. 기존의 '원시' TensorFlow 구현 외에도 최신 TensorFlow API 사례(예: layers
, estimator
, dataset
등)도 찾을 수 있습니다.
업데이트(2020년 5월 16일): 모든 기본 예시를 TF2로 이동합니다. TF v1 예시: 여기를 확인하세요.
튜토리얼 색인
0 - 전제조건
- 기계 학습 소개.
- MNIST 데이터세트 소개.
1 - 소개
- Hello World (노트북). TensorFlow 2.0+를 사용하여 "hello world"를 인쇄하는 방법을 배우는 매우 간단한 예입니다.
- 기본 작업 (노트북). TensorFlow 2.0+ 기본 작업을 다루는 간단한 예입니다.
2 - 기본 모델
- 선형 회귀 (노트북). TensorFlow 2.0+를 사용하여 선형 회귀를 구현합니다.
- 로지스틱 회귀 (노트북). TensorFlow 2.0+를 사용하여 로지스틱 회귀를 구현합니다.
- Word2Vec(워드 임베딩) (노트북). TensorFlow 2.0 이상을 사용하여 Wikipedia 데이터에서 단어 임베딩 모델(Word2Vec)을 구축하세요.
- GBDT(Gradient Boosted Decision Trees) (노트북). Boston Housing 데이터 세트를 사용하여 주택 가치를 예측하려면 TensorFlow 2.0+로 Gradient Boosted Decision Trees를 구현하세요.
3 - 신경망
감독됨
- 단순 신경망 (노트북). TensorFlow 2.0 '레이어' 및 '모델' API를 사용하여 MNIST 숫자 데이터세트를 분류하는 간단한 신경망을 구축하세요.
- 단순 신경망(저수준) (노트북). MNIST 숫자 데이터 세트를 분류하기 위한 간단한 신경망의 원시 구현입니다.
- 컨볼루셔널 신경망 (노트북). TensorFlow 2.0+ '레이어' 및 '모델' API를 사용하여 MNIST 숫자 데이터 세트를 분류하는 컨볼루션 신경망을 구축하세요.
- 컨벌루션 신경망(저수준) (노트북). MNIST 숫자 데이터 세트를 분류하기 위한 컨벌루션 신경망의 원시 구현입니다.
- 순환 신경망(LSTM) (노트북). TensorFlow 2.0 '레이어' 및 '모델' API를 사용하여 순환 신경망(LSTM)을 구축하여 MNIST 숫자 데이터세트를 분류합니다.
- 양방향 순환 신경망(LSTM) (노트북). TensorFlow 2.0+ '레이어' 및 '모델' API를 사용하여 MNIST 숫자 데이터 세트를 분류하기 위한 양방향 순환 신경망(LSTM)을 구축합니다.
- LSTM(동적 순환 신경망) (노트북). TensorFlow 2.0+ '레이어' 및 '모델' API를 사용하여 가변 길이의 시퀀스를 분류하기 위해 동적 계산을 수행하는 순환 신경망(LSTM)을 구축합니다.
감독되지 않음
- 자동 인코더 (노트북). 이미지를 더 낮은 차원으로 인코딩하고 재구성하는 자동 인코더를 빌드합니다.
- DCGAN(Deep Convolutional Generative Adversarial Networks) (노트북). DCGAN(Deep Convolutional Generative Adversarial Network)을 구축하여 노이즈로부터 이미지를 생성합니다.
4 - 유틸리티
- 모델(노트북)을 저장하고 복원합니다 . TensorFlow 2.0+를 사용하여 모델을 저장하고 복원합니다.
- 맞춤형 레이어 및 모듈 구축 (노트북) 자신만의 레이어/모듈을 구축하고 이를 TensorFlow 2.0+ 모델에 통합하는 방법을 알아보세요.
- 텐서보드 (노트북). TensorFlow 2.0+ 텐서보드를 사용하여 신경망 계산 그래프, 측정항목, 가중치 등을 추적하고 시각화하세요.
5 - 데이터 관리
- 데이터 로드 및 구문 분석 (노트북) TensorFlow 2.0(Numpy 배열, 이미지, CSV 파일, 사용자 정의 데이터 등)을 사용하여 효율적인 데이터 파이프라인을 구축하세요.
- TFRecord(노트북)를 빌드하고 로드합니다 . 데이터를 TFRecords 형식으로 변환하고 TensorFlow 2.0+를 사용하여 로드하세요.
- 이미지 변환(예: 이미지 확대) (노트북). TensorFlow 2.0+를 사용하여 다양한 이미지 증대 기술을 적용하여 학습용 왜곡된 이미지를 생성합니다.
6 - 하드웨어
- 다중 GPU 교육 (노트북). CIFAR-10 데이터 세트에서 여러 GPU를 사용하여 컨벌루션 신경망을 훈련합니다.
텐서플로우 v1
TF v1의 튜토리얼 색인은 TensorFlow v1.15 예제에서 확인할 수 있습니다. 또는 아래의 예시 목록을 참조하세요.
데이터 세트
일부 예에서는 학습 및 테스트를 위해 MNIST 데이터세트가 필요합니다. 걱정하지 마세요. 이 데이터 세트는 예제를 실행할 때 자동으로 다운로드됩니다. MNIST는 손으로 쓴 숫자의 데이터베이스입니다. 해당 데이터 세트에 대한 빠른 설명을 보려면 이 노트북을 확인하세요.
공식 홈페이지: http://yann.lecun.com/exdb/mnist/.
설치
모든 예제를 다운로드하려면 다음 저장소를 복제하면 됩니다.
git clone https://github.com/aymericdamien/TensorFlow-Examples
이를 실행하려면 최신 버전의 TensorFlow도 필요합니다. 설치하려면:
또는 (GPU 지원 포함):
pip install tensorflow_gpu
TensorFlow 설치에 대한 자세한 내용은 TensorFlow 설치 가이드를 확인하세요.
TensorFlow v1 예 - 색인
TF v1의 튜토리얼 색인은 TensorFlow v1.15 예제에서 확인할 수 있습니다.
0 - 전제 조건
- 기계 학습 소개.
- MNIST 데이터세트 소개.
1 - 소개
- Hello World (노트북)(코드). TensorFlow를 사용하여 "hello world"를 인쇄하는 방법을 배우는 매우 간단한 예입니다.
- 기본 작업 (노트북)(코드). TensorFlow 기본 작업을 다루는 간단한 예입니다.
- TensorFlow Eager API 기본 사항 (노트북)(코드). TensorFlow의 Eager API를 시작해보세요.
2 - 기본 모델
- 선형 회귀 (노트북)(코드). TensorFlow를 사용하여 선형 회귀를 구현합니다.
- 선형 회귀(열심히 API) (노트북)(코드). TensorFlow의 Eager API를 사용하여 선형 회귀를 구현합니다.
- 로지스틱 회귀 (노트북)(코드). TensorFlow를 사용하여 로지스틱 회귀를 구현합니다.
- 로지스틱 회귀(eager api) (노트북)(코드). TensorFlow의 Eager API를 사용하여 로지스틱 회귀를 구현합니다.
- 가장 가까운 이웃 (노트북)(코드). TensorFlow를 사용하여 Nearest Neighbor 알고리즘을 구현합니다.
- K-평균 (노트북)(코드). TensorFlow를 사용하여 K-Means 분류기를 구축합니다.
- 랜덤 포레스트 (노트북)(코드). TensorFlow를 사용하여 Random Forest 분류자를 구축합니다.
- GBDT(Gradient Boosted Decision Tree) (노트북)(코드). TensorFlow를 사용하여 GBDT(Gradient Boosted Decision Tree)를 구축하세요.
- Word2Vec(Word Embedding) (노트북)(코드). TensorFlow를 사용하여 Wikipedia 데이터에서 단어 임베딩 모델(Word2Vec)을 구축합니다.
3 - 신경망
감독됨
- 단순 신경망 (노트북)(코드). MNIST 숫자 데이터세트를 분류하기 위해 간단한 신경망(다층 퍼셉트론이라고도 함)을 구축하세요. 원시 TensorFlow 구현.
- 단순 신경망(tf.layers/estimator api) (노트북)(코드). TensorFlow '레이어' 및 '추정기' API를 사용하여 간단한 신경망(다층 퍼셉트론이라고도 함)을 구축하여 MNIST 숫자 데이터세트를 분류하세요.
- 단순 신경망(eager api) (노트북)(코드). TensorFlow Eager API를 사용하여 간단한 신경망(다층 퍼셉트론이라고도 함)을 구축하여 MNIST 숫자 데이터세트를 분류하세요.
- 컨볼루셔널 신경망 (노트북)(코드). MNIST 숫자 데이터 세트를 분류하기 위해 컨벌루션 신경망을 구축합니다. 원시 TensorFlow 구현.
- 컨볼루션 신경망(tf.layers/estimator api) (노트북)(코드). TensorFlow '레이어' 및 '추정기' API를 사용하여 MNIST 숫자 데이터 세트를 분류하는 컨볼루션 신경망을 구축하세요.
- 반복 신경망(LSTM) (노트북)(코드). MNIST 숫자 데이터 세트를 분류하기 위해 순환 신경망(LSTM)을 구축합니다.
- 양방향 순환 신경망(LSTM) (노트북)(코드). MNIST 숫자 데이터 세트를 분류하기 위해 양방향 순환 신경망(LSTM)을 구축합니다.
- LSTM(Dynamic Recurrent Neural Network) (노트북)(코드). 다양한 길이의 시퀀스를 분류하기 위해 동적 계산을 수행하는 순환 신경망(LSTM)을 구축합니다.
감독되지 않음
- 자동 인코더 (노트북)(코드). 이미지를 더 낮은 차원으로 인코딩하고 재구성하는 자동 인코더를 빌드합니다.
- Variational Auto-Encoder (노트북)(코드). VAE(변형 자동 인코더)를 구축하여 노이즈로부터 이미지를 인코딩하고 생성합니다.
- GAN(Generative Adversarial Networks) (노트북)(코드). 생성적 적대 신경망(GAN)을 구축하여 잡음으로부터 이미지를 생성합니다.
- DCGAN(Deep Convolutional Generative Adversarial Networks) (노트북)(코드). DCGAN(Deep Convolutional Generative Adversarial Network)을 구축하여 노이즈로부터 이미지를 생성합니다.
4 - 유틸리티
- 모델(노트북)(코드)을 저장하고 복원합니다 . TensorFlow를 사용하여 모델을 저장하고 복원합니다.
- Tensorboard - 그래프 및 손실 시각화 (노트북)(코드). Tensorboard를 사용하여 계산 그래프를 시각화하고 손실을 플로팅합니다.
- Tensorboard - 고급 시각화 (노트북)(코드). Tensorboard에 대해 더 자세히 알아보세요. 변수, 그라디언트 등을 시각화합니다...
5 - 데이터 관리
- 이미지 데이터세트(노트북)(코드)를 구축합니다 . 이미지 폴더나 데이터세트 파일에서 TensorFlow 데이터 대기열을 사용하여 자신만의 이미지 데이터세트를 구축하세요.
- TensorFlow Dataset API (노트북)(코드). 입력 데이터 파이프라인 최적화를 위한 TensorFlow Dataset API를 소개합니다.
- 데이터 로드 및 구문 분석 (노트북) 효율적인 데이터 파이프라인(Numpy 배열, 이미지, CSV 파일, 사용자 정의 데이터 등)을 구축합니다.
- TFRecord(노트북)를 빌드하고 로드합니다 . 데이터를 TFRecords 형식으로 변환하고 로드합니다.
- 이미지 변환(예: 이미지 확대) (노트북). 다양한 이미지 증대 기술을 적용하여 훈련을 위한 왜곡된 이미지를 생성합니다.
6 - 다중 GPU
- 다중 GPU(노트북)의 기본 작업 (코드). TensorFlow에 다중 GPU를 도입하는 간단한 예입니다.
- 다중 GPU(노트북)(코드)에서 신경망을 훈련합니다 . 여러 GPU에서 컨벌루션 신경망을 훈련하기 위한 명확하고 간단한 TensorFlow 구현입니다.
더 많은 예
다음 예는 TensorFlow에 단순화된 인터페이스를 제공하는 라이브러리인 TFLearn에서 가져온 것입니다. 한 번 살펴보세요. 많은 예제와 사전 구축된 작업 및 레이어가 있습니다.
튜토리얼
- TFLearn 빠른 시작. 구체적인 머신러닝 작업을 통해 TFLearn의 기본 사항을 알아보세요. 심층 신경망 분류기를 구축하고 훈련합니다.
예
- TFLearn 예제. TFLearn을 사용한 대규모 예제 모음입니다.