TensorFlow là framework ML của Google. Keras là API deep learning Python chạy trên TensorFlow. Functional API hỗ trợ đa đầu vào/đầu ra, topo không tuyến tính.
Sử dụng Google Colab. Code nhúng từng từ trong tiêu đề/thân bài thành vector 64 chiều, sau đó dùng LSTM nén thành vector đơn, kết hợp với tags để dự đoán priority và department:
Ví dụ
print("Số lượng tag duy nhất")
num_tags = 12
print("Kích thước từ vựng khi tiền xử lý văn bản")
num_words = 10000
print("Số lớp cho dự đoán")
num_classes = 4
title_input = keras.Input(shape=(None,), name="title")
print("Chuỗi số nguyên độ dài biến đổi")
body_input = keras.Input(shape=(None,), name="body")
tags_input = keras.Input(shape=(num_tags,), name="tags")
print("Nhúng mỗi từ trong tiêu đề thành vector 64 chiều")
title_features = layers.Embedding(num_words, 64)(title_input)
print("Nhúng mỗi từ trong thân bài thành vector 64 chiều")
body_features = layers.Embedding(num_words, 64)(body_input)
print("Nén chuỗi vector nhúng thành vector 128 chiều đơn")
title_features = layers.LSTM(128)(title_features)
print("Nén chuỗi vector nhúng thành vector 32 chiều đơn")
body_features = layers.LSTM(32)(body_features)
print("Gộp các đặc trưng bằng cách nối (concatenate)")
x = layers.concatenate([title_features, body_features, tags_input])
print("Dùng logistic regression dự đoán đặc trưng")
priority_pred = layers.Dense(1, name="priority")(x)
department_pred = layers.Dense(num_classes, name="class")(x)
print("Khởi tạo mô hình dự đoán priority và class")
model = keras.Model(
inputs=[title_input, body_input, tags_input],
outputs=[priority_pred, department_pred],
)
Nguồn: TensorFlow Guide
Đầu ra
Số lượng tag duy nhất Kích thước từ vựng khi tiền xử lý văn bản Số lớp cho dự đoán Chuỗi số nguyên độ dài biến đổi Nhúng mỗi từ trong tiêu đề thành vector 64 chiều Nhúng mỗi từ trong thân bài thành vector 64 chiều Nén chuỗi vector nhúng thành vector 128 chiều đơn Nén chuỗi vector nhúng thành vector 32 chiều đơn Gộp các đặc trưng bằng cách nối (concatenate) Dùng logistic regression dự đoán đặc trưng Khởi tạo mô hình dự đoán priority và class
Giải thích
- Functional API làm việc được với nhiều đầu vào/đầu ra (Sequential API không thể).