model_metrics = []
inhouse_metrics = []
t0 = time()
for i in range(validation_steps): # 分成很多个batch进行预测估计的,为了减少validation耗时,在计算validation部分数据
# validation_steps = val_samples//batch_size 为了防止内存OOM,所以要分batch预测
# if random.randint(0, 9) < 5: # 只计算20%的数据
# continue
X, GT = next(val_thre.get())
Y = multi_model.predict(X)
model_losses = [(np.sum((gt - y) ** 2) / gt.shape[0] / 2) for gt, y in zip(GT,Y)]
# 与模型定义时的loss保持一致,除以2的好处是,平方项的微分会出现2,抵消,可以减少乘法操作
mm = sum(model_losses)