Hyperopt هي مكتبة Python للتحسين التسلسلي والموازٍ على مساحات البحث المحرجة ، والتي قد تتضمن أبعادًا حقيقية ومنفصلة وشرطية.
تثبيت Hyperopt من Pypi
pip install hyperoptلتشغيل مثالك الأول
# define an objective function
def objective ( args ):
case , val = args
if case == 'case 1' :
return val
else :
return val ** 2
# define a search space
from hyperopt import hp
space = hp . choice ( 'a' ,
[
( 'case 1' , 1 + hp . lognormal ( 'c1' , 0 , 1 )),
( 'case 2' , hp . uniform ( 'c2' , - 10 , 10 ))
])
# minimize the objective over the space
from hyperopt import fmin , tpe , space_eval
best = fmin ( objective , space , algo = tpe . suggest , max_evals = 100 )
print ( best )
# -> {'a': 1, 'c2': 0.01420615366247227}
print ( space_eval ( space , best ))
# -> ('case 2', 0.01420615366247227} إذا كنت مطورًا وترغب في المساهمة ، فيرجى اتباع هذه الخطوات.
قم بإنشاء حساب على Github إذا لم يكن لديك بالفعل حساب.
شوك مستودع المشروع: انقر على زر "Fork" بالقرب من أعلى الصفحة. هذا ينشئ نسخة من الرمز تحت حسابك على حساب مستخدم GitHub. لمزيد من التفاصيل حول كيفية شوكة مستودع انظر هذا الدليل.
استنساخ شوكة repo hyperopt من حساب github الخاص بك إلى القرص المحلي الخاص بك:
git clone https://github.com/ < github username > /hyperopt.git
cd hyperopt إنشاء بيئة مع:
$ python3 -m venv my_env أو $ python -m venv my_env أو مع conda:
$ conda create -n my_env python=3
تنشيط البيئة:
$ source my_env/bin/activate
أو مع كوندا:
$ conda activate my_env
تثبيت تبعيات للإضافات (ستحتاج إلى تشغيلها على Pytest): Linux/Unix: $ pip install -e '.[MongoTrials, SparkTrials, ATPE, dev]'
أو Windows:
pip install -e .[MongoTrials]
pip install -e .[SparkTrials]
pip install -e .[ATPE]
pip install -e .[dev]أضف جهاز التحكم عن بعد المنبع. هذا يحفظ إشارة إلى مستودع HyperOPT الرئيسي ، والذي يمكنك استخدامه للحفاظ على مستودعك متزامن مع أحدث التغييرات:
$ git remote add upstream https://github.com/hyperopt/hyperopt.git
يجب أن يكون لديك الآن تثبيت عمل لـ HyperOPT ، وتكوين مستودع GIT الخاص بك بشكل صحيح. تصف الخطوات التالية الآن عملية تعديل الكود وتقديم العلاقات العامة:
مزامنة فرعك الرئيسي مع فرع الماجستير في المنبع:
git checkout master
git pull upstream masterقم بإنشاء فرع ميزة لعقد تغييرات التطوير الخاصة بك:
$ git checkout -b my_feature
والبدء في إجراء التغييرات. استخدم دائمًا فرع الميزة. من الممارسات الجيدة عدم العمل على الفرع الرئيسي!
نوصي باستخدام Black لتنسيق الرمز الخاص بك قبل إرسال العلاقات العامة التي يتم تثبيتها تلقائيًا في الخطوة 6.
بعد ذلك ، بمجرد الالتزام ، تأكد من تنشيط خطافات GIT (يحتوي Pycharm على سبيل المثال على خيار حذفها). يمكن القيام بذلك باستخدام ما قبل الالتزام ، والذي يتم تثبيته تلقائيًا في الخطوة 6 ، على النحو التالي:
pre-commit installسيتم تشغيل هذا اللون الأسود تلقائيًا عند الالتزام بجميع الملفات التي قمت بتعديلها ، وفشلت إذا كان هناك أي ملفات تتطلب أن تكون مسودًا. في حالة عدم تشغيل Black تنفيذ ما يلي:
black {source_file_or_directory}قم بتطوير الميزة على فرع الميزات الخاص بك على جهاز الكمبيوتر الخاص بك ، باستخدام GIT للقيام بالتحكم في الإصدار. عند الانتهاء من التحرير ، أضف الملفات التي تم تغييرها باستخدام GIT ADD ثم GIT Commice:
git add modified_files
git commit -m " my first hyperopt commit " تستخدم اختبارات هذا المشروع pytest ويمكن تشغيله عن طريق استدعاء pytest .
سجل التغييرات الخاصة بك في git ، ثم ادفع التغييرات إلى حساب github الخاص بك بـ:
git push -u origin my_featureلاحظ أن التبعيات DEV تتطلب Python 3.6+.
حاليا يتم تنفيذ ثلاث خوارزميات في Hyperopt:
تم تصميم Hyperopt لاستيعاب خوارزميات تحسين بايزي بناءً على العمليات الغوسية وأشجار الانحدار ، ولكن لم يتم تنفيذها حاليًا.
يمكن موازاة جميع الخوارزميات بطريقتين ، باستخدام:
يمكن العثور على وثائق Hyperopt هنا ، ولكن لا يزال يتم استضافتها جزئيًا على الويكي. فيما يلي بعض الروابط السريعة إلى أكثر الصفحات ذات صلة:
انظر المشاريع باستخدام Hyperopt على الويكي.
الإعلانات
مناقشة
إذا كنت تستخدم هذا البرنامج للبحث ، فيرجى الاستشهاد بالورقة (http://proceedings.mlr.press/v28/bergstra13.pdf) على النحو التالي:
بيرجسترا ، ج. TPROC. من المؤتمر الدولي الثلاثين للتعلم الآلي (ICML 2013) ، يونيو 2013 ، الصفحات I-115 إلى I-23.
تلقى هذا المشروع الدعم من