0

我正在尝试将 100 个图像转换为一个 numpy 数组,然后将其输入到我的神经网络中。我的 NN 训练数据是 4D numpy 数组(图像数量,32、32、3)。当使用下面的代码读取图像并输入 model.predict() 时,我收到以下错误。

“检查输入时出错:预期 conv2d_input 有 4 个维度,但得到了形状为 (100, ) 的数组”

这是我写的代码:

'''new_data = []
files = glob.glob (r"load images")
for myFile in files:
    #print(myFile)
    image = cv2.imread(myFile)
    new_data.append(np.asarray(image))
    
#new_data = np.array(new_data)
print('new_data shape:', np.array(new_data).shape)'''

输出为“new_data 形状:(100,)”

我期望 new_data 尺寸为(100、32、32、3)。请帮助如何实现这一目标。

谢谢, Mrinal

4

2 回答 2

1

感谢所有回复。问题是图像大小不同。在我将它们全部调整为 32*32 并执行 np.reshape() 之后。下面是修改后的代码

files = glob.glob (r"files\*.png*")
for myFile in files:
    image = cv2.imread(myFile)
    img = cv2.resize(image , (32 , 32)) # Reshaping the testing images to 32*32
    new_data.append(img)



new_data = np.reshape(new_data, (len(new_data),32,32,3))   
于 2020-09-21T04:58:46.337 回答
0

您可以为此直接使用 PILLOW 库

from PIL import Image
from numpy import asarray

image = Image.open('kolala.jpeg')
# convert image to numpy array
data = asarray(image)
print(type(data))

print(data.shape)


image2 = Image.fromarray(data)
print(type(image2))
于 2020-09-19T11:05:51.307 回答