問題タブ [dask-delayed]
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.
dask - Dask で Keras モデルをトレーニングできませんか?
Dask 遅延を使用した簡単な例から、次のようにいくつかの関数呼び出しを使用して scikit-learn から gridsearchcv を本質的に複製できることを読みました。ループの残りの部分が続くため (pred(...))?
関数をネストする方法に問題はありますか? dask 用の gridsearchcv があることは認識していますが、問題は私の実際のモデルが多入力 Keras LSTM であり、3D 配列を「X」として渡すことができないことです。コードは、Dask なしでシリアルで正常に動作します。
再現可能な小さな例を次に示します。
#1 を追加
これは 2 回目の試行ですが、エラーは残ります。
#2 を追加
Keras/TF に Dask 以外でエラーが発生する問題があることが判明しました。これについては、別の質問で説明します。そこで、この目的のために Dask を適切にセットアップできるように、Keras モデルを Xgboost モデルに交換しました。
これがそのコードです。mean_squared_error ビットで遅延した Dask への呼び出しをコメント アウトする必要があることがわかりました。
server - DASK を使用してクラスターで関数を起動する
私は DASK を初めて使用し、クラスターでの DASK の実行をテストしたいと考えています。クラスターには、ヘッド サーバーと他のいくつかのノードがあります。ヘッドサーバーにログインすると、パスワードなしの単純な ssh で他のノードに入ることができます。大きな配列を反復する単純な関数を実行したいと思います。関数は以下で定義されます。dt64 を numpy の datetime オブジェクトに変換することです。
import xarray as xr
import numpy as np
from dask import compute, delayed
import dask.multiprocessing
from datetime import datetime, timedelta
def converdt64(dt64):
ts = (dt64 - np.datetime64('1970-01-01T00:00:00Z')) / np.timedelta64(1, 's')
return datetime.utcfromtimestamp(ts)
次に、ターミナルで、この関数を適用してサイズ N の配列 1D を反復処理します。
values = [delayed(convertdt64)(x) for x in arraydata]
results1 = compute(*values,scheduler='processes’)
これは、ヘッド サーバーでいくつかのコアを使用し、ゆっくりと動作します。次に、以下のようにクライアントを使用して、クラスターのいくつかのノードで関数を起動しようとしました。
from dask.distributed import Client
client = Client("10.140.251.254:8786 »)
results = compute(*values, scheduler='distributed’)
まったく機能しません。次のようないくつかの警告と 1 つのエラー メッセージがあります。
dask.bag も試してみましたが、同じエラー メッセージが表示されました。クラスターでの並列計算が機能しない理由は何ですか? サーバー/ネットワーク構成のせいですか、それとも DASK クライアントの間違った使い方ですか? よろしくお願いいたします。
幸運をお祈りしています
シャノンX