python训练模型损失值6000多_获取每个训练实例Keras的损失值

在组合了来自here和here的资源之后,我得到了以下代码。也许它会帮助你。其思想是,可以重写keras中的Callbacks类,然后使用on_batch_end方法检查keras将自动提供给该方法的logs中的损失值。

这是一个神经网络的工作代码,它内置了特定的函数。也许你可以从这里开始-import numpy as np

import pandas as pd

import seaborn as sns

import os

import matplotlib.pyplot as plt

import time

from sklearn.preprocessing import StandardScaler

from sklearn.model_selection import train_test_split

import keras

from keras.models import Sequential

from keras.layers import Dense

from keras.callbacks import Callback

# fix random seed for reproducibility

seed = 155

np.random.seed(seed)

# load pima indians dataset

# download directly from website

dataset = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data",

header=None).values

X_train, X_test, Y_train, Y_test = train_test_split(dataset[:,0:8], dataset[:,8], test_size=0.25, random_state=87)

class NBatchLogger(Callback):

def __init__(self,display=100):

'''

display: Number of batches to wait before outputting loss

'''

self.seen = 0

self.display = display

def on_batch_end(self,batch,logs={}):

self.seen += logs.get('size', 0)

if self.seen % self.display == 0:

print('\n{0}/{1} - Batch Loss: {2}'.format(self.seen,self.params['samples'],

logs.get('loss')))

out_batch = NBatchLogger(display=1000)

np.random.seed(seed)

my_first_nn = Sequential() # create model

my_first_nn.add(Dense(5, input_dim=8, activation='relu')) # hidden layer

my_first_nn.add(Dense(1, activation='sigmoid')) # output layer

my_first_nn.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

my_first_nn_fitted = my_first_nn.fit(X_train, Y_train, epochs=1000, verbose=0, batch_size=128,

callbacks=[out_batch], initial_epoch=0)

如果你想要这样的东西,请告诉我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值