Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

TensorFlow: เพิ่ม Dense Layer บนโมเดล CNN ด้วย Python

เพิ่ม Fully Connected (Dense) layers บน Convolutional base เพื่อการจำแนกประเภท (Classification)

โค้ดตัวอย่าง

print("เพิ่ม Dense layer บนสุด...")
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10))

print("สถาปัตยกรรมโมเดลสมบูรณ์:")
model.summary()

ผลลัพธ์

เพิ่ม Dense layer บนสุด
สถาปัตยกรรมโมเดลสมบูรณ์
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
_________________________________________________________________

คำอธิบาย

  • Conv base output: (4, 4, 64) - 3D tensor จาก convolutional layers
  • Flatten(): ราบแบนเป็น vector ขนาด 1024 (4*4*64)
  • Dense(64, relu): Hidden layer 64 units
  • Dense(10): Output layer 10 units (CIFAR-10 มี 10 คลาส) ไม่มี activation (logits)
  • Total parameters: ~122K - ค่อนข้างเล็ก สำหรับ CIFAR-10
  • Dense layers ใช้เวกเตอร์ 1D เป็น input ต้อง Flatten ก่อนเสมอ