以小批次訓練線性模型
在這個練習中,我們會以小批次方式訓練線性迴歸模型,從上一個練習結束的地方接續進行。我們會逐批走訪資料集,並在每一步之後更新模型變數 intercept 和 slope。這種作法能讓我們在資料集過大、無法一次載入記憶體時,仍然完成訓練。
請注意,損失函式 loss_function(intercept, slope, targets, features) 已經替你定義好了。此外,keras 已為你匯入,numpy 也已以 np 名稱可用。可訓練變數應依它們在損失函式引數中出現的順序填入 var_list。
本練習屬於課程
Python 的 TensorFlow 入門
練習說明
- 使用
.Adam()最佳化器。 - 以
chunksize為 100 的小批次,從'kc_house_data.csv'載入資料。 - 從
batch中取出price欄位,轉換為 32 位元浮點型別的numpy陣列,並指定給price_batch。 - 完成損失函式、填入可訓練變數清單,然後執行最小化。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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())