Cada experimento é sagradoCada experimento é ótimoSe um experimento for desperdiçadoDeus fica bastante irado
O sagrado é uma ferramenta para ajudá -lo a configurar, organizar, registrar e reproduzir experimentos. Ele foi projetado para fazer todo o trabalho aéreo tedioso que você precisa fazer em torno do seu experimento real para:
Sacrado alcança isso através dos seguintes mecanismos principais:
Script para treinar um SVM no conjunto de dados da IRIS | O mesmo script que um experimento sagrado |
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 :]) |
A documentação está hospedada no ReadThedocs. Você também pode perguntar ao guru sagrado, é uma IA sagrada para responder às suas perguntas.
Você pode instalá -lo diretamente no índice de pacote Python com PIP:
pip install sagrado
Ou, se você quiser fazer isso manualmente, pode verificar a versão atual do Git e instalá -la:
Git clone https://github.com/idsia/sacred.gitCD sagradopython setup.py install
Você também pode querer instalar os pacotes numpy
e pymongo
. São dependências opcionais, mas oferecem alguns recursos interessantes:
pip install numpy pymongo
Os testes para o sagrado usam o pacote pytest. Você pode executá -los executando pytest
no diretório sagrado como este:
Pytest
Há também um arquivo de configuração para o TOX para que você possa executar automaticamente os testes para várias versões Python como esta:
tox
Se você atualizar ou alterar a versão pytest, os seguintes arquivos precisarão ser alterados:
dev-requirements.txt
tox.ini
test/test_utils.py
setup.py
Se você encontrar um bug, tiver uma solicitação de recurso ou deseja discutir algo geral, você poderá abrir um problema. Se você tiver uma pergunta específica relacionada ao uso do sagrado, faça uma pergunta no StackOverflow sob a tag com sagcred Python. Valorizamos muito a documentação. Se você encontrar algo que deve ser incluído na documentação, documente ou informe -nos o que está faltando. Se você estiver usando o sagrado em um de seus projetos e deseja compartilhar seu código com outras pessoas, coloque seu repositório nos projetos usando a lista sagrada <docs/projects_using_sacred.rst> _. Os pedidos de puxão são altamente bem -vindos!
Neste ponto, existem três front -end para as entradas do banco de dados criadas pelo Sacred (que eu estou ciente). Eles são desenvolvidos externamente como projetos separados.
O Omniboard é um painel da web que ajuda a visualizar os experimentos e métricas / logs coletados pelo Sagrado. Omniboard está escrito com React, Node.js, Express e Bootstrap.
O Incense é uma biblioteca Python para recuperar corridas armazenadas em um mongodb e exibir métricas e artefatos interativamente nos notebooks de Jupyter.
A Sacredboard é uma interface de painel baseada na Web para as execuções sagradas armazenadas em um MongoDB.
Netuno é uma loja de metadados para o MLOPS, construída para equipes que realizam muitos experimentos. Ele oferece um único local para registrar, armazenar, exibir, organizar, comparar e consultar todos os seus metadados de construção de modelos via API disponível para linguagens de programação Python e R:
Para registrar seus experimentos sagrados em Netuno, tudo o que você precisa fazer é adicionar um observador:
from neptune . new . integrations . sacred import NeptuneObserver
ex . observers . append ( NeptuneObserver ( api_token = '<YOUR_API_TOKEN>' ,
project = '<YOUR_WORKSPACE/YOUR_PROJECT>' ))
Para obter mais informações, verifique o Guia de Integração Netuno + Sagrado.
O SacredBrowser é uma aplicação PYQT4 para navegar nas entradas do MongoDB criadas por experimentos sagrados. Os recursos incluem consultas personalizadas, classificação dos resultados, acesso ao código de origem armazenado e muito mais. Nenhuma instalação é necessária e pode se conectar a um banco de dados local ou sobre a rede.
O Profeta é um protótipo precoce de um WebInterface para as entradas do MongoDB criadas por experimentos sagrados, que é descontinuado. Requer que você execute RestHeart para acessar o banco de dados.
Sumatra é uma ferramenta para gerenciar e rastrear projetos baseados em numéricosSimulação e/ou análise, com o objetivo de apoiar a pesquisa reproduzível.Pode ser pensado como um notebook de laboratório eletrônico automatizado paraProjetos computacionais.
A Sumatra adota uma abordagem diferente, fornecendo ferramentas de comando para inicializar um projeto e executar o código arbitrário (não apenas o Python). Ele rastreia informações sobre todas as execuções em um banco de dados SQL e até fornece uma bela ferramenta de navegador. Ele se integra menos firmemente ao código a ser executado, o que o torna facilmente aplicável a experimentos não-python. Mas isso também significa que requer mais configuração para cada experimento e a configuração precisa ser feita usando arquivos. Use este projeto se precisar executar experimentos não-python ou estiver bem com a sobrecarga adicional de configuração/configuração.
O FGLAB é um painel de aprendizado de máquina, projetado para fazer prototipagemExperimentos mais fáceis. Detalhes e resultados da experiência são enviados para um banco de dados,que permite que a análise seja realizada após a conclusão. O servidoré fglab e os clientes são FGMachines.
Semelhante ao Sumatra, o FGLAB é uma ferramenta externa que pode acompanhar as execuções de qualquer programa. Os projetos são configurados por meio de um esquema JSON e o programa precisa aceitar essas configurações por meio de opções de linha de comando. O FGLAB também assume o papel de um agendador básico, distribuindo corridas em várias máquinas.
Este projeto é divulgado nos termos da licença do MIT.
K. Greff, A. Klein, M. Chovanec, F. Hutter e J. Schmidhuber, 'A Infraestrutura Sagrada para Pesquisa Computacional', em Proceedings of the 15th Python in Science Conference (Scipy 2017), Austin, Texas, 2017, pp. 49–56.