Каждый эксперимент священКаждый эксперимент отличныйЕсли эксперимент потраченБог становится довольно разгневанным
Sacred - это инструмент, который поможет вам настроить, организовать, журналы и воспроизводить эксперименты. Он предназначен для того, чтобы выполнить всю утомительную накладную работу, которую вам нужно выполнить вокруг своего фактического эксперимента, чтобы:
Священное достигает этого посредством следующих основных механизмов:
Скрипт для обучения SVM на наборе данных Iris | Тот же сценарий, что и священный эксперимент |
from numpy . random import permutation
from sklearn import svm , datasets
C = 1.0
gamma = 0.7
iris = datasets . load_iris ()
perm = permutation ( iris . target . size )
iris . data = iris . data [ perm ]
iris . target = iris . target [ perm ]
clf = svm . SVC ( C = C , kernel = 'rbf' ,
gamma = gamma )
clf . fit ( iris . data [: 90 ],
iris . target [: 90 ])
print ( clf . score ( iris . data [ 90 :],
iris . target [ 90 :])) | from numpy . random import permutation
from sklearn import svm , datasets
from sacred import Experiment
ex = Experiment ( 'iris_rbf_svm' )
@ ex . config
def cfg ():
C = 1.0
gamma = 0.7
@ ex . automain
def run ( C , gamma ):
iris = datasets . load_iris ()
per = permutation ( iris . target . size )
iris . data = iris . data [ per ]
iris . target = iris . target [ per ]
clf = svm . SVC ( C = C , kernel = 'rbf' ,
gamma = gamma )
clf . fit ( iris . data [: 90 ],
iris . target [: 90 ])
return clf . score ( iris . data [ 90 :],
iris . target [ 90 :]) |
Документация размещена в Readthedocs. Вы также можете спросить Священного Гуру, это священный ИИ, ориентированный на священные, чтобы ответить на ваши вопросы.
Вы можете напрямую установить его из индекса пакета Python с PIP:
PIP установить священную
Или, если вы хотите сделать это вручную, вы можете проверить текущую версию от GIT и установить самостоятельно:
git clone https://github.com/idsia/sacred.gitCD Sacredpython setup.py install
Возможно, вы также захотите установить пакеты numpy
и pymongo
. Это необязательные зависимости, но они предлагают несколько классных функций:
PIP установить Numpy Pymongo
Тесты для священного используют пакет Pytest. Вы можете выполнить их, используя pytest
в священном каталоге, как это:
питест
Существует также файл конфигурации для Tox, поэтому вы можете автоматически запустить тесты для различных версий Python, как это:
токс
Если вы обновляете или измените версию Pytest, необходимо изменить следующие файлы:
dev-requirements.txt
tox.ini
test/test_utils.py
setup.py
Если вы найдете ошибку, имейте запрос на функцию или хотите обсудить что -то общее, вы можете открыть проблему. Если у вас есть конкретный вопрос, связанный с использованием священного, пожалуйста, задайте вопрос о Stackoverflow под тегом, расположенным на питоне. Мы много ценим документацию. Если вы найдете что -то, что должно быть включено в документацию, пожалуйста, документируйте это или сообщите нам, что не хватает. Если вы используете Sacred в одном из своих проектов и хотите поделиться своим кодом с другими, поместите свой репо в проектах, используя Sacred <Docs/projects_using_sacred.rst> _ List. Запросы на вытягивание очень приветствуются!
На этом этапе есть три фронта в записях базы данных, созданных Sacred (о которых я знаю). Они разрабатываются внешне как отдельные проекты.
Omniboard - это веб -панель, которая помогает визуализировать эксперименты и метрики / журналы, собранные Sacred. Omniboard написан с React, node.js, Express и Bootstrap.
Благовония - это библиотека Python для получения пробежек, хранящихся в монгодб и интерактивно отображать метрики и артефакты в ноутбуках Jupyter.
Sacredboard-это интерфейс панели мониторинга на основе веб-сайта для священных прогонов, хранящихся в MongoDB.
Neptune - это магазин метаданных для MLOPS, созданный для команд, которые проводят много экспериментов. Он дает вам одно место для регистрации, хранения, отображения, организма, сравнения и запроса всех ваших метаданных для создания моделей через API, доступные для языков программирования Python и R:
Чтобы записать свои священные эксперименты в Нептун, все, что вам нужно сделать, это добавить наблюдателя:
from neptune . new . integrations . sacred import NeptuneObserver
ex . observers . append ( NeptuneObserver ( api_token = '<YOUR_API_TOKEN>' ,
project = '<YOUR_WORKSPACE/YOUR_PROJECT>' ))
Для получения дополнительной информации проверьте руководство Neptune + Sacred Integration.
Sacredbrowser - это приложение Pyqt4 для просмотра записей MongoDB, созданных священными экспериментами. Особенности включают пользовательские запросы, сортировку результатов, доступ к хранимую код исходного кода и многие другие. Установка не требуется, и она может подключаться к локальной базе данных или по сети.
Пророк является ранним прототипом веб -сайта для записей MongoDB, созданных священными экспериментами, который прекращается. Это требует, чтобы вы запустили Restheart для доступа к базе данных.
Sumatra - это инструмент для управления и отслеживания проектов на основе численныхмоделирование и/или анализ, с целью поддержки воспроизводимых исследований.Это можно рассматривать как автоматизированную электронную лабораторную ноутбук длявычислительные проекты.
Sumatra использует другой подход, предоставляя инструменты командной линии для инициализации проекта, а затем запустить произвольный код (не только Python). Он отслеживает информацию обо всех запусках в базе данных SQL и даже предоставляет хороший инструмент браузера. Он интегрируется менее тесно с запуска кода, что позволяет легко применить к экспериментам, не являющимся питонами. Но это также означает, что это требует большей настройки для каждого эксперимента, и конфигурация должна быть выполнена с помощью файлов. Используйте этот проект, если вам нужно запускать эксперименты без питона или в порядке с дополнительными накладными расходами на установку/конфигурации.
FGLAB - это панель мониторинга машинного обучения, предназначенная для создания прототиповэксперименты проще. Детали эксперимента и результаты отправляются в базу данных,что позволяет выполнять аналитику после их завершения. Серверэто fglab, а клиенты - fgmachines.
Подобно Sumatra, FGLAB - это внешний инструмент, который может отслеживать пробеги из любой программы. Проекты настроены через схему JSON, и программа должна принять эти конфигурации с помощью параметров командной строки. FGLAB также играет роль базового планировщика, распределяя пробеги по нескольким машинам.
Этот проект выпускается в соответствии с условиями лицензии MIT.
К. Грефф, А. Кляйн, М. Чованек, Ф. Хаттер и Дж. Шмидхубер, «Священная инфраструктура для вычислительных исследований», в «Слушаниях 15 -й конференции Python in Science» (Scipy 2017), Austin, Texas, 2017, С. 49–56.