問題タブ [tensorflow2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - tf.keras.models.model 対 tf.keras.model
models
tf.keras APIは冗長ですか? 場合によっては、 を使用しなくてmodels
も、コードも適切に実行されます。
keras.models.sequential
とkeras.sequential
tf.keras.models.Model
とtf.keras.Model
ただし、場合によってmodels
は必要なようです。たとえば、
model = keras.models.load_model()
、しかし、機能model = keras.Model
はありません.load_model()
。.load_model()
で定義されているためですtf.keras.Model
。
私はそれがかなり紛らわしく、半冗長だと思います。のポイントとは何かmodels
、いつ必要なのかを誰か説明できますか?
python - tensorflow2 のカスタム データ ジェネレーターを使用したマルチスレッド処理
私はケラス、テンソルフロー1でカスタムデータジェネレーターを使用しています
それはうまくいきました。tensorflow2 に切り替えたところ、multi_gpu_model(model) がサポートされなくなっていることがわかりました。
ドキュメントで提案されているように、4 つの GPU を備えたヘッドレス サーバーで実行しているため、tf.distribute.MirroredStrategy() に切り替えました。また、ジェネレーター (「training_generator」) を tf.data.Dataset 形式に切り替えました。
しかし、複数のスレッドで実行するにはどうすればよいでしょうか? これが私が試したものです(両方ともここから: https://medium.com/@nimatajbakhsh/building-multi-threaded-custom-data-pipelines-for-tensorflow-f76e9b1a32f5 ):
- 「マップ」でラップします。これは機能しますが、CPU が完全にロードされておらず、GPU が不足しているため、単一のスレッドで実行されます。
train_dataset = train_ds.map(lambda x,y: (x,y), num_parallel_calls=workers)
- 「インターリーブ」の使用
generators = tf.data.Dataset.from_tensor_slices(['Gen_0', 'Gen_1', 'Gen_2', 'Gen_3', 'Gen_4', 'Gen_5', 'Gen_6', 'Gen_7','Gen_8','Gen_9', 'Gen_10'])
` これにより CPU がロードされ、GPU に適切に供給されますが、データセットのコピーが作成されるようです。私が望むのは、データセット全体を一度実行し、以前は model.fit_generator() で可能だったように並列でバッチを生成することだけです
どんな助けや洞察も大歓迎です!