Python 2.7 多输入无限循环的图像增强?
我试图实现多输入的图像增强,但是我的实现似乎进入了无限循环。把代码贴在下面。我做错了什么Python 2.7 多输入无限循环的图像增强?,python-2.7,keras,Python 2.7,Keras,我试图实现多输入的图像增强,但是我的实现似乎进入了无限循环。把代码贴在下面。我做错了什么 data_gen_args = dict( horizontal_flip=True, # randomly flip images vertical_flip=True) # randomly flip images datagen = ImageDataGenerator(**data_gen_args) datagen.fit(X_train,seed=1) d
data_gen_args = dict(
horizontal_flip=True, # randomly flip images
vertical_flip=True) # randomly flip images
datagen = ImageDataGenerator(**data_gen_args)
datagen.fit(X_train,seed=1)
datagen.fit(X1_train,seed=1)
datagen.fit(X2_train,seed=1)
datagen.fit(X3_train,seed=1)
datagen.fit(X4_train,seed=1)
multi1=datagen.flow(X_train, seed=1)
multi2=datagen.flow(X1_train, seed=1)
multi3=datagen.flow(X2_train, seed=1)
multi4=datagen.flow(X3_train, seed=1)
multi5=datagen.flow(X4_train, seed=1)
multigen=zip(multi1,multi2,multi3,multi4,multi5)
model.fit_generator(multigen,y_train,samples_per_epoch=X_train.shape[0],
batch_size=8,
nb_epoch=1,
validation_split=0.2,
shuffle=True,
callbacks=[xyz])
问题是
zip
试图迭代multi*
的所有输出,并将它们作为元组列表返回。但是由于multi*
是无限迭代器,zip
只会在multi*
中不断迭代,并且永远不会返回
这里的解决方案是使用itertools.izip
,它是zip
的迭代器版本
只需导入itertools
import itertools as it
然后把发电机拉到一起
multigen = it.izip(multi1, multi2, multi3, multi4, multi5)
有关itertools
的更多信息: