怎么找都找不到问题,我的 CustomCallback看起来是没写错啊
两个都用一样的validation dataset跟model,怎么val_accuracy差这么多?
Callbacks =[
checkpoint_callback(start_time),
CustomCallback(val_ds, result, files_path, class_names,start_time)]
model.fit(train_ds, epochs=40, verbose = 1, callbacks=Callbacks,validation_data=val_ds,steps_per_epoch=20)
class CustomCallback(tf.keras.callbacks.Callback):
def __init__(self, val_ds, result, files_path, class_names,start_time):
super(CustomCallback, self).__init__()
self.start_time = start_time
self.val_ds = val_ds
self.result = result
self.files_path = files_path
self.class_names = class_names
def get_map(self, pred_valid, epoch):
overkill_count = 0
leakage_count = 0
good_count = 0
bad_count = 0
same = 0
for i ,f in enumerate(self.files_path):
pred = self.class_names[np.argmax(pred_valid[i])]
label = self.result[f]['label']
if pred == label :
same += 1
if label == 'good':
good_count = good_count + 1
if pred != 'good':
overkill_count = overkill_count + 1
else:
bad_count = bad_count + 1
if pred == 'good':
leakage_count = leakage_count + 1