2022. 9. 18. 17:00ㆍ03. Resources/Docker, Kubernetes
슈퍼 레졸루션
과 선배의 결혼식장에 가서 옛날 사진을 틀어주는 것들을 보다가 갑자기 슈퍼레졸루션에 대해 궁금증이 생겼다.
슈퍼 레졸루션이란 저해상도의 이미지를 고해상도로 바꿔주는 딥러닝 기술을 얘기한다.
https://github.com/idealo/image-super-resolution
무튼 이런 기술을 한 번 내 컴퓨터에서 돌려보려고 작업을 시작했다.
시도 1: 바닐라 우분투 도커 이미지
패키지나 그런 것들을 막 설치하고 싶진 않아서 도커를 이용해서 하려고 했고, python3을 공식 지원하는 바닐라 우분투 20.04 이미지를 이용해서 작업을 시작했다.
docker hub에서 우분투 20.04 이미지를 받아서 필요한 패키지를 설치하고, ISR 패키지를 설치하는 과정이었나.. amd64 architecture가 아니면 지원하지 않는다는 에러를 봤다... 후...
그래서 컨테이너를 실행시키면서 이미지를 당겨올 때 어떤 옵션을 줘야하는지 찾아봤다.
docker run -it --platform linux/amd64 ubuntu:20.04 /bin/bash
docker run 의 옵션으로 --platform linux/amd64 를 주면 amd64의 아키텍쳐를 가진 이미지를 사용할 수 있다고 한다.
그럼 진짜 저 아키텍쳐로 이미지가 열렸는지 확인해보자.
해당 이미지로 열린 컨테이너에 접속해서 아래 커맨드를 입력했다.
dpkg -s libc6 | grep Arch
결과는 아래 사진처럼 amd64 아키텍쳐를 가진 것을 확인할 수 있었다.
이렇게 하고 패키지 설치도 다 하고나서 실행이 안되길래 위의 공식 레포에서 제공하는 도커파일을 이용해서 테스트를 돌려보기로 했다.
시도 2: 제공된 Dockerfile.cpu
제공된 도커파일을 빌드해서 쓰는 방법이 문서에 나와있어서 시도해봤는데 grpc 설치때문에 25분을 기다렸지만 에러 메시지를 볼 수 밖에 없었다...
역시 아키텍쳐 문제인 것 같아서 도커파일 빌드 옵션에 아키텍쳐 정보를 추가해주는 방법을 시도해봤다.
docker build -t isr . -f Dockerfile.cpu
기존에 제공된 코드가 위와 같다면 아래 코드처럼 플랫폼 정보를 추가해서 다시 빌드를 했다.
docker build -t isr -f Dockerfile.cpu --platform linux/amd64 .
GRPC 설치를 포함한 인고의 이미지 빌드를 마치고 컨테이너를 실행시켰는데
https://github.com/tensorflow/tensorflow/issues/52845
텐서플로우 단에서 에러가 나서 돌릴 수가 없었다~~ 쳇~~~
EC2나 GCP에서 가상 머신 하나 무료로 할당받아서 돌려보는게 최선일 것 같다~
참고
- https://forums.docker.com/t/run-x86-intel-and-arm-based-images-on-apple-silicon-m1-macs/117123
- https://bean-and-yu.tistory.com/23
- https://velog.io/@m0ai/M1-%EB%A7%A5%EC%97%90%EC%84%9C-x8664-%EB%8F%84%EC%BB%A4-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EB%B9%8C%EB%93%9C-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0
'03. Resources > Docker, Kubernetes' 카테고리의 다른 글
[Nvidia/Docker] Nvidia docker image - key error 해결 방법 (0) | 2022.05.27 |
---|---|
[일단 시작해 - 도커] 2. 도커로 우분투 실행시키기 (0) | 2021.04.14 |
[일단 시작해 - 도커] 1. 도커 설치 (Docker, 맥OS) (0) | 2021.04.12 |
[일단 시작해 - 도커] 0. 현재 나의 개발 환경 (0) | 2021.04.10 |