이것으로 더 이상 고민하지 않는다! 기계 학습을 위한 폴더 구성 템플릿을 사용합시다.
고민
주로 기계 학습 프로젝트의 폴더 관리에서 ...
해결책
여러가지 조사해 본 결과, Cookiecutter 라고 하는 프로젝트 템플릿을 작성하는 커멘드 라인 유틸리티를 꽤 사용할 수 있을 것 같았습니다.
Cookiecutter creates projects from project templates, e.g. Python package projects.
아래 여기의 지침에 따라 프로젝트를 만들었습니다.
설치 환경
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14
BuildVersion: 18A391
$ python -V
Python 3.7.4
$ pip -V
pip 19.2.3 from /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pip (python 3.7)
설치 방법
설치는 pip로 쉽게 할 수 있습니다.
$ pip install cookiecutter
$ cookiecutter --version
Cookiecutter 1.6.0 from /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (Python 3.7)
템플릿 다운로드
이번에는 Python의 기계 학습 프로젝트를위한 템플릿 Data Science Cookiecutter을 다운로드했습니다.
우선 홈 아래에 적당한 디렉토리를 작성해 실행했습니다.
$ mkdir ~/test_cc
$ ~/test_cc
$ cookiecutter https://github.com/drivendata/cookiecutter-data-science
You've downloaded /Users/YOUR_NAME/.cookiecutters/cookiecutter-data-science before. Is it okay to delete and re-download it? [yes]: yes
project_name [project_name]: ml_project
repo_name [ml_project]:
author_name [Your name (or your organization/company/team)]: mj
description [A short description of the project.]: templates for ml project
Select open_source_license:
1 - MIT
2 - BSD-3-Clause
3 - No license file
Choose from 1, 2, 3 (1, 2, 3) [1]: 1
s3_bucket [[OPTIONAL] your-bucket-for-syncing-data (do not include 's3://')]:
aws_profile [default]:
Select python_interpreter:
1 - python3
2 - python
Choose from 1, 2 (1, 2) [1]: 1
$ ls
ml_project/
위와 같이 cookiecutter https://github.com/drivendata/cookiecutter-data-science
명령을 실행하면 프로젝트 작성에 대한 질문을 받기 때문에 담담하게 대답합니다.
궁극적으로 위의 질문 project_name
에서 답변 한 ml_project/
라는 디렉토리가 만들어졌습니다.
작성된 디렉토리의 내용
$ ls ml_project
LICENSE models/ setup.py
Makefile notebooks/ src/
README.md references/ test_environment.py
data/ reports/ tox.ini
docs/ requirements.txt
처음부터 여러가지 들어 있습니다.
폴더 구성 설명
자세한 것은 여기에도 기재되어 있습니다만, 다운로드된 템플릿에는 아래와 같이 상세한 설명이 더해진 마크다운 파일: README.md
가 처음부터 존재하고 있습니다.
README.mdml_project
==============================
templates for ml project
Project Organization
------------
├── LICENSE
├── Makefile <- Makefile with commands like `make data` or `make train`
├── README.md <- The top-level README for developers using this project.
├── data
│ ├── external <- Data from third party sources.
│ ├── interim <- Intermediate data that has been transformed.
│ ├── processed <- The final, canonical data sets for modeling.
│ └── raw <- The original, immutable data dump.
│
├── docs <- A default Sphinx project; see sphinx-doc.org for details
│
├── models <- Trained and serialized models, model predictions, or model summaries
│
├── notebooks <- Jupyter notebooks. Naming convention is a number (for ordering),
│ the creator's initials, and a short `-` delimited description, e.g.
│ `1.0-jqp-initial-data-exploration`.
│
├── references <- Data dictionaries, manuals, and all other explanatory materials.
│
├── reports <- Generated analysis as HTML, PDF, LaTeX, etc.
│ └── figures <- Generated graphics and figures to be used in reporting
│
├── requirements.txt <- The requirements file for reproducing the analysis environment, e.g.
│ generated with `pip freeze > requirements.txt`
│
├── setup.py <- makes project pip installable (pip install -e .) so src can be imported
├── src <- Source code for use in this project.
│ ├── __init__.py <- Makes src a Python module
│ │
│ ├── data <- Scripts to download or generate data
│ │ └── make_dataset.py
│ │
│ ├── features <- Scripts to turn raw data into features for modeling
│ │ └── build_features.py
│ │
│ ├── models <- Scripts to train models and then use trained models to make
│ │ │ predictions
│ │ ├── predict_model.py
│ │ └── train_model.py
│ │
│ └── visualization <- Scripts to create exploratory and results oriented visualizations
│ └── visualize.py
│
└── tox.ini <- tox file with settings for running tox; see tox.testrun.org
--------
<p><small>Project based on the <a target="_blank" href="https://drivendata.github.io/cookiecutter-data-science/">cookiecutter data science project template</a>. #cookiecutterdatascience</small></p>
보시다시피 폴더가 깔끔하게 나뉘어져 있으며 어디에 어떤 파일을 둘지 명기되어 있습니다. 우수합니다.
이것을 베이스로 폴더 구성의 설명(필요에 따라서 스스로 어레인지)을 하는 것으로, GitHub상에서 공개해도 한눈에 폴더 구성을 파악해 줄 수 있다(편집측으로서도 매우 편리합니다) 때문에 매우 도움이 됩니다 (이것은 무엇보다도 내 자신의 작업/데이터 관리를위한 공부가 될 것입니다).
※ Cookiecutter에 의하면, 해석에는 Python에 한정되지 않고 다른 언어로도 사용 가능하다고 하는 것입니다만, 상기의 인스톨을 실시했을 경우, 디폴트로 몇개의 Python 코드를 두어 줍니다(e.g. src 폴더내 .py 스크립트).
With this in mind, we've created a data science cookiecutter template for projects in Python. Your analysis doesn't have to be in Python, but the template does provide some Python boilerplate that you'd want to remove (in the src fold for example, and the Sphinx documentation skeleton in docs).
더 잘 알려질 수 있어야합니다.
진지하게 이 세상의 모든 기계 학습 프로젝트의 폴더 구성에 고민하는 분들에게 가르쳐 주고 싶지만, Cookiecutter라고 하는 모든 인간을 포로로 하는 프로젝트 템플릿이 있다.
폴더 구성이 처음부터 거의 최적화되어 있어 범용성도 높기 때문에 꼭 전국의 데이터 분석을 사랑하는 자, 데이터 관리를 미워하는 자, 모든 기계 학습 관계자에게 전해진다
참고
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14
BuildVersion: 18A391
$ python -V
Python 3.7.4
$ pip -V
pip 19.2.3 from /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pip (python 3.7)
$ pip install cookiecutter
$ cookiecutter --version
Cookiecutter 1.6.0 from /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (Python 3.7)
$ mkdir ~/test_cc
$ ~/test_cc
$ cookiecutter https://github.com/drivendata/cookiecutter-data-science
You've downloaded /Users/YOUR_NAME/.cookiecutters/cookiecutter-data-science before. Is it okay to delete and re-download it? [yes]: yes
project_name [project_name]: ml_project
repo_name [ml_project]:
author_name [Your name (or your organization/company/team)]: mj
description [A short description of the project.]: templates for ml project
Select open_source_license:
1 - MIT
2 - BSD-3-Clause
3 - No license file
Choose from 1, 2, 3 (1, 2, 3) [1]: 1
s3_bucket [[OPTIONAL] your-bucket-for-syncing-data (do not include 's3://')]:
aws_profile [default]:
Select python_interpreter:
1 - python3
2 - python
Choose from 1, 2 (1, 2) [1]: 1
$ ls
ml_project/
$ ls ml_project
LICENSE models/ setup.py
Makefile notebooks/ src/
README.md references/ test_environment.py
data/ reports/ tox.ini
docs/ requirements.txt
ml_project
==============================
templates for ml project
Project Organization
------------
├── LICENSE
├── Makefile <- Makefile with commands like `make data` or `make train`
├── README.md <- The top-level README for developers using this project.
├── data
│ ├── external <- Data from third party sources.
│ ├── interim <- Intermediate data that has been transformed.
│ ├── processed <- The final, canonical data sets for modeling.
│ └── raw <- The original, immutable data dump.
│
├── docs <- A default Sphinx project; see sphinx-doc.org for details
│
├── models <- Trained and serialized models, model predictions, or model summaries
│
├── notebooks <- Jupyter notebooks. Naming convention is a number (for ordering),
│ the creator's initials, and a short `-` delimited description, e.g.
│ `1.0-jqp-initial-data-exploration`.
│
├── references <- Data dictionaries, manuals, and all other explanatory materials.
│
├── reports <- Generated analysis as HTML, PDF, LaTeX, etc.
│ └── figures <- Generated graphics and figures to be used in reporting
│
├── requirements.txt <- The requirements file for reproducing the analysis environment, e.g.
│ generated with `pip freeze > requirements.txt`
│
├── setup.py <- makes project pip installable (pip install -e .) so src can be imported
├── src <- Source code for use in this project.
│ ├── __init__.py <- Makes src a Python module
│ │
│ ├── data <- Scripts to download or generate data
│ │ └── make_dataset.py
│ │
│ ├── features <- Scripts to turn raw data into features for modeling
│ │ └── build_features.py
│ │
│ ├── models <- Scripts to train models and then use trained models to make
│ │ │ predictions
│ │ ├── predict_model.py
│ │ └── train_model.py
│ │
│ └── visualization <- Scripts to create exploratory and results oriented visualizations
│ └── visualize.py
│
└── tox.ini <- tox file with settings for running tox; see tox.testrun.org
--------
<p><small>Project based on the <a target="_blank" href="https://drivendata.github.io/cookiecutter-data-science/">cookiecutter data science project template</a>. #cookiecutterdatascience</small></p>
진지하게 이 세상의 모든 기계 학습 프로젝트의 폴더 구성에 고민하는 분들에게 가르쳐 주고 싶지만, Cookiecutter라고 하는 모든 인간을 포로로 하는 프로젝트 템플릿이 있다.
폴더 구성이 처음부터 거의 최적화되어 있어 범용성도 높기 때문에 꼭 전국의 데이터 분석을 사랑하는 자, 데이터 관리를 미워하는 자, 모든 기계 학습 관계자에게 전해진다
참고
Reference
이 문제에 관하여(이것으로 더 이상 고민하지 않는다! 기계 학습을 위한 폴더 구성 템플릿을 사용합시다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/qmiyajun/items/5039b97a159b9f521e49텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)