Deep_Learning

Tensorflow GPU Docker Install on WSL2 - #3

MoonLight314 2024. 3. 9. 16:41
728x90

7. Visual Studo Code 준비

WSL , CUDA Toolkit , Tensorflow GPU까지 모두 성공적으로 설치를 마무리했습니다.

이제 Code Editor를 설치하고 이를 Tensorflow Container와 연결해 보도록 하겠습니다.

저는 주로 Visual Studo Code를 사용하고 있어서 이를 설치하겠습니다.

이 부분은 특별한 내용이 없으니 넘어가도록 하겠습니다.

8. Visual Studo Code와 Tensorflow Container 연결

아래 그림을 잘 보면, 우리는 Visual Studo Code를 이용해서 WSL안에서 돌고 있는 Tensorflow Container에 연결해야 하는 상황입니다.

2중으로 타고 들어가서 작업을 해야 하는 상황인데, 저는 처음에 '이게 가능할까...?'라고 생각했는데, 이런 상황을 고려한 Visual Studo Code Extension이 있습니다 !!

8.1. Remote Development Extension 설치

Visual Studo Code의 'Extensions'을 클릭해서 'remote'를 검색하면 Remote Development가 나오는데, 이것을 설치해 줍니다.

8.2. Container 연결

이제 Visual Studo Code와 Tensorflow Container를 연결해 보도록 하겠습니다.

WSL을 실행하고 Tensorflow Container도 run 시킵니다.

그 후에 Visual Studo Code로 와서 왼쪽 아이콘 중에 아래 그림과 같은 아이콘을 클릭하면 'Remote Explorer'가 열립니다.

여기에서 'WSL Targets'를 선택합니다.

아래와 같이 실행중인 WSL Ubuntu 20.04가 보이고, 왼쪽 아래에 조그맣게 파란색으로 'WSL: Ubuntu 20.04'가 있습니다.

이것을 클릭하면 아래와 같은 메뉴가 쭉~ 나오는데, 그 중에서 'Attach to Running Containers...'를 클릭합니다.

그러면, 아래와 같이 현재 실행중인 Tensorflow Container가 보입니다. 클릭해서 연결합니다.

연결이 되면 아래 그림과 같이, Visual Studo Code 왼쪽 아래에 연결된 Tensorflow Container 정보가 나옵니다.

이제 모든 준비가 끝났습니다. 아래와 같이 간단한 예제 Code를 실행해 보면 정상적으로 실행되는 것을 확인할 수 있습니다.

9. Image Commit

실제로 Model Train을 시키기 위해서는 Tensorflow뿐만 아니라, 다른 Package들도 필연적으로 필요합니다.

앞에서 설명했듯이, Container 종료 후에 Commit을 해주지 않으면 설치한 Package들이 다음 Container 실행시에 제대로 보이지 않습니다.

이를 미연에 방지하고자, 수정된 Container를 Image로 저장(Commit)하는 방법을 알려드리겠습니다.

9.1. docker commit 사용법

docker commit은 아래와 같이 사용합니다.

docker commit [원래 Container ID] [새로 저장할 Container Name]

 

Container ID는 docker ps -a 를 입력하면 현재 Container들의 정보가 나오는데, 여기에서 확인할 수 있습니다.

우리가 여러 Package들을 설치한 Container의 ID가 6164b18a5d78이고, 새로운 tensorflow/tensorflow:2.15.0-gpu-with-package라는 Image로 저장하려면 아래와 같이 사용하면 됩니다.

docker commit 6164b18a5d78 tensorflow/tensorflow:2.15.0-gpu-with-package

다음부터는 tensorflow/tensorflow:2.15.0-gpu-with-package Image로 Container를 실행하면 이전에 설치된 Package가 모두 들어가 있는 Container가 실행이 됩니다.

10. 최종 Test

이제 실제로 Train시켜 보도록 하겠습니다.

간단하게 이전에 만들어 놓은 Dog & Cat Classification 예제를 실행해 보도록 하겠습니다.

아래와 같이 실행이 잘 되네요.

Linux에 Docker를 설치하고 사용하면 좀 더 편하게 Setting이 가능하겠지만, Windows가 편한 분들에게 이 Post들이 도움이 되셨으면 좋겠습니다.

긴 글 읽어주셔서 감사합니다 !!

728x90