def normalize(data, mean, std):
# transforms.ToTensor, transforms.Normalize的numpy 实现
if not isinstance(mean, np.ndarray):
mean = np.array(mean)
if not isinstance(std, np.ndarray):
std = np.array(std)
if mean.ndim == 1:
mean = np.reshape(mean, (-1, 1, 1))
if std.ndim == 1:
std = np.reshape(std, (-1, 1, 1))
_max = np.max(abs(data))
_div = np.divide(data, _max) # i.e. _div = data / _max
_sub = np.subtract(_div, mean) # i.e. arrays = _div - mean
arrays = np.divide(_sub, std) # i.e. arrays = (_div - mean) / std
arrays = np.transpose(arrays, (2, 0, 1))
return arrays
12-25