목록분류 전체보기 (41)
강
GCP를 이용하여 딥러닝 작업을 진행하다가 위와같은 에러가 발생하였다. 나같은 경우는 ml.googleapis.com이라는 GCP의 AI Platform 서비스의 API를 이용중 이였고 "API [ml.googleapis.com] not enabled on project [project name]." 라고 에러 메세지가 확인되었다. 혹은 "Permission denied to enable service [ml.googleapis.com]" 라고도 나올 수 있다. 해결법 gcloud services enable ml.googleapis.com --project=[프로젝트 이름] gcloud 명령어로 해당 서비스에 대해서 enable 처리를 해주면 해결된다. 여기서 중요한 점은 GCP의 프로젝트 이름에 GC..
GCP는 프로젝트 단위로 서비스를 관리하도록 한다. 따라서 VM, Function 과 같은 서비스를 이용하려면 우선 프로젝트를 생성해야 한다. 이번 포스팅에서는 GCP에서 프로젝트를 생성하고 삭제하는 방법을 다룰 것이다. 프로젝트 생성 우선 상단바에서 프로젝트 목록 버튼을 눌러준다. 나 같은 경우 이미 "jg-project" 라는 프로젝트를 생성했었고 해당 프로젝트에서 작업을 진행중이였기 때문에 해당 프로젝트의 이름이 나타나있다. 새 프로젝트 버튼을 누른다. 원하는 프로젝트이름을 입력 후 만들기 버튼을 누른다. 특별히 조직을 설정해주어야 한다면 상위 조직을 선택한다. 그러면 프로젝트가 생성된다. 프로젝트 삭제 프로젝트를 삭제할 일이 생겼다면 다음과 같이 정리해준다. 상단바 우측에 버튼을 누르고 프로젝트 ..
pip freeze명령어는 현재 내 환경에 pip로 설치되어 있는 라이브러리들을 모두 출력해 준다. 따라서 Django 프로젝트 처럼 requirements가 필요한 프로젝트를 만들 때 터미널에서 다음과 같이 쓰인다. pip freeze > requirements.txt pip freeze의 결과를 단순히 requirements.txt 파일에 넣는 것이다. 그런데 pip freeze 명령어의 특성상 내 환경의 모든 pip 라이브러리를 출력하는 것이기 때문에 의도치 않게 많은 라이브러리들이 requirements.txt에 적힐 수 있다. github에 내 프로젝트를 public하게 공개해야 하거나 꼭 그것이 아니더라도 해당 프로젝트에 필요한 패키지만 설치하도록 하는 것이 합리적일 것이다. 따라서 필요한 라..
scp는 cp와 비슷한 명령어이다. 특징은 원격장치의 파일을 가져올수도, 원격으로 보낼수도 있다는 점이 로컬에서만 가능한 cp와의 차이점이다. AWS EC2같은 인스턴스에 내 로컬 파일을 올려야하거나 ec2에 올려놓은 파일을 내 로컬 환경에서 써야한다면 이용할 명령어이다. 원격 장치에서 내 컴퓨터로 보내기 , remote(ec2) to local scp -i [identity file] [user]@[ip address]:[file path] [local file path] ec2에 나와 같이 pem으로 인증해서 ssh에 접속하는 사람은 위와 같이 pem key를 함께 입력해주어야 한다. 내 컴퓨터에서 원격 장치로 보내기, local to remote(ec2) identity file은 그대로 두고 내 ..
Google Cloud Platform에도 AWS와 같이 사용자 로컬 환경의 터미널에서 CLI를 이용할 수 있도록 지원한다. GCP에서는 gcloud라는 명령어로 cli를 이용할 수 있게 하는데 초기설정을 진행해보자. 패키지 설치 GCP CLI를 위해 관련 모듈이 포함된 파일을 로컬 환경에 저장해야 한다. Linux, Debian/Ubuntu, Red Hat/Fedora/CentOS, macOS, Windows 별로 파일을 다운받을 수 있는 경로가 다르다. Linux https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-360.0.0-linux-x86_64.tar.gz macOS https://dl.google.com/dl..
Preemptible 인스턴스란? preemptible은 직역하자면 선점 가능한 이라는 뜻을 가지고 있다. Preemptible 인스턴스는 따라서 다른 사람이 리소스를 선점할 수 있는 인스턴스를 뜻한다. 예를 들어 내가 30분 동안 ResNet 모델을 training 해야하는데 중간에 GCP에서 내 VM의 위치(리전)과 근접한 곳에서 요청이 폭주하면 내가 사용하던 리소스를 중단시키고 그 곳에 배정해 줄 수 있다는 것이다. 이는 AWS의 Spot 인스턴스와 매우 유사하다. 그렇다면 이렇게 불안정한 인스턴스를 왜 사용할까? 바로 저렴하기 때문이다. 위의 요금표는 GCP 인스턴스 중 TPU에 대한 요금을 나타낸다. TPU의 경우 일반적인 v2 인스턴스의 경우 시간당 4.5달러를 요구하는 반면 Preemptib..
저번 포스팅에서 python boto3 라이브러리를 이용하여 s3를 download 받는 방법을 정리했다. 하지만 s3 download는 s3에 있는 이미지 데이터를 로컬에 저장해두어야 한다는 단점이 있다. 로컬에 이미지를 저장해야 하는 경우에는 괜찮겟지만, 나의 경우 굳이 이미지를 저장하지 않고 python 단에서 사용만 한 후 이미지에 대한 데이터만 뽑아두면 되는 상황이였다. 따라서 boto3의 object get 방식을 이용하여 python 단에서 이미지를 read하기만 하면 된다. import boto3 from PIL import Image s3 = boto3.resource('s3') def read_image_from_s3(filename): bucket = s3.Bucket(bucket_n..
Keras에는 미리 학습된 모델(pretrained model)들을 제공해 준다. 따라서 제공해주는 모델들을 자신의 컴퓨터 환경에 저장하고 추후에 로드하여 사용할 수 있다. 이번 포스팅에서는 pretrained model을 local 환경에 save하고 load해오는 방법을 알아보자. 작업 환경 pip install tensorflow pip install keras 필요한 라이브러리를 pip로 깔아주자. 나는 tensorflow 1.15.0, keras 2.1.5 버전에서 진행했다. pretrained model list keras에는 위와 같이 MobileNet처럼 Parameters수가 작은 모델 부터 VGG16같은 Heavy한 모델도 지원해주고 있다. save model save model을 위한..