Python 딥 러 닝 의 권 적 신경 망 실현
얀 레 쿤 과 요 슈 아 벤 지 오 는 1995 년 볼 륨 신경 망 을 도입 해 볼 륨 네트워크 나 CNN 이 라 고도 부른다.CNN 은 뚜렷 한 격자 형 토폴로지 가 있 는 데 이 터 를 처리 하 는 특수 한 다 층 신경 망 이다.그 네트워크 의 기 초 는 볼 륨 이 라 고 불 리 는 수학 연산 에 기초 하고 있다.
권 적 신경 망(CNN)의 유형
다음은 다양한 유형의 CNN 이다.
다음은 CNN 의 서로 다른 층 의 네트워크 구조 이다.
3.볼 륨
볼 륨 은
f
과 g
이라는 두 함수 에 대한 수학 적 계산 으로 세 번 째 함수 (f * g)
을 얻 었 다.세 번 째 기능 은 하나의 형상 이 어떻게 다른 형상 에 의 해 수정 되 는 지 를 보 여 준다.그 수학 공식 은 다음 과 같다.h ( x , y ) = f ( x , y ) ∗ g ( x , y ) h(x,y)=f(x,y)*g(x,y) h(x,y)=f(x,y)∗g(x,y)
볼 륨 은 몇 가지 매우 중요 한 개념 이 있다.커버.
그림 속 의 노란색 부분 은 커버 입 니 다.
권 적 층
볼 륨 층 은 CNN 의 핵심 빌 드 블록 이다.CNN 은 일부 권 적 층 과 다른 일부 층 의 신경 망 을 갖 추고 있다.볼 륨 층 은 볼 륨 연산 을 하 는 몇 개의 필 터 를 가지 고 있다.볼 륨 층 은 2 차원 입력 에 사용 되 는데 뛰어난 이미지 분류 작업 성능 으로 유명 하 다.이들 은 2 차원 입력 을 가 진 작은 핵 k 의 이산 볼 륨 을 바탕 으로 이 입력 은 다른 볼 륨 층 의 출력 이 될 수 있다.
5.Keras 에 볼 륨 층 구축
from keras.models import Sequential
from keras.layers.convolutional import Conv2D
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=(32, 32, 3), padding='same', activation='relu'))
위의 코드 구현 설명:6.연못 화 층
지 화 층 의 기능 은 매개 변수의 수량 을 줄 이 고 네트워크 의 공간 크기 를 줄 이 는 것 이다.우 리 는 두 가지 방식 을 통 해 연못 화 를 실현 할 수 있다.
위의 그림 은 보폭 이 2 인 2X2 필 터 를 가 진 맥 스 풀 지 화 층 을 보 여 준다.
Keras 에서 Max Pool 층 을 실현 합 니 다.다음 과 같 습 니 다.
model.add(MaxPooling2D(pool_size =(2,2)))
7.전체 연결 층전체 연결 층 은 최종 예측 한 모든 입력 과 가중치 의 합 계 를 확정 하고 마지막 합병 층 의 출력 을 대표 합 니 다.그것 은 한 층 의 모든 신경 원 을 다른 층 의 모든 신경 원 에 연결 시 켰 다.
전 연결 층 의 주요 직책 은 분류 하 는 것 이다.이것 은 softmax 활성화 함수 와 함께 사용 하여 결 과 를 얻 을 수 있 습 니 다.
여러 종류의 활성화 함수 에 사용 되 는 softmax 함수 입 니 다.이 함 수 는 0 과 1(총 1)의 확률 로 완전히 연 결 된 층 을 규범화 합 니 다.
비 선형 함수"Softmax"를 가 진 Keras 코드 는 다음 과 같 습 니 다.
model.add(Dense(10, activation='softmax'))
8.Python 권 적 신경 망 실현환경 Google Colab
필요 한 모든 라 이브 러 리 가 져 오기
import numpy as np
import pandas as pd
from keras.optimizers import SGD
from keras.datasets import cifar10
from keras.models import Sequential
from keras.utils import np_utils as utils
from keras.layers import Dropout, Dense, Flatten
from keras.layers.convolutional import Conv2D, MaxPooling2D
cifar 10 데이터 불 러 오기:
(X, y), (X_test, y_test) = cifar10.load_data()
#
X,X_test = X.astype('float32')/ 255.0,X_test.astype('float32')/ 255.0
분류 로 변환:
y,y_test = utils.to_categorical(y,10),u.to_categorical(y_test,10)
모델 초기 화:
model = Sequential()
다음 매개 변 수 를 사용 하여 볼 륨 층 을 추가 합 니 다:
model.add(Conv2D(32, (3, 3), input_shape=(32, 32, 3), padding='same', activation='relu'))
# Dropout
model.add(Dropout(0.2))
# padding ='valid'
model.add(Conv2D(32,(3,3),activation ='relu',padding ='valid'))
#
model.add(MaxPooling2D(pool_size =(2,2)))
#
model.add(Flatten())
# Dense 521
model.add(Dense(512, activation='relu'))
# Dropout
model.add(Dropout(0.3))
#output
model.add(Dense(10, activation='softmax'))
# SGD
model.compile(loss='categorical_crossentropy', optimizer=SGD(momentum=0.5, decay=0.0004), metrics=['accuracy'])
25 개의 epochs
model.fit(X, y, validation_data=(X_test, y_test), epochs=25, batch_size=512)
9.총화
권 적 신경 망 은 특수 한 다 층 신경 망 으로 주로 특징 을 추출 하 는 데 쓰 인 다.CNN 은 볼 륨 과 풀 링 이 라 고 불 리 는 두 동작 을 사용 하여 그림 을 기본 특징 으로 축소 하고 이러한 특징 을 사용 하여 현지 이해 와 분류 이미지 에 적합 하도록 한다.
파 이 썬 딥 러 닝 의 권 적 신경 망 실현 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 이 권 적 신경 망 을 실현 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.