예제 9-7 텐서플로와 케라쓰는 섞어 쓰는 CNN

새로운 구능 기현시 유연하게 대처하는 방법으로 텐서플로와 케라스를 섞어 쓰는 방법을 다룹니다. 이 방법에 대한 구현 예제는 3.2절의 ‘필기체를 분류하는 DNN 구현’에서 사용한 것과 동일합니다. 거기서 우리는 필기체 데이터 셋인 MNIST를 분류하는 일을 했습니다. 똑 같은 일을 여기서의 방법으로 구현할 겁니다.


In [2]:
# %load /home/sjkim/.jupyter/head.py
%matplotlib inline
%load_ext autoreload 
%autoreload 2
from importlib import reload

import matplotlib.pyplot as plt
import numpy as np

import pandas as pd
import os
#os.environ["CUDA_VISIBLE_DEVICES"]="0"

# seaborn
#import seaborn as sns
#sns.set( style = 'white', font_scale = 1.7)
#sns.set_style('ticks')
#plt.rcParams['savefig.dpi'] = 200

# font for matplotlib
#import matplotlib
#import matplotlib.font_manager as fm
#fm.get_fontconfig_fonts()
#font_location = '/usr/share/fonts/truetype/nanum/NanumGothicBold.ttf'
#font_name = fm.FontProperties(fname=font_location).get_name()
#matplotlib.rc('font', family=font_name)


The autoreload extension is already loaded. To reload it, use:
  %reload_ext autoreload

In [7]:
import ex9_4_2_tfwithkeras as example


Out[7]:
<module 'ex9_4_2_tfwithkeras' from '/home/sjkim/Dropbox/Aspuru-Guzik/python_lab/py3/keraspp/ex9_4_2_tfwithkeras.py'>

In [8]:
example.main()


Epoch 0: loss = 0.227, acc = 0.931
Epoch 1: loss = 0.169, acc = 0.950
Epoch 2: loss = 0.144, acc = 0.957
Epoch 3: loss = 0.128, acc = 0.961
Epoch 4: loss = 0.126, acc = 0.963
Epoch 5: loss = 0.117, acc = 0.965
Epoch 6: loss = 0.112, acc = 0.967
Epoch 7: loss = 0.109, acc = 0.969
Epoch 8: loss = 0.106, acc = 0.970
Epoch 9: loss = 0.103, acc = 0.972

KERASPP

코딩셰프의 3분 딥러닝, 케라스맛

Keras 코드로 맛보는 ANN, DNN, CNN, RNN, AE, GAN, UNET

케라스 코드로 맛보는 딥러닝 핵심 개념!

간결하고 직관적인 인공신경망 API를 제공하는 케라스는 구글 텐서플로, 마이크로소프트 CNTK, 아마존 MXNET, OpenCL PlaidML, 시애노 등의 딥러닝 엔진에서 지원하는 인기 인공지능 툴입니다. 이 코드들은 딥러닝 인공신경망 구현에 케라스를 사용합니다. 케라스로 주요 인공신경망인 ANN, DNN, CNN, RNN, AE, GAN, UNET을 구현하는 방법을 알아봅니다. 따라서 인공지능과 딥러닝 인공신경망의 구현에 관심이 있는 누구나 이 코드의 사용자입니다.

구성

케라스를 이용해 딥러닝 인공신경망을 만들어 인공지능을 구현합니다. 1장은 케라스를 시작하는 데 필요한 기초를 다룹니다. 2장부터는 최신 인공지능 구현 방법인 주요 인공신경망을 예제로 이용해 다룹니다. 2장~5장에서 다루는 ANN, DNN, CNN, RNN은 지도학습 방식의 인공지능입니다. 6장과 7장에서 다루는 AE와 GAN은 비지도학습 방식이고 8장의 UNET은 고급 지도학습 방법입니다. 9장은 8장까지 배운 내용을 응용하고 확장하는 방법을 다룹니다.

예제는 쉽게 인공지능 구현 방법을 익히고, 추후 실무에 쉽게 재사용할 수 있게 하는 데 주안점을 두어 작성했습니다.