forked from tsinghua-fib-lab/DiskNet
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmetrics.py
30 lines (25 loc) · 1.19 KB
/
metrics.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import numpy as np
def MAE(y_true, y_pred, keep_step=False, keep_node=False):
if not keep_step and not keep_node:
return np.mean(np.abs(y_true - y_pred))
elif keep_step and not keep_node:
return np.mean(np.abs(y_true - y_pred), axis=(0,2,3))
elif not keep_step and keep_node:
return np.mean(np.abs(y_true - y_pred), axis=(0,1,3))
def MSE(y_true, y_pred, keep_step=False, keep_node=False):
if not keep_step and not keep_node:
return np.mean(np.square(y_true - y_pred))
elif keep_step and not keep_node:
return np.mean(np.square(y_true - y_pred), axis=(0,2,3))
elif not keep_step and keep_node:
return np.mean(np.abs(y_true - y_pred), axis=(0,1,3))
def RMSE(y_true, y_pred, keep_step=False):
if not keep_step:
return np.sqrt(np.mean(np.square(y_true - y_pred)))
else:
return np.sqrt(np.mean(np.square(y_true - y_pred), axis=(0,2,3)))
def NMSE(y_true, y_pred, keep_step=False):
if not keep_step:
return np.mean(np.square(y_true - y_pred)) / (np.mean(np.square(y_true)) + 1e-7)
else:
return np.mean(np.square(y_true - y_pred), axis=(0,2,3)) / (np.mean(np.square(y_true), axis=(0,2,3)) + 1e-7)