카테고리 보관물: Keras

TensorFlow 2.1.0 RC0 Release

업데이트: 텐서플로 2.1.0 RC1이 릴리스되었습니다.

텐서플로 2.1.0 RC0이 릴리스되었습니다. 텐서플로 1.15.0 버전부터 CPU와 GPU 버전이 통합되었습니다. CPU 버전만 설치하려면 tensorflow-cpu 패키지를 설치하세요.

2.1.0 버전이 파이썬 2.7.x를 지원하는 마지막 버전입니다. 내년 1월에 파이썬 2.7.x에 대한 지원을 중단합니다.

tf.keras 모델의 fit_generator, evaluate_generator, predict_generator, train_on_batch, test_on_batch, predict_on_batch 메서드가 즉시실행 모드를 위한 run_eagerly 메서드를 지원합니다. 기본값인 tf.function 방식도 버그 수정되었습니다.

fit_generator, evaluate_generator, predict_generator 메서드는 deprecated 됩니다. 대신 제너레이터와 시퀀스 데이터를 받을 수 있는 fit, evaluate, predict 메서드를 사용하세요.

2.0 버전에 추가된 Normalization 클래스를 포함하여 TextVectorization 클래스가 2.1 버전에 tf.keras API에 포함되었습니다. tf.keras.preprocessing 패키지의 사용 방법에 대한 간단한 예시는 ‘텐서플로 2.0 무엇이 바뀌었을까요?‘ 슬라이드 39번을 참고하세요.

2.1 버전에서 클라우드 TPU를 지원합니다. 하지만 아직 실험적입니다. 그외 많은 기능이 개선되고 변경되었습니다. 자세한 내용은 릴리스 노트를 참고하세요.

텐서플로 2.1.0 RC 버전은 다음 명령으로 설치할 수 있습니다.

$ pip install --upgrade --pre tensorflow

‘미술관에 GAN 딥러닝’이 출간되었습니다!

x9791162241080

데이비드 포스터David Foster가 쓴 아마존 베스트셀러 ‘Generative Deep Learning’를 번역한 ‘미술관에 GAN 딥러닝‘이 출간되었습니다.

이 책은 생성 모델링 분야에서 주목받는 최신 딥러닝 기술을 소개합니다. 이 책에 담긴 예제를 만들어 보면서 작동 원리를 터득할 수 있습니다. 특히 짧은 우화를 사용하여 어렵게 느껴질 수 있는 알고리즘을 쉽고 재미있게 설명해 줍니다. 저자의 스토리텔링 기술이 정말 탁월합니다.

이 책이 다루고 있는 모델은 오토인코더, 변이형 오토인코더, DCGAN, WGAN, WGAN-GP, Cycle GAN, Neural Style Transfer, LSTM, Encode-Decoder 모델, 질문-대답 생성기, MuseGAN, World Model, Transformer 등입니다. 이 책과 함께 흥미로운 생성 모델의 세계로 탐험을 떠나 보시죠! 🙂

온라인 서점에서 예약 판매중입니다! [교보문고] [Yes24]

감사합니다!!!

TensorFlow 1.15.0 Release, Keras 2.3.1 Release

TensorFlow 1.15.0 버전이 릴리스되었습니다. 알려진 것처럼 1.15.0 버전은 텐서플로의 마지막 1.x 버전입니다. 1.15.0 버전부터 tensorflow 패키지가 CPU와 GPU를 모두 지원합니다. 시스템에 GPU가 장착되어 있으면 기본적으로 GPU 모드로 작동합니다. 다운로드 크기 때문에 CPU 버전으로 설치하려면 tensorflow-cpu 패키지를 설치하세요. tensorflow-gpu 패키지도 아직 제공합니다.

# for CPU and GPU
$ pip install --upgrade tensorflow==1.15.0
# only GPU
$ pip install --upgrade tensorflow-gpu==1.15.0
# only CPU
$ pip install --upgrade tensorflow-cpu==1.15.0

