如果我尝试追加train_images和new_imgs我的RAM崩溃。我试图将train_images转换为常规列表,但同样的问题。另外,当我尝试追加图像(batch[0])时,完成批处理需要大约两秒钟,这是不可接受的。没有错误信息。没有错误信息,程序只是没有响应,然后只是关闭,我需要再次运行它,但每次都有一些问题。
%tensorflow_version 2.x
import tensorflow as tf
from tensorflow.keras import datasets, layers, models
import numpy as np
from keras.preprocessing import image
from keras.preprocessing.image import ImageDataGenerator
我已经安装了数据集并对数据进行了预处理:
(train_images, train_labels), (test_images, test_labels) =
datasets.cifar10.load_data()
train_images = train_images / 255.0;
创建一个图像数据生成器:
datagen = ImageDataGenerator(
rotation_range=40,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
fill_mode='nearest')
我已经创建了一个数组来存储所有修改过的图像,然后开始循环遍历我所有的数据集并重塑我的数据以准备修改:
new_images = []
for num, test_img in enumerate(train_images):
img = image.img_to_array(test_img)
img = img.reshape((1,) + img.shape)
我已经通过图像数据生成器运行了重塑的图像,并将其存储在数组中:
i = 0
print(str(num) + ' out of ' + str(len(train_images)) + ' left')
for batch in datagen.flow(img):
new_images.append(batch[0])
i += 1
if i > 4:
break
,现在我不能得到数组以任何方式追加没有崩溃我的12 GB RAM…
我已经创建了一个数组来存储所有修改过的图像
不需要存储生成的图像,只使用.fit(...)
和.flow(...)
方法。
datagen.fit(train_images)
model.fit(datagen.flow(train_images, train_labels, batch_size=32),
steps_per_epoch=len(train_images) / 32, epochs=epochs)
ImageDataGenerator