def calc_metrics(self, data_gen, history, dataset, logs):
y_true = []
predictions = []
for i in range(data_gen.steps):
if self.verbose == 1:
print "\r\tdone {}/{}".format(i, data_gen.steps),
(x,y) = next(data_gen)
pred = self.model.predict(x, batch_size=self.batch_size)
if isinstance(x, list) and len(x) == 2: # deep supervision
for m, t, p in zip(x[1].flatten(), y.flatten(), pred.flatten()):
if np.equal(m, 1):
y_true.append(t)
predictions.append(p)
else:
y_true += list(y.flatten())
predictions += list(pred.flatten())
print "\n"
predictions = np.array(predictions)
predictions = np.stack([1-predictions, predictions], axis=1)
ret = metrics.print_metrics_binary(y_true, predictions)
for k, v in ret.iteritems():
logs[dataset + '_' + k] = v
history.append(ret)
评论列表
文章目录