# 기계 학습을 위한 GitHub Codespace 시작

GitHub Codespaces 및 기본 제공 도구를 활용한 머신 러닝 프로젝트에 대해 배우십시오.

## 소개

이 가이드에서는 GitHub Codespaces를 사용한 기계 학습을 소개합니다. 간단한 이미지 분류자를 빌드하고, GitHub Codespaces에 미리 설치된 도구 중 몇 가지에 대해 알아보고, JupyterLab에서 codespace를 여는 방법을 알아봅니다.

## 간단한 이미지 분류자 빌드

Jupyter Notebook을 사용하여 간단한 이미지 분류자를 빌드합니다.

Jupyter 노트북은 순차적으로 실행할 수 있는 여러 셀들로 구성된 것입니다. 사용할 Notebook에는 [PyTorch](https://pytorch.org/)를 사용하여 이미지 분류자를 빌드하는 셀이 여러 개 포함되어 있습니다. 각 셀은 데이터 세트를 다운로드하고, 신경망을 설정하고, 모델을 학습시킨 다음, 해당 모델을 테스트하는 프로세스의 각 단계입니다.

모든 셀을 순서대로 실행하여 이미지 분류자를 빌드하는 모든 단계를 수행합니다. 이 작업을 수행할 때 Jupyter는 결과를 검사할 수 있도록 출력을 Notebook에 다시 저장합니다.

### Codespace 만들기

1. ```
          [github/codespaces-jupyter](https://github.com/github/codespaces-jupyter) 템플릿 리포지토리로 이동합니다.
   ```
2. **이 템플릿 사용**을 클릭한 다음, **codespace에서 열기**를 클릭합니다.

   !["이 템플릿 사용" 단추와 "codespace에서 열기" 옵션을 표시하도록 확장된 드롭다운 메뉴의 스크린샷.](/assets/images/help/repository/use-this-template-button.png)

이 템플릿의 codespace는 웹 기반 버전의 Visual Studio Code에서 열립니다.

### 이미지 분류자 Notebook 열기

GitHub Codespaces에서 사용하는 기본 컨테이너 이미지에는 codespace에 미리 설치된 기계 학습 라이브러리 집합이 포함되어 있습니다. 예를 들면 Numpy, pandas, SciPy, Matplotlib, seaborn, scikit-learn, Keras, PyTorch, Requests, Plotly입니다. 기본 이미지에 대한 자세한 내용은 [개발 컨테이너 소개](/ko/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers#using-the-default-dev-container-configuration) 및 [개발 컨테이너 이미지](https://github.com/devcontainers/images/tree/main/src/universal) 리포지토리를 참조하세요.

1. VS Code 편집기에서 표시되는 “시작” 탭을 닫습니다.
2. ```
          `notebooks/image-classifier.ipynb` Notebook 파일을 엽니다.
   ```

### 이미지 분류자 빌드

이미지 분류자 Notebook에는 데이터 세트를 다운로드하고 신경망을 학습시키고 성능을 평가하는 데 필요한 모든 코드가 포함되어 있습니다.

1. ```
          **모두 실행**을 클릭하여 모든 Notebook 셀을 실행합니다.
   ```

   !["image-classifier.ipynb" 파일의 편집기 탭 위쪽의 스크린샷입니다. 마우스 커서를 "모두 실행"이라는 레이블이 지정된 단추 위로 가져다 놓습니다.](/assets/images/help/codespaces/jupyter-run-all.png)

2. 커널 원본을 선택하라는 메시지가 표시되면 **Python 환경**을 선택한 다음 권장 위치에서 Python 버전을 선택합니다.

   !["Python 환경 선택" 드롭다운의 스크린샷. Python 버전 목록의 첫 번째 옵션에는 "권장"이라는 레이블이 지정됩니다.](/assets/images/help/codespaces/jupyter-choose-python.png)

3. 아래로 스크롤하여 각 셀의 출력을 봅니다.

   !["3단계: 네트워크 학습 및 모델 저장" 헤더가 있는 편집기의 셀 스크린샷입니다.](/assets/images/help/codespaces/jupyter-notebook-step3.png)

## JupyterLab에서 codespace 열기

```
          [github.com/codespaces](https://github.com/codespaces)의 "codespaces" 페이지에서 또는 GitHub CLI을(를) 사용하여 JupyterLab에서 codespace를 열 수 있습니다. 자세한 내용은 [AUTOTITLE](/codespaces/developing-in-a-codespace/opening-an-existing-codespace)을(를) 참조하세요.
```

열려 있는 codespace에 JupyterLab 응용 프로그램을 설치해야 합니다. 기본 개발 컨테이너 이미지에는 JupyterLab이 포함되므로 기본 이미지에서 만든 codespace는 항상 JupyterLab을 설치합니다. 기본 이미지에 대한 자세한 내용은 [개발 컨테이너 소개](/ko/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers#using-the-default-dev-container-configuration) 및 [`devcontainers/images`](https://github.com/devcontainers/images/tree/main/src/universal) 리포지토리를 참조하세요. 개발 컨테이너 구성에서 기본 이미지를 사용하지 않는 경우 `devcontainer.json` 파일에 `ghcr.io/devcontainers/features/python` 기능을 추가하여 JupyterLab을 설치할 수 있습니다. 옵션 `"installJupyterlab": true`를 포함해야 합니다. 자세한 내용은 `devcontainers/features` 리포지토리에서 [`python`](https://github.com/devcontainers/features/tree/main/src/python#python-python) 기능에 대한 추가 정보를 참조하세요.

## 코드스페이스에 NVIDIA CUDA 구성하기

> \[!NOTE]
> 이 섹션은 GPU를 사용하는 컴퓨터에서 codespaces를 만들 수 있는 고객에게만 적용됩니다. 평가판 기간 동안 선택한 고객에게 GPU를 사용하는 컴퓨터 유형을 선택하는 기능이 제공되었습니다. 이 옵션은 일반적으로 공급되지 않습니다.

일부 소프트웨어에서는 codespace의 GPU를 사용하려면 NVIDIA CUDA를 설치해야 합니다. 이 경우 `devcontainer.json` 파일을 사용하여 사용자 지정 구성을 만들고 CUDA를 설치해야 한다고 지정할 수 있습니다. 사용자 지정 구성 만들기에 대한 자세한 내용은 [개발 컨테이너 소개](/ko/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers#creating-a-custom-dev-container-configuration)을(를) 참조하세요.

```
          `nvidia-cuda` 기능을 추가할 때 실행되는 스크립트에 대한 자세한 내용은 [devcontainers/features](https://github.com/devcontainers/features/tree/main/src/nvidia-cuda) 리포지토리를 참조하세요.
```

1. codespace의 편집기에서 `.devcontainer/devcontainer.json` 파일을 엽니다.

2. 다음 내용이 포함된 최상위 `features` 개체를 추가합니다.

   ```json copy
     "features": {
       "ghcr.io/devcontainers/features/nvidia-cuda:1": {
         "installCudnn": true
       }
     }
   ```

   ```
          `features` 개체에 대한 자세한 내용은 [개발 컨테이너 사양](https://containers.dev/implementors/features/#devcontainer-json-properties)을 참조하세요.
   ```

   이 자습서에 대해 만든 이미지 분류자 리포지토리의 `devcontainer.json` 파일을 사용하는 경우 이제 `devcontainer.json` 파일은 다음과 같이 표시됩니다.

   ```json
   {
     "customizations": {
       "vscode": {
         "extensions": [
           "ms-python.python",
           "ms-toolsai.jupyter"
         ]
       }
     },
     "features": {
       "ghcr.io/devcontainers/features/nvidia-cuda:1": {
         "installCudnn": true
       }
     }
   }
   ```

3. 변경 내용을 저장합니다.

4. VS Code Command Palette에 액세스(<kbd>Shift</kbd>+<kbd>Command</kbd>+<kbd>P</kbd> / <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd>)한 후, “rebuild” 입력을 시작합니다. **Codespaces: 컨테이너 다시 빌드**를 클릭합니다.

   !["컨테이너 다시 빌드"을 검색하고 드롭다운에서 "Codespace: Rebuild Container" 옵션이 강조 표시된 명령 팔레트의 스크린샷](/assets/images/help/codespaces/codespaces-rebuild.png)

   > \[!TIP]
   > 때에 따라 다시 전체 빌드를 수행하여 캐시를 지우고 새 이미지로 컨테이너를 다시 빌드하려고 할 수 있습니다. 자세한 내용은 [Codespace에서 컨테이너 다시 빌드](/ko/codespaces/developing-in-codespaces/rebuilding-the-container-in-a-codespace#about-rebuilding-a-container)을(를) 참조하세요.
   > codespace 컨테이너가 다시 빌드됩니다. 이 작업은 몇 분 정도 걸립니다. 다시 빌드하는 작업이 완료되면 codespace가 자동으로 다시 열립니다.

5. 나중에 이 리포지토리에서 만든 모든 새 codespace에 CUDA가 설치되도록 리포지토리에 변경 내용을 게시합니다. 자세한 내용은 [템플릿에서 codespace 만들기](/ko/codespaces/developing-in-a-codespace/creating-a-codespace-from-a-template#publishing-from-vs-code)을(를) 참조하세요.