私は、トレーニング画像を作成しているデータジェネレータを持っています。このPythonデータジェネレーターを使ってTensorflowモデルにデータをフィードしたいのですが、ジェネレーターをTensorflowテンソルに変換する方法がわかりません。私はKerasのfit_generator()関数に似た何かを探しています。PythonデータジェネレータをTensorflowテンソルに変換するには?
ありがとうございます!
私は、トレーニング画像を作成しているデータジェネレータを持っています。このPythonデータジェネレーターを使ってTensorflowモデルにデータをフィードしたいのですが、ジェネレーターをTensorflowテンソルに変換する方法がわかりません。私はKerasのfit_generator()関数に似た何かを探しています。PythonデータジェネレータをTensorflowテンソルに変換するには?
ありがとうございます!
tf.data.Dataset.from_generator()
メソッドは、Pythonジェネレータをtf.Tensor
オブジェクトに変換する方法を提供します。このオブジェクトはジェネレータの各要素に評価されます。
あなたはタプルを生成する単純な発電機を持っている(その代わりにリストまたはnumpyのアレイを生成することがありました)としましょう:
def g():
yield 1, 10.0, "foo"
yield 2, 20.0, "bar"
yield 3, 30.0, "baz"
あなたは、その後に、tf.data.Dataset
に最初の発電機を変換するtf.data
APIを使用することができますtf.data.Iterator
、最後にtf.Tensor
のタプルに変換されます。あなたは、あなたのTensorFlowモデルへの入力としてint_tensor
、float_tensor
、およびstr_tensor
を使用することができます
dataset = tf.data.Dataset.from_generator(g, (tf.int32, tf.float32, tf.string))
iterator = dataset.make_one_shot_iterator()
int_tensor, float_tensor, str_tensor = iterator.get_next()
。詳細はtf.data
programmer's guideをご覧ください。
私は純粋なTensorflowを使用しているときにデータを供給するために発電機を使用する必要はありません。 そして、Kerasを使用しているときに、なぜTensorflowスタイルでデータを供給する必要があるのですか?つまり、Kerasの関数fit()があります。
具体的なエラーは何ですか?何を試してみましたか? fit_generator引数として_generator_をとります。他に何が必要なのでしょうか? – putonspectacles