НачатьНачать бесплатно

Обучение линейной модели на батчах

В этом упражнении мы будем обучать линейную регрессию на батчах, продолжая с того места, где остановились в предыдущем упражнении. Для этого мы будем проходить по набору данных батч за батчем и обновлять переменные модели — 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())
Редактировать и запускать код