텐서플로 1.15.0 버전은 compat.v2 모듈 아래 텐서플로 2.0 기능을 완전히 구현하였습니다. 1.x 기능은 compat.v1 모듈로 참조할 수 있습니다. 1.x와 2.0 버전 변화에 따른 영향을 최소화하려면 두 모듈을 사용하여 코드를 만드세요. 케라스 모델의 save() 메서드의 기본 저장 포맷이 텐서플로의 SavedModel 포맷으로 바뀌었습니다. 또 케라스 층에서 float32가 기본이 됩니다.

또 케라스 2.3.0 버전의 버그를 수정한 2.3.1 버전이 릴리스되었습니다.

Keras 2.3.0 Release

케라스 2.3.0 버전이 릴리스되었습니다. 케라스 2.3.0은 텐서플로 2.0 버전을 지원합니다. 하지만 아직 즉시 실행(eager execution)은 지원하지 않습니다. 이 기능이 필요하면 tf.keras를 사용하세요. 2.3.x 버전이 멀티 백엔드를 지원하는 마지막 케라스 구현입니다. 대신 tf.keras를 사용하세요.

케라스는 pip 명령으로 설치할 수 있습니다.

$ pip install --upgrade keras

Keras 2.2.5 Release

케라스 2.2.5 버전이 릴리스되었습니다.

ResNet101, ResNet152를 비롯하여 새로운 애플리케이션이 많이 추가되었습니다. evaluatepredict 메서드에 콜백 함수를 사용할 수 있습니다. fit 메서드에 validation_freq 매개변수가 추가되었습니다. 에포크 마다 무조건 검증 세트에 대한 계산을 수행하지 않고 적절한 간격을 두고 계산할 수 있습니다. *_generator 메서드를 사용하는 대신 fit, evaluate, predict 메서드에 파이썬 제너레이터를 주입할 수 있습니다.

이번이 텐서플로 1.x를 지원하는 2.2.x의 마지막 릴리스입니다. 2.3 버전부터는 텐서플로 2.0을 지원합니다. 텐서플로 2.0을 지원하면서 많은 기능이 바뀌기 때문에 API가 바뀔 가능성이 높습니다. 케라스는 2.3 버전을 마지막으로 tf.keras로 완전 이전될 예정입니다.

텐서플로 1.15 버전이 릴리스될 예정입니다. enable_v2_behavior로 v2.0 기능을 활성화하면 케라스 2.3.0 스펙을 사용하고 그렇지 않으면 2.2.4 스펙을 사용합니다. 더불어 곧 텐서플로 2.0 RC 버전이 릴리스될 예정입니다. 혹시 텐서플로 월드에는 정식 버전이?? 🙂

더 자세한 내용은 릴리스 노트를 참고하세요. 케라스 2.2.5 버전은 pip 명령으로 설치할 수 있습니다.

$pip install --upgrade keras

“파이썬을 활용한 머신러닝 쿡북”이 출간되었습니다!

x9791162241950크리스 알본의 ‘Machine Learning with Python Cookbook’을 번역한 <파이썬을 활용한 머신러닝 쿡북>이 출간되었습니다. 200개의 레시피에 머신러닝 작업에 필요한 핵심을 잘 담아 놓았습니다.

508페이지 로 뽑아 주신 한빛미디어 출판사에 감사드립니다. 온라인/오프라인 서점(교보문고, Yes24)에서 판매 중입니다. 절판되기 전에 어서 주문하세요! 🙂

keras.datasets.imdb.load_data() 오류

keras.datasets.imdb.load_data()는 pickle로 저장된 객체를 읽기 위해서 numpy.load() 함수를 사용합니다. 넘파이 1.16.3 버전에서 pickle 파일 허용 여부를 결정하는 allow_pickle 매개변수의 기본값이 True에서 False로 바뀌었습니다. 😦

