2017-03-09 8 views
1

私は複数の入力に対して画像補強を実装しようとしていますが、私の実装は無限ループに入っているようです。以下のコードを投稿してください。私は間違って何をしていますか?無限ループを与える複数の入力に対する画像拡大?

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]) 

答えて

1

問題はzip試行がmulti*のすべての出力を反復処理することで、タプルのリストとして返します。しかし、multi*は無限のイテレータなので、zipは反復をちょうどmulti*にして返しません。

ここでの解決策は、zipの反復子バージョンであるitertools.izipを使用することです。

だけインポートitertools

import itertools as it 

そして一緒にitertoolsの詳細については

multigen = it.izip(multi1, multi2, multi3, multi4, multi5) 

発電機のZIPファイルを作成します。https://docs.python.org/2/library/itertools.html

関連する問題