파이썬:keras(딥러닝): 두 판 사이의 차이

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동
(새 문서: {{파이썬}} == 개요 == <br /> == 사용법 == === 데이터셋 가져오기 === mnist의 데이터셋을 가져온다. from keras.datasets import mnist (train_images, train_l...)
 
1번째 줄: 1번째 줄:
{{파이썬}}
{{파이썬}}


== 개요 ==
==개요==
<br />
딥러닝 모델을 간편하게 만들고 훈련하기 위한 프레임워크.


== 사용법 ==
동일한 코드로 CPU, GPU에서 실행이 가능하며, 다양한 api를 제공해 프로토타입을 빠르게 생성 가능하다. 합성곱 신경망, 순환신경망을 지원한다.


=== 데이터셋 가져오기 ===
2020년 기준, 웹 검색 트렌드에서 텐서플로 다음으로 2위를 차지하고 있다.
 
텐서플로, 씨아노 등을 백엔드 엔진으로 사용할 수 있다.<br />
 
==사용법==
 
===데이터셋 가져오기===
mnist의 데이터셋을 가져온다.
mnist의 데이터셋을 가져온다.


13번째 줄: 19번째 줄:
(train_images, train_labels), (test_images, test_labels) =  
(train_images, train_labels), (test_images, test_labels) =  


=== 신경망 생성 ===
===신경망 생성===
from keras import models
from keras import models


<nowiki>;;;</nowiki> import layers
<nowiki>;;;</nowiki> import layers


network = models.Sequential() #Sequential은 층을 차례로 추가한 모델이라는 의미.
network = models.Sequential() #Sequential은 층을 차례로 추가한 모델이라는 의미. 층을 정의하고 아래의 add를 통해 쌓는다.


network.add(layers.Dense(유닛갯수, activation='활성화함수이름', input_shape=(입력크기 30*30 등,))) #첫번째 층
network.add(layers.Dense(유닛갯수, activation='활성화함수이름', input_shape=(입력크기 30*30 등,))) #첫번째 층. 유닛갯수는 출력값을 몇개로 할 것인가.


network.add(layers.Dense(유닛갯수, activation='활성화함수이름')) #2층. 나오는 층으로, 0~9까지의 구분을 하기 위한 층이다.
network.add(layers.Dense(유닛갯수, activation='활성화함수이름')) #2층. 나오는 층으로, 0~9까지의 구분을 하기 위한 층이다. 유닛갯수는 출력값 갯수.


network.compile(optimizer='어떻게 최적화할 것인가', loss='손실함수', metrics=['모니터링지표])
network.compile(optimizer='어떻게 최적화할 것인가', loss='손실함수', metrics=['모니터링지표])


=== 훈련 ===
<nowiki>#</nowiki>마지막 층에선 확률을 측정하기 위해서 시그모이드 함수를 사용한다. 출력값을 확률처럼 해석하기 위해서.
network.fit
 
===훈련===
 
==== 훈련 직전. 데이터 조정. ====
network.compile(optimizer=<nowiki>''</nowiki>, loss=<nowiki>''</nowiki>, metrics=[<nowiki>''</nowiki>]) #따옴표 안에 적절한 것을 넣는다.
 
==== 레이블을 범주형으로 ====
분류모델일 경우, from keras.utils import to_categorical 을 불러, 레이블=to_categorical(레이블) 을 해주어 해당 분류를 벡터화해준다.


train_images=train_images.reshape((데이터수, input수))
train_images=train_images.astype('float32')/255 #0~255사이의 값을 0~1 사이의 값으로 변환시킨다.
==== 훈련 ====
network.fit(train_images, train_lables, epochs=숫자, batch_size=128)
=== 검증 ===
test_loss, test_acc = network.evaluate(test_image, test_labels) #정확도를 판별한다.
test_loss, test_acc = network.evaluate(test_image, test_labels) #정확도를 판별한다.
t

2020년 10월 20일 (화) 18:43 판

파이썬 공부를 위한 틀 틀:파이썬

  1. 파이썬:개요
    1. 파이썬:코딩팁
      1. 파이썬:파이참
    2. 파이썬:가상환경
    3. 파이썬:연산자
  2. 파이썬:변수
    1. 파이썬:자료형
      1. 파이썬:문자열
    2. 파이썬:자료구조
  3. 파이썬:함수
    1. 파이썬:자주사용하는 함수
  4. 파이썬:데코레이터
  5. 파이썬:제어문
    1. 파이썬:조건문
    2. 파이썬:반복문
  6. 파이썬:클래스
  7. 파이썬:데이터 입출력
    1. 파이썬:api
  8. 파이썬:라이브러리
    1. 파이썬:time, datetime(시간 다루기)
    2. 파이썬:os(운영체제 기능 이용)
    3. 파이썬:sys(인터프리터 관련 기능 제공)
    4. 파이썬:schedule(예약명령)
    5. 파이썬:COM(다른 프로그램과 연동)
    6. 판다스(데이터 분석)
    7. pybithumb(비트코인 거래)
    8. 파이썬:requests(api다루기)
    9. 파이썬:pymysql(mysql 연동)
    10. 파이썬:sqlite3(sqlite3 연동)
    11. 파이썬:math(숫자, 계산 관련)
    12. 파이썬:numpy(다차원 배열 및 데이터 다루기)
    13. 파이썬:matplotlib(그래프, 데이터 시각화)
    14. 파이썬:keras(딥러닝)
    15. 파이썬:turtle(그리기)
  9. 파이썬:프레임워크
    1. 장고:개요
  10. 파이썬:팁
    1. 파이썬:에러
    2. 파이썬:PUBG API 사용하기
    3. 파이썬:주식거래
  11. 파이썬:window창
  12. 파이썬:다양한 전략
    1. 파이썬:회귀분석
    2. 파이썬:상관관계 알아보기
    3. 파이썬:투자방법 개요

개요

딥러닝 모델을 간편하게 만들고 훈련하기 위한 프레임워크.

동일한 코드로 CPU, GPU에서 실행이 가능하며, 다양한 api를 제공해 프로토타입을 빠르게 생성 가능하다. 합성곱 신경망, 순환신경망을 지원한다.

2020년 기준, 웹 검색 트렌드에서 텐서플로 다음으로 2위를 차지하고 있다.

텐서플로, 씨아노 등을 백엔드 엔진으로 사용할 수 있다.

사용법

데이터셋 가져오기

mnist의 데이터셋을 가져온다.

from keras.datasets import mnist

(train_images, train_labels), (test_images, test_labels) =

신경망 생성

from keras import models

;;; import layers

network = models.Sequential() #Sequential은 층을 차례로 추가한 모델이라는 의미. 층을 정의하고 아래의 add를 통해 쌓는다.

network.add(layers.Dense(유닛갯수, activation='활성화함수이름', input_shape=(입력크기 30*30 등,))) #첫번째 층. 유닛갯수는 출력값을 몇개로 할 것인가.

network.add(layers.Dense(유닛갯수, activation='활성화함수이름')) #2층. 나오는 층으로, 0~9까지의 구분을 하기 위한 층이다. 유닛갯수는 출력값 갯수.

network.compile(optimizer='어떻게 최적화할 것인가', loss='손실함수', metrics=['모니터링지표])

#마지막 층에선 확률을 측정하기 위해서 시그모이드 함수를 사용한다. 출력값을 확률처럼 해석하기 위해서.

훈련

훈련 직전. 데이터 조정.

network.compile(optimizer='', loss='', metrics=['']) #따옴표 안에 적절한 것을 넣는다.

레이블을 범주형으로

분류모델일 경우, from keras.utils import to_categorical 을 불러, 레이블=to_categorical(레이블) 을 해주어 해당 분류를 벡터화해준다.

train_images=train_images.reshape((데이터수, input수))

train_images=train_images.astype('float32')/255 #0~255사이의 값을 0~1 사이의 값으로 변환시킨다.

훈련

network.fit(train_images, train_lables, epochs=숫자, batch_size=128)

검증

test_loss, test_acc = network.evaluate(test_image, test_labels) #정확도를 판별한다.

t