在Keras中基于CNN的图像分类期间,我丢失了RAM(Colab 12GB RAM)。
我的数据库:
用于训练的图像:一个zip文件中包含约3500张图像(所有类在一个文件夹中)。
训练图像的目标:一个csv文件。
要测试的图像:一个zip文件中包含约1500张图像(所有类在一个文件夹中)。
我没有得到测试图像的任何目标(一维阵列)。
我的方法: 1.制作x_train矩阵(3662,224,224,3):
train = []
for filename in glob.glob('Train_Images/*.png'):
im=Image.open(filename)
img = im.resize((224, 224), Image.ANTIALIAS)
sized=(np.asarray(img))/255
train.append(sized)
x_train = (np.asarray(train))
print(x_train.shape)
制作一个热y_train矩阵(3662,5)
我想使用一些预先训练的模型:在这里,VGG16
编译模型:
Model.compile(Adam(lr=0.0001), loss='categorical_crossentropy', metrics=['accuracy'])
Model.fit(x_train, y_train, epochs=10, batch_size=32)
我还尝试了ImageDataGenerator:
Model.fit_generator(datagen.flow(x_train, y_train, batch_size=4),
steps_per_epoch=len(train) / 4, epochs=10)
运行我的代码进行培训时,我正在失去RAM。每次会话都失败了。
我使用的图像数据库每个班级都有不同的文件夹。我处理得很好。
有没有办法处理一个文件夹中包含所有类的图像数据库?我之前没有使用过tensorflow。张量流可以处理吗?