아래의 cnn 아키텍처를 개선하려고합니다. 이미지 분류에 cnn을 사용하고 있습니다. 누구든지 너무 많은 정확도를 잃어 버리지 않고 교육 시간을 단축 할 수있는 아키텍처의 변경 사항을 제안 할 수 있습니까? 아키텍처cnn의 교육 시간 단축
주 :
그것은 신경망의 초기 입력을 처리하는 3,3- 창을 이용하여 16 개 개의 필터의 컨볼 루션 층을 갖는다.
가 그것은 2,2-
다음의 최대 풀링 층에 뒤따라, 이전 층에서 통과 된 데이터를 보존하기 위해 제 층과 동일한 크기이며 다른 컨벌루션 층이다.
첫 번째 2 개의 레이어 다음에 세 번째 길쌈 레이어가 32 개의 필터를 포함하므로 네트워크가 세부 정보를보고 더 많은 데이터를위한 공간을 확보 할 수 있습니다.
세 번째 계층은 전역 평균 풀링 계층을 생성했으며이 계층은 완전히 연결된 계층에 공급됩니다.
첫 번째 완전히 연결된 숨겨진 레이어는 출력 레이어가 버터가 더 많은 가중치를 결정할 수있는 공간을 제공하기 전에 버터를 허용하기 위해 64 단위를 사용합니다.
마지막으로 예측을 만드는 출력 레이어로지나 가기 전에 오버 피팅을 방지하는 드롭 아웃 레이어가 뒤 따른다.
출력 레이어는 softmax 활성화 함수를 가지고있어서 0-1 사이의 확률 분포를 유지합니다.
CNN 번호 :
연수 연산의 대부분이 제Conv2D
층에서 일어나는
from keras.layers import Conv2D, MaxPooling2D, GlobalAveragePooling2D
from keras.layers import Dropout, Flatten, Dense
from keras.models import Sequential
model = Sequential()
model.add(Conv2D(16, (3,3), input_shape=(224,224,3), activation = 'relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(16, (3,3), activation= 'relu'))
model.add(MaxPooling2D(pool_size =(2,2)))
model.add(Conv2D(32, (3,3), activation= 'relu'))
model.add(GlobalAveragePooling2D())
model.add(Dense(units=64, activation= 'relu'))
model.add(Dropout(0.3))
model.add(Dense(units= 133, activation = 'softmax'))
model.summary()
이미지는 비교적 크기가 커서 (224x224x3) 크기가 작아지고 성능에 미치는 영향을 확인하십시오. 이미지에 따라 사전에 그레이 스케일로 변환 해보십시오. – aseipel