79273101

Date: 2024-12-11 20:35:22
Score: 2
Natty:
Report link

Chat gpt solved it:

import tensorflow as tf
from tensorflow import keras

# Callback personalizado
class ExponentialLearningRate(keras.callbacks.Callback):
    def __init__(self, factor):
        super().__init__()
        self.factor = factor
        self.rates = []
        self.losses = []

    def on_batch_end(self, batch, logs=None):
        logs = logs or {}
        self.losses.append(logs.get("loss", None))

        # Obtener el valor de learning_rate y asegurarnos de que sea un número
        lr = self.model.optimizer.learning_rate
        if isinstance(lr, tf.Variable):
            lr = lr.numpy()  # Convertir a valor numérico si es un tf.Variable

        # Registrar la tasa de aprendizaje
        self.rates.append(lr)

        # Actualizar el learning rate
        if isinstance(lr, (float, int)):
            new_lr = lr * self.factor
            self.model.optimizer.learning_rate.assign(new_lr)  # Modificar learning_rate

# Modelo simple
model = keras.models.Sequential([
    keras.layers.Flatten(input_shape=[28, 28]),
    keras.layers.Dense(300, activation="relu"),
    keras.layers.Dense(100, activation="relu"),
    keras.layers.Dense(10, activation="softmax")
])

# Compilar modelo
model.compile(
    loss="sparse_categorical_crossentropy",
    optimizer=keras.optimizers.SGD(learning_rate=1e-3),
    metrics=["accuracy"]
)

# Crear el callback
expon_lr = ExponentialLearningRate(factor=1.005)

# Ajustar modelo
history = model.fit(
    X_train, y_train,
    epochs=1,
    validation_data=(X_valid, y_valid),
    callbacks=[expon_lr]
)

Reasons:
  • Blacklisted phrase (2): Crear
  • Long answer (-1):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (1):
Posted by: Jjvvrr