Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Biên dịch (compile) mô hình TensorFlow với Python

Trước khi huấn luyện, mô hình TensorFlow cần được biên dịch với optimizer, loss function, và metrics.

Mã ví dụ

print("Đang biên dịch mô hình...")
model.compile(
    optimizer='adam',
    loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
    metrics=['accuracy']
)

print("Kiến trúc mô hình:")
model.summary()

Kết quả

Đang biên dịch mô hình
Kiến trúc mô hình
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
_________________________________________________________________

Giải thích

  • optimizer='adam': Adam optimizer (adaptive moment estimation), phổ biến, hiệu quả.
  • loss=SparseCategoricalCrossentropy(from_logits=True): Hàm mất mát cho phân loại đa lớp với nhãn integer (0,1,2...). from_logits=True nghĩa là mô hình xuất ra logits (chưa qua softmax).
  • metrics=['accuracy']: Theo dõi độ chính xác khi train/validate.
  • model.summary(): In cấu trúc mô hình, output shape, số tham số.
  • Mô hình: 3 khối Conv2D + MaxPooling, Flatten, Dense(128), Dense(5 classes).