Przejdź do głównej treści
ActivePapers Przechowuj dane jako dokumenty przeliczalne – dzięki temu każdy opublikowany wynik można ponownie uruchomić, zweryfikować i zachować.

Niektóre linki na tej stronie są linkami afiliacyjnymi: jeśli dokonasz zakupu za ich pośrednictwem, możemy otrzymać prowizję bez żadnych dodatkowych kosztów dla Ciebie. Nie wpływa to jednak na nasze rekomendacje. Szczegóły znajdziesz w naszej polityce afiliacyjnej. Deklaracja afiliacyjna.

Przechowywanie danych możliwych do ponownego obliczenia

Edycja Python Edycja JVM Blog … biblioteka —> Przechowywanie danych podlegających ponownym obliczeniom autorstwa Konrada Hinsena, opublikowano 03 Jan 2014 Częste pytanie, które słyszę podczas prezentacji ActivePapers, brzmi: „Jaki jest sens przechowywania wyników obliczeń? Jeśli masz kod, możesz go po prostu uruchomić ponownie.

Wszystko, co trzeba zapisać, to kod i dane wejściowe”. Krótka odpowiedź brzmi: teoretycznie tak, ale w praktyce bywa z tym różnie. Dłuższą odpowiedź znajdziesz poniżej. Dowiesz się także, w jaki sposób ActivePapers może Ci pomóc zarówno w przypadku przechowywania, jak i nieprzechowywania danych podlegających ponownym obliczeniom.

Na początek zajmijmy się najbardziej oczywistym powodem przechowywania takich danych: obliczenia mogą być zbyt kosztowne, aby uruchamiać je wielokrotnie. To klasyczny przykład kompromisu między czasem (ponownych) obliczeń a wykorzystaniem przestrzeni dyskowej. W wielu przypadkach dobrym rozwiązaniem jest tymczasowe przechowywanie wynikowych danych, aby móc szybko przeprowadzić ich analizę w momencie pojawienia się nowego pomysłu, bez konieczności ich długoterminowego archiwizowania.

Kolejny powód, mniej oczywisty i taki, o którym nie lubimy pamiętać, brzmi: obliczenia mogą nie być tak odtwarzalne, jak powinny. Programy generujące nieco inne wyniki w zależności od platformy, na której są uruchamiane (system operacyjny, wersja kompilatora itd.), są dość powszechne. Programy wykorzystujące arytmetykę zmiennoprzecinkową niemal nieuchronnie wpadają do tej kategorii.

Sytuacja staje się szczególnie poważna, gdy różnice między dwoma uruchomieniami tego samego programu są na tyle duże, że zmieniają wnioski płynące z wyników. Tak, to się zdarza.

Wreszcie, istnieje bardzo częsta sytuacja, w której przechowywanie danych wyjściowych obliczeń nie jest istotne, ale kluczowe okazuje się przechowywanie powiązanych metadanych. I właśnie tutaj ActivePapers błyszczy. Taka sytuacja ma miejsce, gdy Twoje dane wyjściowe podlegające ponownym obliczeniom są w rzeczywistości danymi pośrednimi w ramach całego przepływu pracy. Przykładowo, uruchamiasz symulację generującą długą trajektorię, następnie przeprowadzasz analizę tej trajektorii, na podstawie której tworzysz wykres.

Powiązane: — Interaktywne kursy Python i data science, które kodujesz bezpośrednio w przeglądarce.

Wykres jest Twoim końcowym rezultatem, więc chcesz go zachować. Trajektoria i surowe wyniki analizy to rezultaty pośrednie, których nie musisz przechowywać, chyba że mieszczą się w jednej z dwóch wcześniej opisanych kategorii.

Chcesz natomiast zachować informację, że Twój wykres został wygenerowany na podstawie surowej analizy, która z kolei powstała w oparciu o trajektorię symulacji. Dzięki tym informacjom Ty – i każdy inny osoba przeglądająca Twoją pracę w przyszłości – będziecie mogli łatwo zweryfikować, czy wykres rzeczywiście odpowiada najnowszej wersji kodu symulacji i analizy. ActivePapers udostępnia tzw. „zastępcze zbiory danych” (dummy datasets) do obsługi takich sytuacji. Zastępczy zbiór danych nie zawiera właściwych danych, ale posiada wszystkie metadane generowane przez ActivePapers podczas wykonywania codeletów.

W obecnej wersji ActivePapers jedynym sposobem utworzenia takiego zastępczego zbioru danych jest najpierw wygenerowanie rzeczywistego zbioru, następnie uruchomienie wszystkich calcletów wykorzystujących go jako dane wejściowe, a na końcu zastąpienie rzeczywistego zbioru zbiorem zastępczym za pomocą polecenia aptool dummy … Tutorial również wspomina o zastępczych zbiorach danych i pokazuje, jak ponownie obliczyć oryginalne dane. Istnieje wiele możliwości przyszłych usprawnień interfejsu użytkownika dotyczącego zastępczych zbiorów danych.

Warto zobaczyć: — Jedna subskrypcja wspieranych przez uniwersytet certyfikatów Python i Data Science.

Przykładowo, calclet tworzący zbiór danych mógłby od razu oznaczyć go jako zastępczy; w takim przypadku zbiór nigdy nie zostałby zapisany na dysku, lecz przekazany klientom (calcletom) bezpośrednio w pamięci. Jeśli masz jakieś pomysły w tej sprawie, prosimy o zgłoszenie problemu w trackerze zgłoszeń na Githubie . komentarze zasilane przez Disqus


Buduj portfolio danych, projekt po projekcie

Ścieżki analizy danych oparte na projektach z terminalem z przewodnikiem i rzeczywistymi zbiorami danych