Entrenar un modelo lineal por lotes
En este ejercicio, entrenaremos un modelo de regresión lineal por lotes, empezando donde lo dejamos en el ejercicio anterior. Lo haremos recorriendo el conjunto de datos por lotes y actualizando las variables del modelo, intercept
y slope
, después de cada paso. Este enfoque nos permitirá entrenarnos con conjuntos de datos que, de otro modo, serían demasiado grandes para mantenerlos en memoria.
Ten en cuenta que la función de pérdida,loss_function(intercept, slope, targets, features)
, se ha definido por ti. Además, se ha importado para ti keras
y numpy
está disponible como np
. Las variables entrenables deben introducirse en var_list
en el orden en que aparecen como argumentos de la función de pérdida.
Este ejercicio forma parte del curso
Introducción a TensorFlow en Python
Instrucciones de ejercicio
- Utiliza el optimizador
.Adam()
. - Carga los datos de
'kc_house_data.csv'
en lotes con unchunksize
de 100. - Extrae la columna
price
debatch
, conviértela en una matriznumpy
de tipo float de 32 bits, y asígnala aprice_batch
. - Completa la función de pérdida, rellena la lista de variables entrenables y realiza la minimización.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# 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())