Định nghĩa mô hình có nhiều đầu vào
Trong một số trường hợp, API sequential sẽ không đủ linh hoạt cho kiến trúc mô hình bạn muốn và bạn sẽ cần dùng API functional. Chẳng hạn, nếu bạn muốn huấn luyện đồng thời hai mô hình với kiến trúc khác nhau, bạn sẽ cần dùng API functional để làm điều này. Trong bài tập này, bạn sẽ thấy cách thực hiện. Chúng ta cũng sẽ dùng phương thức .summary() để xem kiến trúc của mô hình kết hợp.
Lưu ý keras đã được import từ tensorflow cho bạn. Ngoài ra, các lớp đầu vào của mô hình thứ nhất và thứ hai đã được định nghĩa lần lượt là m1_inputs và m2_inputs. Lưu ý rằng hai mô hình có cùng kiến trúc, nhưng một mô hình dùng kích hoạt sigmoid ở lớp đầu tiên còn mô hình kia dùng relu.
Bài tập này là một phần của khóa học
Nhập môn TensorFlow bằng Python
Hướng dẫn bài tập
- Truyền lớp đầu vào của mô hình 1 vào lớp thứ nhất của nó và truyền lớp thứ nhất của mô hình 1 vào lớp thứ hai.
- Truyền lớp đầu vào của mô hình 2 vào lớp thứ nhất của nó và truyền lớp thứ nhất của mô hình 2 vào lớp thứ hai.
- Dùng phép toán
add()để kết hợp các lớp thứ hai của mô hình 1 và mô hình 2. - Hoàn thiện định nghĩa mô hình theo API functional.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# For model 1, pass the input layer to layer 1 and layer 1 to layer 2
m1_layer1 = keras.layers.Dense(12, activation='sigmoid')(____)
m1_layer2 = keras.layers.Dense(4, activation='softmax')(____)
# For model 2, pass the input layer to layer 1 and layer 1 to layer 2
m2_layer1 = keras.layers.Dense(12, activation='relu')(____)
m2_layer2 = keras.layers.Dense(4, activation='softmax')(____)
# Merge model outputs and define a functional model
merged = keras.layers.add([m1_layer2, ____])
model = keras.Model(inputs=[____, m2_inputs], outputs=____)
# Print a model summary
print(model.summary())