8

(イメージ、マスク) データ ジェネレーターの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 がサポートされていない理由を理解したいと思います...

4

1 に答える 1