Szukam informacji o tym, jak powinien zostać zorganizowany projekt uczenia maszynowego w języku Python. Dla zwykłych projektów w Pythonie jest Cookiecutter, a dla R ProjectTemplate .
To jest moja obecna struktura folderów, ale mieszam Notatniki Jupyter z rzeczywistym kodem Pythona i nie wydaje się to zbyt jasne.
.
├── cache
├── data
├── my_module
├── logs
├── notebooks
├── scripts
├── snippets
└── tools
Pracuję w folderze skryptów i obecnie dodaję wszystkie funkcje w plikach w module mój_moduł, ale to prowadzi do błędów ładowania danych (ścieżek względnych / bezwzględnych) i innych problemów.
Nie mogłem znaleźć dobrych najlepszych praktyk ani dobrych przykładów na ten temat poza niektórymi rozwiązaniami konkurencji i niektórymi notebookami, które mają wszystkie funkcje skondensowane na początku takiego notebooka.
Odpowiedzi:
Nie sądzę, aby w tej rozwijającej się dziedzinie istniały najlepsze praktyki, ale oprócz gotowania, kilka ciekawych pomysłów pokazano w samouczku na konferencji SciPy 2016: http://isaacslavitt.com/2016/07/20/ data-science-is-software-talk /
Osobiście staram się minimalizować liczbę podfolderów w projekcie, chyba że mam naprawdę dobry sposób na ich rozróżnienie i mam dobry powód, aby je rozdzielić. Zła organizacja jest prawie tak zła jak żadna organizacja. Myślę, że najlepsza praktyka może zależeć od przypadku użycia - nie każdy projekt wymaga takiej samej ilości płyty grzewczej.
źródło
University of Washington wydał szablon projektu dla małych naukowych projektów pythonowych (w tym projektów związanych z nauką danych) o nazwie
shablona
. Czy to mniej więcej to, czego szukasz?https://github.com/uwescience/shablona
źródło