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

Xây dựng mạng Conv1D 1 chiều cho phân loại văn bản với TensorFlow

Conv1D (Convolution 1D) áp dụng bộ lọc trượt trên chuỗi embedding để trích xuất đặc trưng n-gram, rất hiệu quả cho phân loại văn bản.

Định nghĩa mô hình Conv1D

print("Định nghĩa hàm xây dựng Conv1D 1 chiều")
def create_model(vocab_size, num_labels):
    model = tf.keras.Sequential([
        layers.Embedding(vocab_size, 64, mask_zero=True),
        layers.Conv1D(64, 5, padding="valid", activation="relu", strides=2),
        layers.GlobalMaxPooling1D(),
        layers.Dense(num_labels)
    ])
    return model

Kết quả

Định nghĩa hàm xây dựng Conv1D 1 chiều

Giải thích kiến trúc

  • Embedding(vocab_size, 64, mask_zero=True): Ánh xạ token index → vector 64-d. mask_zero=True bỏ qua padding (index 0) khi tính gradient.
  • Conv1D(64, 5, strides=2): 64 bộ lọc, kernel size 5 (n-gram 5 từ), stride 2 giảm chiều dài sequence 2 lần.
  • GlobalMaxPooling1D(): Lấy giá trị max trên chiều thời gian cho mỗi filter → vector 64-d cố định.
  • Dense(num_labels): Lớp phân loại cuối cùng, đầu ra logits cho 4 lớp (python, java, csharp, javascript).
  • Sử dụng Sequential API đơn giản, dễ đọc, dễ mở rộng.

Nguồn: TensorFlow Text Loading Tutorial