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

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동
편집 요약 없음
 
28번째 줄: 28번째 줄:
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까지의 구분을 하기 위한 층이다. 유닛갯수는 출력값 갯수. 1이면 0과 1을 표현한다. 2면 4가지 조합 가능.


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


==== 훈련 직전. 데이터 조정. ====
====훈련 직전. 데이터 조정.====
network.compile(optimizer=<nowiki>''</nowiki>, loss=<nowiki>''</nowiki>, metrics=[<nowiki>''</nowiki>]) #따옴표 안에 적절한 것을 넣는다.
network.compile(optimizer=<nowiki>''</nowiki>, loss=<nowiki>''</nowiki>, metrics=[<nowiki>''</nowiki>]) #따옴표 안에 적절한 것을 넣는다.


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


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


==== 훈련 ====
====훈련====
network.fit(train_images, train_lables, epochs=숫자, batch_size=128)  
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
t
== 이외기능 ==
L1,L2규제 등으로 적합도를 늘릴 수도 있다.
드롭아웃도 제공한다.

2020년 10월 21일 (수) 23:41 기준 최신판

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

  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까지의 구분을 하기 위한 층이다. 유닛갯수는 출력값 갯수. 1이면 0과 1을 표현한다. 2면 4가지 조합 가능.

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

이외기능[편집 | 원본 편집]

L1,L2규제 등으로 적합도를 늘릴 수도 있다.

드롭아웃도 제공한다.