1. 하드웨어 환경
- 클라우드/원격 환경
- Google Colab: 무료 GPU 지원
- Kaggle Notebook: GPU 사용 가능, 대회 중심
- AWS, GCP, Azure: 상용 서비스, 고사양 GPU 사용 가능
- Paperspace, Lambda Labs: 딥러닝 전문 GPU 클라우드
2. 소프트웨어 환경
2.1. 가상 환경
-
Miniconda: 패키지 관리 및 환경 관리를 위한 오픈 소스 툴
-
가상 환경의 중요성
- 의존성 충돌 방지
- 재현 가능성 및 이식성
- 개발 및 디버깅 편의성
- 자동화 및 배포 용이성
(1) 가상 환경 관리
# 가상 환경 생성
conda create -n torch271 python=3.12
# 가상 환경 활성화
conda activate torch271
# 가상 환경 비활성화
conda deactivate
# 가상 환경 목록 보기
conda env list
# 가상 환경 삭제
conda remove -n torch271 --all
# 환경 내보내기
conda env export > environment.yml
# 환경 불러오기
conda env create -f environment.yml(2) 패키지 관리
# 패키지 설치
conda install pandas
# 패키지 삭제
conda remove numpy
# 패키지 목록 확인
conda list
# 패키지 업데이트
conda update pandas2.2. 개발 언어 및 라이브러리
-
왜 Python인가?
- 처리 속도는 느리지만 prototyping은 빠르다.
- python은 front를 담당하고 C++/CUDA가 핵심 계산인 back을 수행한다.
- 딥러닝은 행렬 계산이 많기 때문에 numpy 지원이 유리하다.
-
PyTorch
- Meta에서 개발한 오픈소스 딥러닝 프레임워크
- 딥러닝 모델의 개발 및 연구에 사용
- GPU 가속 지원: NVIDIA CUDA 지원을 통해 빠른 연산을 수행
- 풍부한 생태계: 다양한 오픈소스 라이브러리(TorchVision, TorchText, TorchAudio)
3. 개발 도구
-
통합 개발 환경(IDE)
- Jupyter Notebook
- Visual Studio Code
-
Sublime Text
4. 버전 관리 및 협업
4.1. 버전 관리
- git & github
4.2. 협업
- Notion