【发布时间】:2015-04-16 15:51:25
【问题描述】:
我试图理解为什么我的算法的准确性突然发生了巨大的变化。当我发现在标准化我的 4 维训练/测试集时只使用 3 个索引时,我做了一个小的更改,我添加了第四个 :。现在我很好奇 - 下面的旧/新代码会做同样的事情吗?如果不是,那么仅使用 3 个索引对 4 维数组进行索引如何工作?
旧:
# standardize all non-binary variables
channels = 14 # int(X.shape[1])
mu_f = np.zeros(shape=channels)
sigma_f = np.zeros(shape=channels)
for i in range(channels):
mu_f[i] = np.mean(X_train[:,i,:])
sigma_f[i] = np.std(X_train[:,i,:])
for i in range(channels):
X_train[:, i, :] -= mu_f[i]
X_test[:, i, :] -= mu_f[i]
if (sigma_f[i] != 0):
X_train[:, i, :] /= sigma_f[i]
X_test[:, i, :] /= sigma_f[i]
新功能:
# standardize all non-binary variables
channels = 14
mu_f = np.zeros(shape=channels)
sigma_f = np.zeros(shape=channels)
for i in range(channels):
mu_f[i] = np.mean(X_train[:,i,:,:])
sigma_f[i] = np.std(X_train[:,i,:,:])
for i in range(channels):
X_train[:, i, :, :] -= mu_f[i]
X_test[:, i, :, :] -= mu_f[i]
if (sigma_f[i] != 0):
X_train[:, i, :, :] /= sigma_f[i]
X_test[:, i, :, :] /= sigma_f[i]
【问题讨论】:
-
您想知道它为什么变慢或如何加快速度吗? ...因为几乎所有内容都可以在您的代码中进行矢量化,这应该会提高性能...
-
那太好了!如果您在这里添加答案 stackoverflow.com/questions/29418031/… 会更有意义。
-
回答你的问题,是的,他们都做同样的事情。您实际上可以省略所有尾随
:并且仍然会得到相同的结果。