問題タブ [deap]

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 投票する
0 に答える
970 参照

python - マルチプロセッシング: 大規模なデータセットの処理

私はDEAPで働いています。大規模なデータセット (200 浮動小数点の 400.000 列) に対して人口 (現在 50 人) を評価しています。マルチプロセッシングなしでアルゴリズムのテストに成功しました。実行時間は約 40 秒/世代です。より多くの人口とより多くの世代で作業したいので、マルチプロセッシングを使用して高速化しようとしています。

私の質問は、DEAP よりもマルチプロセッシングに関連していると思います。この質問は、プロセス間でメモリ/変数を共有することとは直接関係ありません。主な問題は、ディスク アクセスを最小限に抑える方法です。

Python マルチプロセッシング モジュールの使用を開始しました。

コードは次のようになります

そして、もう少し:

評価関数は、グローバルな「データ」変数を使用します。そして最後に:

つまり、メイン処理ループとプール定義は によって保護されていif __name__ == "__main__":ます。

それは何とか機能します。実行時間: 1 プロセス: 398 秒 2 プロセス: 270 秒 3 プロセス: 272 秒 4 プロセス: 511 秒

マルチプロセッシングは実行時間を劇的に改善するわけではなく、さらには害を及ぼす可能性さえあります。

4 プロセスの (不足している) パフォーマンスは、メモリの制約によって説明できます。私のシステムは基本的に、処理ではなくページングです。

他の測定値は、データの読み込みによって説明できると思います。

私の質問:

1) モジュールが別のプロセスとして開始されるたびに、ファイルが読み取られ、ピクル解除されることを理解しています。これは正しいです?これは、含まれる関数の 1 つが map によって呼び出されるたびに読み取られることを意味しますか?

2) unpickling をif __name__ == "__main__":ガードの下に移動しようとしましたが、評価関数を呼び出したときに「データ」が定義されていないというエラー メッセージが表示されます。ファイルを一度読み取ってから、配列のみをプロセスに渡す方法を説明していただけますか

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

python - Python - ブール値を使用した安全なインデックス作成

リストから値を返すコードがあります。私は強く型付けされた遺伝的プログラミング (優れた DEAP モジュールを使用) を使用していますが、1&はand と0同じであることに気付きました。これは、関数が整数を予期している場合、ブール関数になってしまう可能性があることを意味し、これがいくつかの問題を引き起こしています。TrueFalse

例えば: list = [1,2,3,4,5]

list[1]戻り値2

list[True]も返す2

これを防ぐPythonicの方法はありますか?

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

python-2.7 - DEAP を使用して集団の 3 つの相互に排他的なサブセットを作成する方法

Python と DEAP Genetic プログラミング ライブラリを使用しています。母集団セットがありますが、相互に排他的で集合的に網羅的な母集団のサブセットを 3 つ作成する必要があります。これは DEAP 自体でサポートされていますか? それとも、これらのサブセットを独自に作成する必要がありますか?

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

python - Python DEAP mutFlipBit での TypeError

私は、DEAP を使用して最初の進化的アルゴリズムを作成しています。すべてが機能していますが、MultiFlipBit ミューテーション オペレーターです。ツリー (個別) を変更しようとすると、次のエラーが発生します。

コードは次のとおりです。

助けてくれてありがとう。

Python バージョン: 2.7

EDITED:問題を解決する方法についての提案の後、何が起こっているのかをよりよく理解するために、DEAPミューテーションライブラリにいくつかの「印刷」を追加しました。元の質問と同じエラーですが、いくつかの追加情報があります。

貢献してくれてありがとう

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

python - Deap for Python (Spyder) をインストールする

spyder から python の deap パッケージをインストールするにはどうすればよいですか?

私が試してみました:

pip install deal

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

python - Python DEAP パッケージで「殿堂入り」機能を使用すると最大値が減少する

DEAP は、進化アルゴリズムをサポートする素晴らしい Python パッケージです。

今、私は簡単な例からそれを学びますOneMax 問題

HallofFameをオン すると、「進化で出現する最適な個体を追跡します (消滅した場合でも保持します)」

しかし、私がそれを使用すると、進化の過程で人口の最大適応度が少し低下することがあります。

最高の両親が残っているとき、フィットネス.Max は決して減少するべきではなく、同じままか増加するべきだと思います.

これは、DEAP Web サイトで直接コピーしたコードです。

必要に応じて詳しく説明することができます。乾杯。

世代 3 での最大フィットネスの減少:

ここに画像の説明を入力