gpt4 book ai didi

python - 使用 3 个索引对 4 维数组进行切片时会发生什么?

转载 作者:行者123 更新时间:2023-12-01 04:44:57 24 4
gpt4 key购买 nike

我试图理解为什么我的算法的准确性突然发生了巨大的变化。当我发现在标准化 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]

最佳答案

我不明白为什么额外的 : 会产生影响。当我对简单的 np.mean(X[:,1]) v np.mean(X,1,:,:] 进行时间测试时,情况并非如此等

至于plonser建议您可以对整个事情进行矢量化,关键是要意识到meanstd需要一些添加的参数。检查他们的文档并使用示例数组。

Xmean = np.mean(X,axis=(0,2,3),keepdims=True)
X -= Xmean
X /= Xmean

关于python - 使用 3 个索引对 4 维数组进行切片时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29679886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com