Ir para o conteúdo principal
ActivePapers Armazene seus dados como documentos recomputáveis — para que qualquer resultado publicado possa ser reexecutado, verificado e preservado.

Alguns links neste site são links de afiliados: se você comprar através deles, podemos ganhar uma comissão sem custo adicional para você. Isso nunca afeta nossas recomendações. Consulte nossa divulgação de afiliados para mais detalhes. Divulgação de afiliados.

Armazenamento de dados recomputáveis

Edição Python Edição JVM Blog … biblioteca —> Armazenando dados recomputáveis por Konrad Hinsen, publicado em 03 Jan 2014 Uma pergunta frequente que me fazem ao apresentar o ActivePapers é: “Qual a vantagem de armazenar resultados de computações? Se você mantém o código, basta executá-lo novamente.

Tudo o que precisa armazenar são o código e os dados de entrada.” A resposta curta é que isso é verdade na teoria, mas um pouco menos na prática. Para a resposta completa, continue lendo. Você também aprenderá como o ActivePapers pode ajudá-lo tanto no armazenamento quanto no não armazenamento de dados recomputáveis. Primeiro, vamos tratar da razão mais óbvia para armazenar dados recomputáveis: a computação pode ser custosa demais para ser executada repetidamente.

Esse é um caso clássico de compromisso entre tempo de (re)computação e uso de armazenamento em disco. Em muitos casos, um bom equilíbrio é manter os dados resultantes por algum tempo, para poder realizar uma análise rápida caso surja uma nova ideia, sem arquivá-los para armazenamento de longo prazo. Em seguida, uma razão menos óbvia, e além disso, uma razão da qual não gostamos muito de ser lembrados: a computação pode não ser tão reproduzível quanto deveria.

Programas que produzem resultados ligeiramente diferentes dependendo da plataforma em que são executados (SO, versão do compilador, …) são bastante comuns. Programas que utilizam aritmética de ponto flutuante quase inevitavelmente se enquadram nessa categoria. A situação fica particularmente grave quando as diferenças entre duas execuções do programa são tão grandes que alteram as conclusões tiradas dos resultados.

Sim, isso acontece . Finalmente, há uma situação muito frequente na qual armazenar os dados de saída de uma computação não é importante, mas armazenar os metadados associados é.

E é aí que o ActivePapers realmente se destaca. Essa situação ocorre quando sua saída recomputável é, na verdade, um dado intermediário em seu fluxo de trabalho completo. Por exemplo, você executa uma simulação que produz uma trajetória extensa, depois realiza uma análise sobre essa trajetória, a partir da qual gera um gráfico. O gráfico é seu resultado final, então você deseja mantê-lo.

Relacionado: — Caminhos de ciência de dados baseados em projetos com um terminal guiado e conjuntos de dados reais.

A trajetória e a análise bruta são resultados intermediários, que não precisam ser armazenados, a menos que se enquadrem em uma das duas categorias explicadas acima. Mas você deseja armazenar o fato de que seu gráfico foi gerado a partir da sua análise bruta, que por sua vez foi gerada a partir da trajetória da simulação.

Com essa informação, você e qualquer outra pessoa que examine seu trabalho posteriormente podem verificar facilmente se o gráfico corresponde realmente à versão mais recente do seu código de simulação e análise. O ActivePapers fornece “conjuntos de dados fictícios” para lidar com essa situação. Um conjunto de dados fictício não contém dados reais, mas possui todos os metadados que o ActivePapers gera durante a execução de codelets. No estado atual do ActivePapers, a única maneira de gerar tal conjunto de dados fictício é primeiro gerar um conjunto de dados real, executar todos os calclets que o utilizam como entrada e, por fim, substituir o conjunto de dados real por um conjunto de dados fictício usando aptool dummy … .

O tutorial também menciona conjuntos de dados fictícios e mostra como recomputar os dados originais. Há muito espaço para melhorias futuras na interface do usuário para conjuntos de dados fictícios. Por exemplo, o calclet que cria um conjunto de dados poderia marcá-lo como fictício imediatamente; assim, ele nunca seria gravado no arquivo, mas passado para os calclets clientes na memória.

Vale a pena dar uma olhada: — Uma assinatura para certificados Python e de ciência de dados apoiados por universidades.

Se você tiver alguma ideia sobre isso, por favor, abra uma issue no rastreador de issues do Github . comentários powered by Disqus


Aprenda Python codificando em seu navegador

Cursos interativos de Python e ciência de dados que você codifica diretamente no navegador