Dense 레이어는 'add' 방법을 사용하고 레이어 유형을 'Dense'로 지정하여 순차 모델에 추가할 수 있습니다. 레이어가 먼저 병합된 다음 레이어가 추가됩니다. 이 새 레이어는 전체 교육 데이터 세트에 적용됩니다.
자세히 알아보기: TensorFlow란 무엇이며 Keras가 TensorFlow와 함께 신경망을 생성하는 방법은 무엇입니까?
모든 레이어에 정확히 하나의 입력 텐서와 하나의 출력 텐서가 있는 일반 레이어 스택으로 작업하는 데 사용되는 순차 모델을 구축하는 데 도움이 되는 Keras Sequential API를 사용할 것입니다.
Google Colaboratory를 사용하여 아래 코드를 실행하고 있습니다. Google Colab 또는 Colaboratory는 브라우저를 통해 Python 코드를 실행하는 데 도움이 되며 구성이 필요 없고 GPU(그래픽 처리 장치)에 대한 무료 액세스가 필요합니다. Colaboratory는 Jupyter Notebook을 기반으로 구축되었습니다.
print("Adding dense layer on top") model.add(layers.Flatten()) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(10)) print("Complete architecture of the model") model.summary()
코드 크레딧:https://www.tensorflow.org/tutorials/images/cnn
출력
Adding dense layer on top Complete architecture of the model Model: "sequential_1" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_3 (Conv2D) (None, 30, 30, 32) 896 _________________________________________________________________ max_pooling2d_2 (MaxPooling2 (None, 15, 15, 32) 0 _________________________________________________________________ conv2d_4 (Conv2D) (None, 13, 13, 64) 18496 _________________________________________________________________ max_pooling2d_3 (MaxPooling2 (None, 6, 6, 64) 0 _________________________________________________________________ conv2d_5 (Conv2D) (None, 4, 4, 64) 36928 _________________________________________________________________ flatten (Flatten) (None, 1024) 0 _________________________________________________________________ dense (Dense) (None, 64) 65600 _________________________________________________________________ dense_1 (Dense) (None, 10) 650 ================================================================= Total params: 122,570 Trainable params: 122,570 Non-trainable params: 0 _________________________________________________________________
설명
- 모델을 완성하기 위해 컨볼루션 기반(모양 (4, 4, 64))의 마지막 출력 텐서는 분류를 수행하기 위해 하나 이상의 Dense 레이어에 제공됩니다.
- 밀도가 높은 레이어는 벡터(1D)를 입력으로 사용하고 현재 출력은 3D 텐서입니다.
- 다음으로 3D 출력이 1D로 평면화되고 그 위에 하나 이상의 Dense 레이어가 추가됩니다.
- CIFAR에는 10개의 출력 클래스가 있으므로 10개의 출력이 있는 최종 Dense 레이어가 추가됩니다.
- (4, 4, 64) 출력은 두 개의 Dense 레이어를 거치기 전에 (1024) 모양의 벡터로 병합됩니다.