Huấn luyện mô hình tuyến tính theo lô (batch)
Trong bài tập này, bạn sẽ huấn luyện một mô hình hồi quy tuyến tính theo lô, tiếp tục từ nơi đã dừng ở bài trước. Ta sẽ đi qua tập dữ liệu theo từng lô và cập nhật các biến của mô hình, intercept và slope, sau mỗi bước. Cách làm này cho phép bạn huấn luyện với các tập dữ liệu quá lớn để chứa hoàn toàn trong bộ nhớ.
Lưu ý rằng hàm mất mát loss_function(intercept, slope, targets, features) đã được định nghĩa sẵn. Ngoài ra, keras đã được import và numpy có sẵn với tên np. Các biến có thể huấn luyện cần được đưa vào var_list theo đúng thứ tự chúng xuất hiện trong danh sách đối số của hàm mất mát.
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
- Dùng bộ tối ưu
.Adam(). - Nạp dữ liệu từ
'kc_house_data.csv'theo lô vớichunksizelà 100. - Trích cột
pricetừbatch, chuyển thành mảngnumpykiểu float 32-bit và gán vàoprice_batch. - Hoàn thiện hàm mất mát, điền danh sách các biến có thể huấn luyện và thực hiện tối ưu hóa (minimization).
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.
# Initialize Adam optimizer
opt = keras.optimizers.____
# Load data in batches
for batch in pd.read_csv('____', ____=____):
size_batch = np.array(batch['sqft_lot'], np.float32)
# Extract the price values for the current batch
price_batch = np.array(batch['____'], np.____)
# Complete the loss, fill in the variable list, and minimize
opt.minimize(lambda: loss_function(____, slope, price_batch, size_batch), var_list=[intercept, ____])
# Print trained parameters
print(intercept.numpy(), slope.numpy())