我有一个包含2d图像的numpy数组X。 numpy数组尺寸为(1000,60,40)
(1000 = img号)。
我想将此数组提供给我的模型,但要求尺寸为
(1000,60,40,1)
(为通道数添加了1)。
所以我通过
重塑了数组的形状Y=X.reshape(1000,60,40,1)
由于我有错误的预测,我通过重塑变形数组来检查它是否与我的原始img相同, 我这样做是
Z=Y.reshape(1000,60,40)
然后我将它们另存为PNG
for i in range(1000):
misc.imsave('img_rereshaped'+str(i)+'.png',Z[i])
它提供了一些png文件作为输出,但它们与X numpy数组中的原始文件不同。
我是用错误的方式重塑还是重塑更改输入数据,然后重塑重塑后的数据会得到与原始数据不同的结果?
答案 0 :(得分:0)
要测试重塑是否引起问题,最好在不涉及其他misc.imsave()
等潜在错误的情况下进行测试。
运行类似的内容:
import numpy as np
a = np.random.rand(10,3)
b = np.reshape(a, [10, 3, 1])
c = np.reshape(b, [10, 3])
print(np.sum(c - a))
您将看到使用重塑来回移动不会造成问题。 可能是您未正确使用PNG保存。例如,该功能可能需要3个通道。尝试使用matplotlib在本地进行绘制。