Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Tensorflow는 Python을 사용하여 맨 위에 조밀한 레이어를 추가하는 데 어떻게 사용할 수 있습니까?

<시간/>

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) 모양의 벡터로 병합됩니다.