Обучение линейной модели на батчах
В этом упражнении мы будем обучать линейную регрессию на батчах, продолжая с того места, где остановились в предыдущем упражнении. Для этого мы будем проходить по набору данных батч за батчем и обновлять переменные модели — intercept и slope — после каждого шага. Такой подход позволяет работать с наборами данных, которые слишком велики, чтобы полностью загрузить их в память.
Обратите внимание, что функция потерь loss_function(intercept, slope, targets, features) уже определена за вас. Кроме того, библиотека keras импортирована заранее, а numpy доступна как np. Обучаемые переменные необходимо передать в var_list в том порядке, в котором они фигурируют в аргументах функции потерь.
Это упражнение является частью курса
Введение в TensorFlow на Python
Инструкции к упражнению
- Используйте оптимизатор
.Adam(). - Загрузите данные из файла
'kc_house_data.csv'батчами сchunksize, равным 100. - Извлеките столбец
priceизbatch, преобразуйте его в массивnumpyтипа 32-битного float и сохраните результат в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())