Deep Learning with Keras Cheat Sheet (2021), Python for Data Science -번역

KERAS 치트 시트 (2021), 데이터 과학을위한 파이썬으로 깊은 학습

2021 년에 깊은 학습을위한 초보자를위한 절대적인 기본 사항

Keras는 깊은 학습 모델을 개발하고 평가하기 위해 고급 신경 네트워크 API를 제공하는 Tensorflow를위한 강력하고 사용하기 쉬운 깊은 학습 라이브러리입니다.

KERAS를 최적화하여 다양한 깊은 학습 모델을 만드는 방법을 배우려면 아래 섹션을 확인하십시오.

섹션 :
1.기본 예제
2.데이터
삼.사전 처리
4.모델 아키텍처
5.컴파일 모델
6.모델 훈련
7.예측
8.모델의 성능을 평가하십시오
9.모델을 저장 / 다시로드하십시오

Basic Example

아래 코드는 KERAS를 사용하여 데이터 집합에서 깊은 학습 모델을 만들고 실행하는 기본 단계를 보여줍니다.

코드의 단계는 다음과 같습니다. loadig 데이터를 전처리하고, 모델을 생성하고, 모델에 레이어를 추가하고, 데이터에 모델을 구성하고, 트레이닝 된 모델을 사용하여 테스트 세트에 대한 예측을하고, 마침내 모델의 성능을 평가하는 데이터를

& gt; & gt;numpy를 np로 가져 오기
& gt; & gt;Keras.Models 가져 오기 순차적으로
& gt; & gt;Keras.Layers에서 가져 오기 밀도
& gt; & gt;Keras.Datasets에서 Boston_Housing 가져 오기
& gt; & gt;(x_train, y_train), (x_test, y_test) = boston_housing.load_data ()
& gt; & gt;모델 = 순차 ()
& gt; & gt;model.add (빽빽한 (12, 활성화 = 'RELU', input_dim = 8))
& gt; & gt;model.add (빽빽한 (1))
& gt; & gt;model.compile (Optimizer = 'rmsprop', loss = 'mse', metrics = [ 'ma']))
& gt; & gt;model.fit (x_train, y_train, batch_size = 32, epochs = 15)
& gt; & gt;model.predict (x_test, batch_size = 32)
& gt; & gt;Score = model.evaluate (x_test, y_test, batch_size = 32)

Data

데이터를 숫자 배열로 저장하거나 숫자 배열 목록으로 저장해야합니다.이상적으로는 Sklearn.cross_validation의 train_test_split 모듈에도 해당하는 교육 및 테스트 세트의 데이터를 분리합니다.

예제 데이터 집합의 경우 Keras 라이브러리에 통합 된 Boson Housing DataSet을 사용할 수 있습니다.

& gt; & gt;Keras.Datasets에서 Boston_Housing 가져 오기
& gt; & gt;(x_train, y_train), (x_test, y_test) = boston_housing.load_data ()

Preprocessing

데이터 집합을 가져온 후 모델이 적합 할 준비가되지 않을 수 있습니다.이 경우 모델에 대한 데이터를 준비하기 위해 사전 처리를해야합니다.

범주 구성 기능 인코딩

0과 n_classes-1 사이의 값을 가진 대상 레이블을 인코딩합니다.

& gt; & gt;keras.utils 가져 오기 to_categorical.
& gt; & gt;y_train = to_categorical (y_train, num_classes)
& gt; & gt;y_test = to_categorical (y_test, num_classes)

Train and Test Sets

데이터 세트를 X 및 Y 변수 모두에 대한 교육 및 테스트 세트로 분할합니다.

& gt; & gt;SKLEARN.MODEL_SELECTION IMPORT TRAT_TEST_SPLIT.
& gt; & gt;x_train, x_test, y_train, y_test = train_test_split (x, y,
test_size = 0.33, random_state = 42)

Standardization

표준화는 평균 및 확장을 단위 분산으로 제거하여 기능입니다.

& gt; & gt;SKLEARN.PREPROPESSING 가져 오기 StandardScaler에서
& gt; & gt;스케일러 = StandardScaler (). 맞춤 (x_train)
& gt; & gt;Standardized_x = scaler.transform (x_train)
& gt; & gt;표준화 된 _x_test = scaler.transform (x_test)

Model Architecture

