Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Numpy将图像作为数组添加到更大的数组中_Python_Arrays_Numpy_Conv Neural Network - Fatal编程技术网

Python 使用Numpy将图像作为数组添加到更大的数组中

Python 使用Numpy将图像作为数组添加到更大的数组中,python,arrays,numpy,conv-neural-network,Python,Arrays,Numpy,Conv Neural Network,我正在尝试使用Numpy创建一组图像,将其输入图像分类神经网络。当我将图像放入数组时,它是三维的,但是当我使用np.append将它添加到所有图像的数组中时,形状是631800003。为什么会发生这种情况?我该如何解决?或者我应该以其他方式加载图像 以下是我的变量定义单元格代码: normal=np.array([]) normalSet=np.array([]) badSet=np.array([]) Labels=np.array([]) Training_data=np.array([])

我正在尝试使用Numpy创建一组图像,将其输入图像分类神经网络。当我将图像放入数组时,它是三维的,但是当我使用np.append将它添加到所有图像的数组中时,形状是631800003。为什么会发生这种情况?我该如何解决?或者我应该以其他方式加载图像

以下是我的变量定义单元格代码:

normal=np.array([])
normalSet=np.array([])
badSet=np.array([])
Labels=np.array([])
Training_data=np.array([])
验证集=[]
过程数据=真
ramCheck=0
以及图像加载:

如果处理数据:
对于os.listdir('train/NORMAL/')中的图像:
正常=imread('列车/正常/'+图像)
normalSet=np.append(normal,normalSet)
Labels=np.append(标签,0)
validationSet.append(正常)
对于os.listdir('train/PNEUMONIA/')中的图像:
bad=imread('列车/肺炎/'+图像)
badSet=np.append(badSet,bad)
Labels=np.append(标签,1)
validationSet.append(错误)
打印(“完成!”)
Training_Data=np.append(badSet,normalSet)
np.save(“TrainingData.npy”,Training\u数据)
np.save(“TrainingLabels.npy”,Labels)
其他:
培训数据=np.load(“TrainingData.npy”)
标签=np.load(“TrainingLabels.npy”)

将列表添加到列表中比将列表更改为numpy数组要容易得多,因为numpy数组具有正确的尺寸,可以将其输入神经网络

normalSet = []
labels = []

for image in os.listdir('train/NORMAL/'):

    normal = imread('train/NORMAL/'+ image)

    normalSet.append(normal)
    validationSet.append(normal)
    labels.append(0)

normalSet = np.array(normalSet)
labels = np.array(labels)

您没有阅读
np.append
文档(或者至少没有仔细阅读)。在没有轴平行仪的情况下,它会展平所有输入,生成一维阵列。但一般来说,以迭代方式追加或串联不是一个好主意。获取数组列表,并通过调用
np.array
串联
系列中的一个来连接它们。并确保您的图像都具有相同的形状。在交互式会话中使用小示例测试
np.append
等函数也是一个好主意。因此,我会这样做,但当我将这两个数组附加在一起时,它是(234900100,6)instad of(468900100,3)因为共有468张图片。哦,我只是需要先将它们重新组合为一个列表,然后再将它们更改为numpy数组,这样你就可以完成这项工作了。