Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

198
Visualizações
Cómo registrar val_loss y loss por lote en keras

Estoy usando la función de devolución de llamada en keras para registrar la loss y val_loss por época, pero me gustaría hacer lo mismo pero por lote. Encontré una función de devolución de llamada llamada on_batch_begin(self,batch,log={}) , pero no estoy seguro de cómo usarla.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Aquí hay un ejemplo de devolución de llamada personalizada. Siguiendo y modificando un ejemplo de aquí :

 class LossHistory(keras.callbacks.Callback): def on_train_begin(self, logs={}): self.losses = [] self.val_losses = [] def on_batch_end(self, batch, logs={}): self.losses.append(logs.get('loss')) self.val_losses.append(logs.get('val_loss')) model = Sequential() model.add(Dense(10, input_dim=784, init='uniform')) model.add(Activation('softmax')) model.compile(loss='categorical_crossentropy', optimizer='rmsprop') history = LossHistory() model.fit(X_train, Y_train, batch_size=128, nb_epoch=20, verbose=0, validation_split=0.1, callbacks=[history]) print history.losses # outputs ''' [0.66047596406559383, 0.3547245744908703, ..., 0.25953155204159617, 0.25901699725311789] ''' print history.val_losses
over 4 years ago · Santiago Trujillo Relatório

0

import numpy as np import matplotlib.pyplot as plt import keras class LossHistory(keras.callbacks.Callback): def on_train_begin(self, logs={}): self.history = {'loss':[],'val_loss':[]} def on_batch_end(self, batch, logs={}): self.history['loss'].append(logs.get('loss')) def on_epoch_end(self, epoch, logs={}): self.history['val_loss'].append(logs.get('val_loss')) history = LossHistory() model = keras.Sequential() model.add(keras.layers.Dense(32, activation='relu', input_dim=100)) model.add(keras.layers.Dense(1, activation='sigmoid')) model.compile(optimizer='rmsprop', loss='binary_crossentropy') # Generate dummy data import numpy as np data = np.random.random((1000, 100)) labels = np.random.randint(2, size=(1000, 1)) # Train the model, iterating on the data in batches of 32 samples model.fit(data, labels, epochs=10, batch_size=32, validation_split=0.2, callbacks=[history]) # Plot the history y1=history.history['loss'] y2=history.history['val_loss'] x1 = np.arange( len(y1)) k=len(y1)/len(y2) x2 = np.arange(k,len(y1)+1,k) fig, ax = plt.subplots() line1, = ax.plot(x1, y1, label='loss') line2, = ax.plot(x2, y2, label='val_loss') plt.show()
over 4 years ago · Santiago Trujillo Relatório

0

De la documentación de tf.keras parece que on_batch_end no incluye val_loss

on_batch_end: los registros incluyen loss y, opcionalmente, acc (si el monitoreo de precisión está habilitado).

como se menciona aquí: https://www.tensorflow.org/api_docs/python/tf/keras/callbacks/Callback

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda