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

TensorFlow: การคอมไพล์โมเดล (Compile) ด้วย Python

โมเดลใน TensorFlow ต้องคอมไพล์ก่อนฝึก โดยระบุ optimizer, loss function, และ metrics

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

print("กำลังคอมไพล์โมเดล...")
model.compile(
    optimizer='adam',
    loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
    metrics=['accuracy']
)

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

ผลลัพธ์ตัวอย่าง

กำลังคอมไพล์โมเดล
สถาปัตยกรรมโมเดล
Model: "sequential_2"
_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
rescaling_1 (Rescaling)      (None, 180, 180, 3)       0
conv2d_6 (Conv2D)            (None, 180, 180, 16)      448
max_pooling2d_4 (MaxPooling2 (None, 90, 90, 16)        0
conv2d_7 (Conv2D)            (None, 90, 90, 32)        4640
max_pooling2d_5 (MaxPooling2 (None, 45, 45, 32)        0
conv2d_8 (Conv2D)            (None, 45, 45, 64)        18496
max_pooling2d_6 (MaxPooling2 (None, 22, 22, 64)        0
flatten_1 (Flatten)          (None, 30976)             0
dense_2 (Dense)              (None, 128)               3965056
dense_3 (Dense)              (None, 5)                 645
=================================================================
Total params: 3,989,285
Trainable params: 3,989,285
Non-trainable params: 0
_________________________________________________________________

คำอธิบาย

  • optimizer='adam': Adam optimizer ปรับ learning rate อัตโนมัติ ยอดนิยม
  • loss=SparseCategoricalCrossentropy: Loss function สำหรับ classification หลายคลาส (label เป็น integer)
  • from_logits=True: โมเดลไม่มี softmax activation ท้ายสุด loss จะคำนวณ softmax เอง (เสถียรทางตัวเลขกว่า)
  • metrics=['accuracy']: แสดง accuracy ระหว่างฝึก
  • model.summary(): แสดงโครงสร้าง layer, output shape, จำนวน parameters