私のMLモデルの処理バッチ処理に時間がかかり、並列化を検討しています。Python:GPUとCPUの作業を並列化する
現在、前処理ルーチンはSSDからデータを取得し、前処理して学習用のデータ構造を作成します。このすべてのMLトレーニングプロセスは待っています。その後、MLプロセスはこのデータを受け取り、モデルをトレーニングするためにこのデータを使用します。今は前処理待ちです。そして、彼らは回ります。この待ち時間はすばやくまとめられ、モデルトレーニングが遅れます。
計画は次のとおりです。単一のデータ構造では、データポイントの束が格納されます。各ステップでは、トレーニングアルゴリズムはモデルのトレーニングのためにランダムなサブセットを使用します(GPUでTensorFlowを使用するSGD)。
これと並行して、次のデータポイントの前処理を別のスレッドで実行したいと思います。また、前処理が準備ができたら、古いデータ構造オブジェクトを新しいものに置き換えます。その他
これはPythonでの並列化に対する私の最初のアプローチで、これはまったく機能するのだろうかと思います。グローバルな通訳者がロックすると、システムは本当に並行してこれらのタスクを実行できなくなりますか?