(イメージ、マスク) データ ジェネレーターのkeras ドキュメントのように、(入力、出力) タプル イメージを持つデータ ジェネレーターを作成しました。
ラップトップでローカルに実行すると (tensorflow 1.13.1 を使用)、問題なく実行されますが、サーバーで実行すると (tensorflow- gpu 1.13.1 を使用)、エラーが発生します。
AttributeError: 'zip' object has no attribute 'shape'
例のように、flow_from_directory で 2 つのジェネレーターを作成した後:
from tensorflow import keras
...
input_gen = input_datagen.flow_from_directory(
directory=os.path.join(path_in, dirname),
class_mode=None,
color_mode=color_mode,
batch_size=batch_size,
target_size=(img_size, img_size),
seed=seed_in)
kerasのドキュメントのようにそれらを組み合わせました:
train_generator = zip(input_gen, output_gen)
それらを fit_generator(...) に供給します
現在、ここで提案されているように、関数を使用して新しい結合されたジェネレーターを生成することで解決しました:
def combine_generator(gen1, gen2):
while True:
yield(gen1.next(), gen2.next())
それでも、tensorflow cpu バージョンでこのエラーが発生しない理由と、gpu バージョンで zip がサポートされていない理由を理解したいと思います...