問題タブ [joblib]

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.

0 投票する
1 に答える
1619 参照

python - Python の numpy.save( ) と joblib.dump( ) の違いは何ですか?

Python で多くのオフライン モデル/行列/配列を保存し、これらの関数に出くわしました。numpy.save() と joblib.dump() の長所と短所を挙げて、誰か助けてくれませんか?

0 投票する
2 に答える
8954 参照

scikit-learn - マルチプロセッシングによる並列ループは、スレッドの下にネストできません

joblib でこのような問題が発生する理由は何ですか? 「n_jobs=1 を設定すると、マルチプロセッシングによる並列ループをスレッドの下にネストすることはできません」このような問題を回避するにはどうすればよいですか?

実際には、バックグラウンド スレッドで大量の計算を実行し、UI クライアントからのポーリングを通じて現在の進行状況を報告する XMLRPC サーバーを実装する必要があります。joblib に基づく scikit-learn を使用します。

PS: このような警告を回避するために、スレッドの名前を「MainThread」に変更しただけで、すべてが正常に機能しているように見えます (問題なく期待どおりに並列実行されます)。このような回避策で将来的にどのような問題が発生する可能性がありますか?

0 投票する
1 に答える
596 参照

python - 2 つのコアでの 2 つの独立した計算の joblib 並列化は、シリアルより遅い

numpy を使用して一部のデータ展開を並列化しようとしていますが、並列化されたバージョンはシリアル バージョンよりも桁違いに時間がかかることがわかっているため、ばかげた間違いを犯しているに違いありません。

まず、問題を設定するためのいくつかの偽のデータ:

次に、シリアル計算について説明します。グループ データをグループ メンバーの配列に展開します。

パラレルバージョンは次のとおりです。

私はこのコードを 4 コア マシンで実行しているので、原則として、2 つの母集団に対して個別に計算を実行すると、およそ 2 倍の速度が得られるはずです。代わりに、シリアル計算には約 0.1 秒かかり、パラレル計算には 9 秒かかります。ここで何が起こっているのですか?

0 投票する
0 に答える
646 参照

python - 機械学習モデルの永続性

私はしばらくの間 scikit-learn を使用してきましたが、モデルをトレーニングした後に pickle-d または joblib の出力をデータベースにプッシュする方法があるかどうか疑問に思っていました (ここで述べた理由により、joblib が望ましい: What are the different use: What are the different use joblib と pickle のどちらのケースですか? )、またはそうする唯一の方法は、Amazon S3 などのオブジェクト ストレージ サービスを使用することですか? 2番目についてはかなり確信がありますが、モデルをデータベースに保存できる別のツールがあるかどうか知りたいです。

結果をデータベースに保存できたとしても (保存されたモデルの joblib 結果が 5 つのファイルで構成されているため、どのように保存できるかわかりません)、そもそも効率的でしょうか? joblib が複数のファイルを作成し、それらの内容が 1 つのファイルに連結される理由

上記のダンプを実行した後の出力例 (作成されたファイルの内容):

ありがとう!

0 投票する
4 に答える
812 参照

python - 選択的キャッシュ/メモ化のためのデコレーター

@memoize次のように関数で使用できるデコレータを作成する方法を探しています。

次に、もしそうなら:

ここで、キャッシュの更新を強制したいとします。

上記の最後には常に がありますがresult4 = result3、必ずしもresult4 = resultであるとは限りません。そのため、同じ入力パラメータに対してキャッシュの更新を強制するオプションが必要です。

どうすればこの問題にアプローチできますか?

注意事項joblib

私の知る限り、再実行を強制する をjoblibサポートしていますが、キャッシュは更新しません.call

使用に関するフォローアップklepto:

デフォルトで結果を特定の場所にキャッシュする方法はありますかklepto(@Wally の回答を参照)。(例/some/path/) この場所を複数の機能で共有しますか? 例えば、私は言いたい

次に@memoize、同じパスの下の特定のモジュール内のいくつかの関数。

0 投票する
2 に答える
2631 参照

python - 「joblib」Python ライブラリで変数を共有する方法

共有メモリを変数にしたい。しかし、temp の値は空です []。どうすればいいですか?

他の方法として、pickle.dump と load を試しました。しかし、ロックの問題があります。アドバイスをください!

0 投票する
1 に答える
1548 参照

python - 並列 for ループ python

Python で for ループを並列化したい。

ループはジェネレーターによって供給され、10 億のアイテムが期待されます。

joblibに巨大なメモリリークがあることが判明しました

このループにデータを保存したくありません。時々何かを出力するだけですが、メインスレッドは数秒で 1 GB のサイズになります。

多数の反復のための他のフレームワークはありますか?