이로 인해 imdb.load_data()에서 오류가 발생합니다. 재빠르게 텐서플로(#28102)와 케라스(#12714) 소스가 수정되었습니다만 imdb.load_data() 함수를 사용하려면 다음 버전이 릴리스될 때까지 넘파이 버전을 1.16.3 이전으로 유지하는 수 밖에 없을 것 같습니다.

매개변수 기본값에 너무 의지하지 말고 명시적으로 값을 지정하는 것이 좋다는 교훈을 다시 한 번 배웁니다. 🙂

관련 내용을 알려 주신 서* 님께 감사드립니다.

TensorFlow 2.0 Keras API Overview

이 글은 “Keras: Overview“을  번역한 것입니다. 이 글은 텐서플로 문서 깃허브에 머지되어 있습니다. 잘못된 점이 있으면 블로그를 통해 알려 주시거나 깃허브에 PR을 보내 주세요.

케라스: 빠르게 훑어보기

Note: 이 문서는 텐서플로 커뮤니티에서 번역했습니다. 커뮤니티 번역 활동의 특성상 정확한 번역과 최신 내용을 반영하기 위해 노력함에도 불구하고 공식 영문 문서의 내용과 일치하지 않을 수 있습니다. 이 번역에 개선할 부분이 있다면 tensorflow/docs 깃헙 저장소로 풀 리퀘스트를 보내주시기 바랍니다. 문서 번역이나 리뷰에 지원하려면 이 양식을 작성하거나 docs@tensorflow.org로 메일을 보내주시기 바랍니다.

tf.keras 임포트

tf.keras케라스 API 명세{:.external}의 텐서플로 구현입니다. tf.keras는 머신러닝 모델을 만들고 훈련하기 위한 고수준 API로서 텐서플로의 특수 기능을 모두 지원합니다. 여기에는 즉시 실행, tf.data 파이프라인(pipeline), Estimators가 포함됩니다. tf.keras를 이용하면 유연성과 성능을 손해보지 않고 텐서플로를 쉽게 사용할 수 있습니다.

tf.keras를 임포트하여 텐서플로 프로그램을 시작합니다:

!pip install -q pyyaml # pyyaml은 선택사항입니다.
from __future__ import absolute_import, division, print_function, unicode_literals

!pip install tf-nightly-gpu-2.0-preview
import tensorflow as tf

from tensorflow import keras

tf.keras는 케라스 API와 호환되는 어떤 코드라도 실행시킬 수 있지만 다음 사항을 유념하세요:

  • 최신 텐서플로 릴리스에 포함된 tf.keras 버전은 PyPI에 있는 최신 keras 버전과 같지 않을 수 있습니다. tf.keras.__version__을 확인해 보세요.
  • 모델의 가중치를 저장할 때 tf.keras는 기본적으로 체크포인트 포맷을 사용합니다. HDF5를 사용하려면 save_format='h5'로 설정하세요.

간단한 모델 만들기

Sequential 모델

케라스에서는 층(layer)을 조합하여 모델(model)을 만듭니다. 모델은 (일반적으로) 층의 그래프입니다. 가장 흔한 모델 구조는 층을 차례대로 쌓은 tf.keras.Sequential 모델입니다.

간단한 완전 연결(fully-connected) 네트워크(즉, 다층 퍼셉트론(multi-layer perceptron))를 만들어 보겠습니다.

from tensorflow.keras import layers

model = tf.keras.Sequential()
# 64개의 유닛을 가진 완전 연결 층을 모델에 추가합니다:
model.add(layers.Dense(64, activation='relu'))
# 또 하나를 추가합니다:
model.add(layers.Dense(64, activation='relu'))
# 10개의 출력 유닛을 가진 소프트맥스 층을 추가합니다:
model.add(layers.Dense(10, activation='softmax'))

여기에서 Sequential 모델을 어떻게 사용하는지 간단하지만 완전한 예제를 볼 수 있습니다.

Sequential보다 더 고수준의 모델을 구성하는 방법을 배우려면 다음을 참고하세요:
케라스 함수형 API 가이드
클래스 상속을 통하여 층과 모델을 밑바닥부터 만드는 방법

계속 읽기

Keras 2.2.4 Release

<케라스 창시자에게 배우는 딥러닝> 책이 출간되자 마자 공교롭게도 케라스 2.2.4 버전이 릴리스되었습니다. 🙂  2.2.4 버전은 며칠 전 릴리스된 2.2.3 버전의 버그 픽스입니다. 주요한 변경 사항은 2.2.3 버전에 담겨 있습니다. 몇 가지 눈에 띄이는 내용을 살펴 보겠습니다. 전체 변경 내용은 케라스 2.2.3 버전의 릴리스를 참고하세요.

  • 텐서플로 1.11.0의 Keras API와 통일하기 위해 ThresholdedReLULeakyReLU의 기능을 ReLU 클래스에 추가하였습니다. 이 때문에 ReLU 클래스에 두 개의 매개변수가 추가되었습니다. ThresholdedReLUtheta 매개변수 역할을 하는 thresholdLeakyReLUalpha 매개변수 역할을 하는 negative_slope입니다. 백엔드의 relu 함수에는 이미 alpha 매개변수가 있었기 때문에 threshold 매개변수만 추가되었습니다.
  • TensorBoard 콜백 클래스에 로깅 간격을 지정할 수 있는 update_freq 매개변수가 추가되었습니다. 기본값은 'epoch'로 이전과 동일하게 에포크마다 로그를 기록합니다. 'batch'는 배치마다 로그를 기록하고 정수를 입력하면 지정된 샘플 개수마다 로그를 기록합니다. tf.keras에는 아직 반영되지 않았습니다.
  • 다른 *Pooling2D 클래스처럼 MaxPooling1D, GlobalMaxPooling1D, AveragePooling1D, GlobalAveragePooling1D 에 data_format 매개변수가 추가되었습니다. data_format 매개변수의 값이 channels_last일 때 입력은 (batch_size, steps, features) 크기의 3D 텐서이고 channels_first일 때는 (batch_size, features, steps)입니다. 기본값은 channels_last입니다.
  • Conv2DTranspose 클래스에 아트루스 합성곱을 위한 dilation_rate 매개변수가 적용되었습니다.
  • EarlyStopping 콜백 클래스에 restore_best_weights 매개변수가 추가되었습니다. 이 매개변수를 True 지정하면 patience 에포크가 지난 후의 모델이 아니라 이전 모델 중에서 최선의 가중치로 설정된 모델이 반환됩니다. 기본값은 False 입니다.
  • 이전에는 무조건 float32 타입의 넘파이 배열을 반환했던 to_categorical 함수에 dtype 매개변수가 추가되었습니다. 'float64', 'int32' 등을 지정할 수 있으며 기본값은 'float32' 입니다.

“케라스 창시자에게 배우는 딥러닝”이 출간되었습니다.

keras_dl_b 케라스 창시자이자 구글 AI 연구원인 프랑소와 숄레(François Chollet)의 “Deep Learning with Python“의 번역서 <케라스 창시자에게 배우는 딥러닝>이 출간되었습니다! 온라인(전자책)/오프라인 서점에서 판매(YES24교보문고, 전자책) 중입니다.

이 책은 케라스를 사용하여 딥러닝의 기초와 다양한 실전 모델을 배울 수 있도록 안내합니다. 또 프랑소와의 딥러닝에 대한 견해와 전망을 엿볼 수 있습니다. 예제 코드는 깃허브에 공개되어 있습니다. 블로그에 실었던 원서에 대한 소개번역 후기도 참고하세요.

케라스의 새 버전에 맞추어 코드를 수정하고 에러타를 꾸준히 반영하겠습니다. 도서 메일링 리스트에 가입하면 편하게 에러타를 확인할 수 있습니다.

저자 프랑소와도 맘에 든다고 하네요! 🙂

책을 만드는 데 도움을 주신 많은 분들께 다시 한번 감사드립니다!