您的計算實驗是否遇過瓶頸?您是否厭倦了為所選技術選擇合適的參數?如果是的話,Opytimizer 就是貨真價實的產品!該套件提供了元啟發式優化的簡單實作。從代理到搜尋空間,從內部功能到外部通信,我們將促進所有與最佳化相關的研究。
如果您需要程式庫或希望執行下列操作,請使用 Opytimizer:
請閱讀 opytimizer.readthedocs.io 上的文件。
Opytimizer 相容: Python 3.6+ 。
如果您使用 Opytimizer 來滿足您的任何需求,請引用我們:
@misc { rosa2019opytimizer ,
title = { Opytimizer: A Nature-Inspired Python Optimizer } ,
author = { Gustavo H. de Rosa, Douglas Rodrigues and João P. Papa } ,
year = { 2019 } ,
eprint = { 1912.13002 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.NE }
}
首先。我們有例子。是的,他們被評論了。只需瀏覽到examples/
,選擇您的子包,然後按照範例進行操作。我們為我們能想到的大多數任務提供了高級範例,並提供了令人驚嘆的整合(Learnergy、NALP、OPFython、PyTorch、Scikit-Learn、Tensorflow)。
或者,如果您想了解更多信息,請花一點時間:
Opytimizer基於以下結構,您應該注意它的樹:
- opytimizer
- core
- agent
- block
- cell
- function
- node
- optimizer
- space
- functions
- constrained
- multi_objective
- math
- distribution
- general
- hyper
- random
- optimizers
- boolean
- evolutionary
- misc
- population
- science
- social
- swarm
- spaces
- boolean
- graph
- grid
- hyper_complex
- pareto
- search
- tree
- utils
- callback
- constant
- exception
- history
- logging
- visualization
- convergence
- surface
核心就是核心。從本質上講,它是一切事物的父母。您應該找到定義我們結構基礎的父類別。他們應該提供有助於建立其他模組的變數和方法。
與其使用原始且簡單的函數,為什麼不嘗試這個模組呢?編寫高級抽象函數甚至基於函數的新想法來解決您的問題。請注意,目前我們僅支援多目標函數策略。
僅僅因為我們正在計算東西並不意味著我們不需要數學。 Math 是包含低階數學實作的數學包。從隨機數到分佈生成,您都可以在這個模組上找到您的需求。
這就是我們被稱為 Opytimizer 的原因。這是啟發式的核心,在這裡你可以找到大量的元啟發式、最佳化技術,以及任何可以稱為最佳化器的東西。請查看可用的優化器。
人們可以將空間視為智能體更新其位置並評估適應度函數的地方。然而,最新的方法可能會考慮不同類型的空間。考慮到這一點,我們很高興支持多樣化的空間實施。
這是一個實用程式包。跨應用程式共享的通用內容應該在這裡實現。實現一次並隨心所欲地使用比重複地重新實現相同的東西要好。
每個人都需要圖像和情節來幫助視覺化正在發生的事情,對嗎?這個包將為您提供所有與視覺相關的方法。檢查特定變數收斂性、適應度函數收斂性、繪製基準函數曲面等等!
我們相信一切都必須很容易。不棘手或令人畏懼,Opytimizer 將是您從第一次安裝到執行日常任務所需的一站式軟體包。如果您可以在您最喜歡的 Python 環境(raw、conda、virtualenv 等)下執行以下命令:
pip install opytimizer
或者,如果您喜歡安裝前沿版本,請克隆此存儲庫並使用:
pip install -e .
請注意,有時需要額外的實施。如果需要,您將是從這裡了解其所有詳細資訊的人。
不需要特定的附加命令。
不需要特定的附加命令。
不需要特定的附加命令。
來看看 Opytimizer 的快速工作範例。請注意,我們沒有向過程傳遞許多額外的參數或附加資訊。對於更複雜的範例,請查看我們的examples/
資料夾。
import numpy as np
from opytimizer import Opytimizer
from opytimizer . core import Function
from opytimizer . optimizers . swarm import PSO
from opytimizer . spaces import SearchSpace
def sphere ( x ):
return np . sum ( x ** 2 )
n_agents = 20
n_variables = 2
lower_bound = [ - 10 , - 10 ]
upper_bound = [ 10 , 10 ]
space = SearchSpace ( n_agents , n_variables , lower_bound , upper_bound )
optimizer = PSO ()
function = Function ( sphere )
opt = Opytimizer ( space , optimizer , function )
opt . start ( n_iterations = 1000 )
我們知道我們已盡力而為,但不可避免地要承認我們會犯錯。如果您需要報告錯誤、報告問題、與我們聯繫,請這樣做!我們將在這個存儲庫中盡最大努力。