이 섹션에서는 레이어별로 다른 깊은 학습 모델 레이어를 구축하는 방법을 배우게됩니다.

순차 모델

순차적 인 모델은 각 층이 정확히 하나의 입력 텐서 및 하나의 출력 텐서를 갖는 평평한 층의 일반 스택에 적합합니다.이것은 일반적으로 어떤 모델에서도 추가 할 첫 번째 레이어입니다.

& gt; & gt;Keras.Models 가져 오기 순차적으로
& gt; & gt;모델 = 순차 ()

Artificial Neural Network (ANN)

깊은 학습 모델을 위해 사용되었습니다분류회귀.

바이너리 분류 :

아래 코드는 바이너리 분류에 사용되는 ANN 모델의 예입니다 (0 또는 1로 클래스를 식별하십시오).코드는 모델에 3 개의 계층을 추가합니다.첫 번째는 입력 레이어이며 12 개의 노드가 있으며, 제 2 계층은 8 개의 노드를 가지며, 마지막 층은 출력 노드 또는 예측 된 것인 것입니다.

& gt; & gt;Keras.Layers에서 가져 오기 밀도
& gt; & gt;model.add (짙은 (12, input_dim = 8, kernel_initializer = '유니폼',
활성화 = 'RELU')))
& gt; & gt;model.add (빽빽한 (8, kernel_initializer = 'uniform', 활성화 = 'RELU'))
& gt; & gt;model.add (짙은 (1, kernel_initializer = 'uniform', 활성화 = 'sigmoid'))

멀티 클래스 분류 :

아래 코드는 다중 클래스 분류에 사용되는 앤 모델의 예입니다.코드는 모델에 4 개의 레이어를 추가합니다.첫 번째는 입력 레이어이며 52 개의 노드가 있으며, 두 번째는 오버 퍼팅을 줄이는 데 사용되는 드롭 아웃 층이며, 제 3 계층은 52 개의 노드를 가지며, 마지막 층은 특정 관찰이 10 가지 중 하나로 이동하는 확률 인 10 개의 노드를 가지고 있습니다.클래스.

& gt; & gt;Keras.Layers 가져 오기 드롭 아웃
& gt; & gt;model.add (조밀 한 (52, 활성화 = 'RELU'), input_shape = (78,))
& gt; & gt;model.add (드롭 아웃 (0.2))
& gt; & gt;model.add (빽빽한 (52, 활성화 = 'RELU'))
& gt; & gt;model.add (짙은 (10, 활성화 = 'softmax'))

회귀 :

아래 코드는 회귀에 사용되는 앤 모델의 예입니다.코드는 모델에 2 개의 레이어를 추가합니다.첫 번째는 64 개의 노드를 갖는 입력 계층이고, 제 2는 예측 된 값인 단지 1 개의 노드를 갖는 출력 계층이다.

& gt; & gt;model.add (조밀함 (64, 활성화 = 'RELU', input_dim = train_data.shape [1]))
& gt; & gt;
model.add (빽빽한 (1))

Convolution Neural Network (CNN)

깊은 학습 모델그림의 분류.이 모델은 상당히 복잡하며 아래 코드에서 볼 수있는 꽤 많은 레이어가 포함되어 있습니다.그 코드는 CNN 모델이 보이는 것의 기본 예를 제공합니다.

각 계층이 무엇을 확인하는지 이해하고 싶다면Keras 문서.

>>> from keras.layers import Activation,Conv2D,MaxPooling2D,Flatten >>> model2.add(Conv2D(32,(3,3),padding='same',input_shape=x_train.shape[1:])) 
>>> model2.add(Activation('relu'))
>>> model2.add(Conv2D(32,(3,3)))
>>> model2.add(Activation('relu'))
>>> model2.add(MaxPooling2D(pool_size=(2,2)))
>>> model2.add(Dropout(0.25))
>>> model2.add(Conv2D(64,(3,3), padding='same'))
>>> model2.add(Activation('relu'))
>>> model2.add(Conv2D(64,(3, 3)))
>>> model2.add(Activation('relu'))
>>> model2.add(MaxPooling2D(pool_size=(2,2)))
>>> model2.add(Dropout(0.25))
>>> model2.add(Flatten())
>>> model2.add(Dense(512))
>>> model2.add(Activation('relu'))
>>> model2.add(Dropout(0.5))
>>> model2.add(Dense(num_classes))
>>> model2.add(Activation('softmax'))

