0

我有一个4D numpy array. 我正在尝试标准化它的值,因为我需要从中减去一些值,但操作正在添加值。

请帮忙

print(X_train.shape)
print(X_train[0][0][0])
print(X_train[0][0][0]-128)

它的输出是:

(34799, 32, 32, 3)

[28 25 24]

[156 153 152]

不应该吗?

[-100,-103,-102]

请让我知道我做错了什么。我是新手numpy

4

1 回答 1

1

它是一个 4 维数组的事实不是这里的重点。

你的问题出在那个 numpy 数组的数据类型上。例如,如果它是numpy.uint8(无符号字节,即只允许 [0,255] 中的值),那么从 28 中减去 128 将得到 156... :)

尝试:print (X_train.dtype)查看与您的 numpy 数组关联的数据类型。

如果是这种情况,请考虑将其转换为其他数据类型,例如X_train = X_train.astype(numpy.int16),或简单地转换为numpy.int8,具体取决于您对数据的期望。

于 2018-03-25T05:30:35.467 回答