gpt4 book ai didi

python - Keras Conv2D 输入形状

转载 作者:太空宇宙 更新时间:2023-11-04 02:00:25 27 4
gpt4 key购买 nike

我正在为我的 CNN 模型使用 Keras。在该模型中,我正在使用图像对其进行训练。我的图像是 256*256 的形状。但是我把它训练成 64*64。当我将图像调整为 64*64 并再次训练时,我的准确率急剧下降。我错过了什么?

当我将 Convolution2D 输入形状排列为

classifier.add(Convolution2D(32,3,3,input_shape = (256,256), activation ='relu'))

这需要很多时间。因此,我将 Convolution2D 安排为 classifier.add(Convolution2D(32,3,3,input_shape = (64,64), activation ='relu')) 并训练了我的第一个模型。它预测得很好。

当我将输入图像的形状调整为 64*64 并使用 Convolution2D 进行训练时

classifier.add(Convolution2D(32,3,3,input_shape = (64,64) 

我的准确率下降了。有什么问题?

这是代码

classifier = Sequential()
classifier.add(Convolution2D(32,3,3,input_shape = (64,64,3), activation ='relu'))
classifier.add(MaxPooling2D(pool_size=(2,2)))
classifier.add(Flatten())
classifier.fit_generator(
training_set,
steps_per_epoch=8000,
epochs=10,
validation_data=test_set,
validation_steps=800)

这是我的 reshape 代码

from PIL import Image
import os
path = 'TestForTrain2'
for file in os.listdir('TestForTrain2'):
img = Image.open(os.path.join('TestForTrain2', file))
width, height = img.size
stringName = str(file)
print(width," === ",height)
print(stringName)
f, e = os.path.splitext(path + file)
imResize = img.resize((64, 64), Image.ANTIALIAS)
imResize.save( stringName + '.jpg', 'JPEG', quality=90)

最佳答案

何时预处理:这可能是预处理的图像。我们只在需要时预处理数据,因为当我们预处理数据时,我们会丢失一些信息。如果我们在某些情况下不预处理我们的数据,那么算法可能需要时间来处理大值(不是预处理数据)。

  1. 当我们用于训练模型的资源较少时,我们将预处理数据
  2. 我们对数据进行预处理,因为它们在我们的数据中是非常大和非常小的值。比我们标准化它标准化它并在某个范围内获得我们的数据。喜欢 (0,1)
  3. 还有许多其他原因需要进行预处理。

但我们不会预处理所有数据。您首先了解数据的性质,然后对其进行预处理。

您的解决方案:现在您正在通过调整图像大小来预处理数据。通过将您的图像从 ((256,256)) 转换为 ((64,64)) 现在当您有大尺寸图像时,它们在您的图像中有更多的像素值,每个像素都会为我们提供一些信息。现在,当您调整图像大小时,您的像素就会减少,因此您的模型可用于分类的信息也会减少。但是当您不调整数据大小时,您的机器需要时间来处理您的图像。现在通过实验找到一些中间方法,你选择的尺寸将为你的模型提供足够的信息,机器将做更少的工作来处理它。试试(180*180)(164 *164) 一直往下走,直到你根据数据达到你要求的精度。

关于python - Keras Conv2D 输入形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55819254/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com