web-dev-qa-db-ja.com

Keras ImageDataGeneratorまたはTensorFlow tf.data?

Keras2が地平線上のTensorFlowおよびTensorFlow 2.0に実装されているので、Keras ImageDataGeneratorを、たとえば_flow_from_directory_または_tf.data_とともに使用する必要があります。これは、_fit_genearator_でも使用できます。今ケラスの?

両方のメソッドが異なる目的を果たすことによってそれぞれの場所を持つでしょうか、または_tf.data_は新しい方法であり、将来Kerasジェネレーターは非推奨になるでしょうか?

おかげで、私はこの速い動きのある分野で私を少し長く最新の状態に保つ道を進みたいと思います。

6
Florida Man

私にとっては、yieldを使用してジェネレーターを作成することを好みます。

def generator(batch_size=4,path):
imgs=glob(path+'*.jpg')
while True:
    batch=[]
    for i in range(batch_size):
        idx=np.random.randint(0,len(imgs))
        img=cv.resize(cv.imread(imgs[idx]),(256,256))/255
        batch.append(img)
    batch=np.array(batch)
    yield batch

次に、ジェネレータを作成してmodel.fit_generatorに入力すると、機能します。

このようにランダムにデータを選択するか、いくつかの繰り返しメソッドを使用できます。

コードは大雑把ですが、複雑なバッチを生成できるように変更するのは簡単です。

これは、TensorFlow 2.0ではなくKeras2でTF 1.Xを生成する方法であることに注意してください。

0
hhz