【发布时间】:2020-11-15 13:44:48
【问题描述】:
我有一个脚本可以从图像创建泡菜文件。在倾倒之前,我正在对图像进行标准化,如下所示:
mu = np.mean(all_data.astype(np.float32), 0)
print("mu:", mu)
sigma = np.std(all_data.astype(np.float32), 0)
for device_id in range(400):
X_train[device_id] = np.array(X_train[device_id])
X_test[device_id] = np.array(X_test[device_id])
for device_id in range(400):
X_train[device_id] = (X_train[device_id].astype(np.float32) - mu) / (sigma + 0.001)
X_test[device_id] = (X_test[device_id].astype(np.float32) - mu) / (sigma + 0.001)
X_train[device_id]=X_train[device_id].tolist()
X_test[device_id] = X_test[device_id].tolist()
return X_train, y_train, X_test, y_test
当我运行脚本时,我收到以下错误:
File "generate_data_mata_learning.py", line 80, in generate_dataset
X_train[device_id] = (X_train[device_id].astype(np.float32) - mu) / (sigma + 0.001)
ValueError: operands could not be broadcast together with shapes (0,) (784,)
我猜这是由 numpy 数组引起的。但找不到解决办法。任何帮助将不胜感激。
【问题讨论】:
-
能否请您发布完整的代码,以便可以重现此问题?传递给此函数的
X_train和X_test的确切形状是什么?您可能需要使用导致此问题的示例输入发布完整功能。 -
另外,
X_train的每个元素是否具有相同的形状?如果是这样,可能有更好的方法来做到这一点。我猜X_train的每个元素都有不同的形状,这就是为什么你要单独处理它们。对吗? -
首先,欢迎来到 Stackoverflow。一个建议,请通过社区指南发布一个好问题。这很重要,因为如果您的代码不遵循准则,它往往会被社区忽略。具体来说,您的代码需要可重现(有人应该能够复制粘贴您的代码,运行它并重现错误)。您已经提供了完整 github 存储库的链接,不幸的是,这也不是很有帮助,因为如果有人必须克隆大量存储库来重现您的问题,他们不太可能这样做。
-
如果您需要帮助,您需要将问题减少到仍然导致问题的最小组件。这个过程很重要,因为这样做时,您可能会自己发现问题。在您提供的链接中,该函数依赖于一个名为
raw/1623_characters的目录来运行该函数。因此,不幸的是,该文件也不是独立的。请参阅本文的“帮助他人重现问题”部分。 stackoverflow.com/help/how-to-ask
标签: python numpy image-processing pickle