Recurrent Neural Network (RNN)

깊은 학습 모델시간 시리즈.

아래 코드는 시계열에 사용되는 RNN 모델의 예입니다.코드는 모델에 3 개의 계층을 추가합니다.첫 번째 레이어는 입력 레이어이고, 두 번째 레이어는 긴 단기 메모리라고 불리는 것이며 세 번째 레이어는 출력 레이어이거나 모델에서 예측 된 것입니다.

& gt; & gt;keras.klayers 수입 embedding, lstm.
& gt; & gt;model.add (Empedding (20000,128))
& gt; & gt;model.add (lstm (128, dropout = 0.2, recurrent_dropout = 0.2))
& gt; & gt;model.add (빽빽한 (1, 활성화 = 'sigmoid'))

Compile Model

모델이 구성된 후에는 모델을 컴파일합니다.컴파일하면 모델을 훈련하고 평가하는 데 사용될 교육 구성 (최적화, 손실, 메트릭)을 사용하려는 작업을 지정합니다.

Ann : 바이너리 분류

바이너리 분류에 사용되는 Ann 모델에 대해 이러한 교육 구성을 사용하십시오.

& gt; & gt;model.compile (Optimizer = 'Adam',
손실 = 'binary_crossentropy',
메트릭 = [ '정확도'])

ANN: Multi-Class Classification

멀티 클래스 분류에 사용되는 앤 모델에 대해 이러한 교육 구성을 사용하십시오.

& gt; & gt;model.compile (Optimizer = 'rmsprop',
손실 = 'categorical_crossentropy',
메트릭 = [ '정확도'])

ANN: Regression

회귀 분석에 사용되는 앤 모델에 대해 이러한 교육 구성을 사용하십시오.

& gt; & gt;model.compile (Optimizer = 'rmsprop',
손실 = 'MSE',
메트릭 = [ 'mae'])

Recurrent Neural Network

RNN 모델에 대해 이러한 교육 구성을 사용하십시오.

& gt; & gt;model.compile (loss = 'binary_crossentropy',
Optimizer = 'Adam',
메트릭 = [ '정확도'])

Model Training

모델을 컴파일 한 후에는 이제 교육 세트에 맞게 맞게됩니다.배치 크기는 한 번에 모델에 얼마나 많은 관찰을 입력하는지 결정하고 epochs는 모델이 교육 세트에 맞게 원하는 횟수를 나타냅니다.

& gt; & gt;model.fit (x_train,
Y_Train,
batch_size = 32,
epochs = 15)

Prediction

숙련 된 모델을 사용하여 테스트 세트를 예측합니다

& gt; & gt;model.predict (x_test, batch_size = 32)

Evaluate Your Model’s Performace

테스트 세트에서 모델이 얼마나 잘 수행되는지 결정하십시오.

& gt; & gt;Score = model.evaluate (x_test, y_test, batch_size = 32)

Save/Reload Models

깊은 학습 모델은 훈련하고 실행하는 데 꽤 오랜 시간이 걸릴 수 있으므로 완료되면 다시 저장하고 다시로드 할 수 있으므로 해당 프로세스를 통과 할 필요가 없습니다.

& gt; & gt;keras.models 가져 오기 load_model.
& gt; & gt;model.save ( 'model_file.h5')
& gt; & gt;my_model = load_model ( 'my_model.h5')

Python은 현재 및 가까운 장래에 데이터 과학에 관해서 상위 개입니다.깊은 학습을위한 가장 강력한 라이브러리 중 하나 인 Keras에 대한 지식은 종종 오늘날 데이터 과학자들에게 요구 사항입니다.

이 치트 시트를 처음에 가이드로 사용하고 필요할 때 다시 돌아 오면 Keras Library를 마스터하는 방법에 잘 될 것입니다.

Keras 라이브러리와 함수에 대해 더 자세히 알고 싶다면 설명서를 확인하지 않았습니다.keras.,여전히 많은 유용한 기능이 있으므로 배워야합니다.

2K + 사람들이있는 내 이메일 목록에 가입하여 데이터 과학 치트 시트 소책자가 무료로 완전한 파이썬을 얻을 수 있습니다.

Leave a Comment