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

Cách huấn luyện mô hình với Keras bằng Python

Keras là API học sâu (deep learning) viết bằng Python, chạy trên TensorFlow. Nó cung cấp giao diện cấp cao, hỗ trợ thử nghiệm nhanh, mở rộng tốt, chạy trên TPU/GPU, xuất mô hình ra web/mobile.

Functional API của Keras linh hoạt hơn Sequential API: hỗ trợ topo không tuyến tính, chia sẻ lớp, nhiều đầu vào/đầu ra. Mô hình học sâu là đồ thị acyclic có hướng (DAG) các lớp.

Sử dụng Google Colab (chạy Python trên trình duyệt, miễn phí GPU). Dưới đây là code huấn luyện mô hình trên bộ dữ liệu CIFAR-10:

Ví dụ

print("Đang vẽ mô hình")
keras.utils.plot_model(model, "my_resnet.png", show_shapes=True)

print("Chia dữ liệu thành tập huấn luyện và kiểm tra")
(x_train, y_train), (x_test, y_test) = keras.datasets.cifar10.load_data()

print("Chuyển đổi kiểu dữ liệu sang float")
x_train = x_train.astype("float32") / 255.0
x_test = x_test.astype("float32") / 255.0
y_train = keras.utils.to_categorical(y_train, 10)
y_test = keras.utils.to_categorical(y_test, 10)

print("Biên dịch mô hình")
model.compile(
    optimizer=keras.optimizers.RMSprop(1e-3),
    loss=keras.losses.CategoricalCrossentropy(from_logits=True),
    metrics=["acc"],
)

model.fit(x_train[:2000], y_train[:2000], batch_size=64, epochs=2, validation_split=0.2)

Nguồn: TensorFlow Guide

Đầu ra

Đang vẽ mô hình
Chia dữ liệu thành tập huấn luyện và kiểm tra
Downloading data from https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz
170500096/170498071 [==============================] - 2s 0us/step
Chuyển đổi kiểu dữ liệu sang float
Biên dịch mô hình
Epoch 1/2
25/25 [==============================] - 9s 332ms/step - loss: 2.3163 - acc: 0.1028 - val_loss: 2.2962 - val_acc: 0.1175
Epoch 2/2
25/25 [==============================] - 12s 492ms/step - loss: 2.3155 - acc: 0.1175 - val_loss: 2.2606 - val_acc: 0.1200
<tensorflow.python.keras.callbacks.History at 0x7f48d3ecfb00>

Giải thích

  • Chia dữ liệu thành tập huấn luyện và kiểm tra.
  • Chuyển kiểu dữ liệu sang float và chuẩn hóa.
  • Biên dịch mô hình bằng phương thức compile (optimizer, loss, metrics).
  • Huấn luyện bằng phương thức fit trên dữ liệu huấn luyện.