Lướt nhanh cơ bản TensorFlow 2.0

Xem trên TensorFlow.org Chạy trên Google Colab Xem mã nguồn trên GitHub Tải notebook

Lưu ý: Cộng đồng TensorFlow tại Việt Nam đã và đang dịch những tài liệu này từ nguyên bản tiếng Anh. Những bản dịch này được hoàn thiện dựa trên sự nỗ lực đóng góp từ cộng đồng lập trình viên sử dụng TensorFlow, và điều này có thể không đảm bảo được tính cập nhật của bản dịch đối với Tài liệu chính thức bằng tiếng Anh này. Nếu bạn có bất kỳ đề xuất nào nhằm cải thiện bản dịch này, vui lòng tạo Pull request đến kho chứa trên GitHub của tensorflow/docs-l10n. Để đăng ký dịch hoặc cải thiện nội dung bản dịch, các bạn hãy liên hệ và đặt vấn đề tại docs-vi@tensorflow.org.

Đây là một tệp notebook Google Colaboratory. Các chương trình Python sẽ chạy trực tiếp trong trình duyệt, giúp bạn dễ dàng tìm hiểu và sử dụng TensorFlow. Để làm theo giáo trình này, chạy notebook trên Google Colab bằng cách nhấp vào nút ở đầu trang.

  1. Trong Colab, kết nối đến Python runtime: Ở phía trên cùng bên phải của thanh menu, chọn CONNECT.
  2. Chạy tất cả các ô chứa mã trong notebook: Chọn Runtime > Run all.

Tải và cài đặt TensorFlow 2.0 RC. Import TensorFlow vào chương trình:

# Install TensorFlow

import tensorflow as tf

Load và chuẩn bị tập dữ liệu MNIST. Chuyển kiểu dữ liệu của các mẫu từ số nguyên sang số thực dấu phẩy động:

mnist = tf.keras.datasets.mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

Xây dựng mô hình tf.keras.Sequential bằng cách xếp chồng các layers. Chọn trình tối ưu hoá (optimizer) và hàm thiệt hại (loss) để huấn luyện:

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

Huấn luyện và đánh giá mô hình:

model.fit(x_train, y_train, epochs=5)

model.evaluate(x_test,  y_test, verbose=2)
Epoch 1/5
1875/1875 [==============================] - 3s 2ms/step - loss: 0.3004 - accuracy: 0.9130
Epoch 2/5
1875/1875 [==============================] - 3s 2ms/step - loss: 0.1441 - accuracy: 0.9570
Epoch 3/5
1875/1875 [==============================] - 3s 2ms/step - loss: 0.1085 - accuracy: 0.9668
Epoch 4/5
1875/1875 [==============================] - 3s 2ms/step - loss: 0.0897 - accuracy: 0.9727
Epoch 5/5
1875/1875 [==============================] - 3s 2ms/step - loss: 0.0735 - accuracy: 0.9766
313/313 - 0s - loss: 0.0718 - accuracy: 0.9780

[0.07178828865289688, 0.9779999852180481]

Mô hình phân loại ảnh này, sau khi được huấn luyện bằng tập dữ liệu trên, đạt độ chính xác (accuracy) ~98%. Để tìm hiểu thêm, bạn có thể đọc Giáo trình TensorFlow.