목록2021/10 (12)
강
AWS S3에 있는 Imagenet validation dataset 50000개를 가지고 추론 작업을 해보고 있었다. 작업을 위한 코드는 다음과 같다. img = read_image_from_s3(file) # s3에서 image를 가져오는 함수 img = img.resize((224, 224), Image.ANTIALIAS) # file의 가로, 세로를 224x224로 resize img = np.array(img) # 이미지를 numpy type으로 변경 img = img.reshape((1, img.shape[0], img.shape[1], img.shape[2])) # batch size를 추가 위의 코드를 이미지의 개수만큼 반복을 하여 image 전처리를 진행한다. 정상적으로 진행 되는 이미지..
문제 인식 python 작업중 numpy로 된 값들을 소수점 4자리까지만 자르고 numpy가 아닌 list로 바꾸었을 때 다음과 같이 의도하지 않은 결과값을 얻었다. 빨간 박스 값 중 위의 값이 numpy이고 아래의 값이 일반적인 python list의 값이다. 보이는 것과 같이 list로 변환했더니 소수점 5자리 이상의 값들이 생김을 확인했다. 이 문제는 python list의 float와 numpy의 float type를 python에서 내부적으로 다르게 취급하여 발생하는 문제였다. 따라서 list로 변환했을 때 추가적으로 소수점값이 붙는 것이였다. 해결 방안 numpy의 dtype을 찍어보니 기본적으로 numpy.float32형임을 확인했다. 하지만 python에서는 현재 numpy.float64버..
pip로 tensorflow를 설치하려는데 자꾸만 Killed가 난다. 이유를 알아보니 내가 RAM이 작은 인스턴스를 사용하여 pip install을 하면서 cache를 담을 RAM 공간이 부족하여 중간에 프로세스가 Killed된 것이였다. 해결 방안 RAM 용량이 충분한 인스턴스로 바꾸는 것도 방법이겠지만 아래와 같이 옵션을 추가하여 해결할 수도 있다. pip install tensorflow --no-cache-dir 참조 https://stackoverflow.com/questions/30550235/pip-install-killed
AWS가 익숙한 나는 내 로컬 환경의 파일,폴더와 S3를 CLI로 업로드, 다운로드 한다. GCP에서도 딥러닝 작업을 위해 모델을 GCP의 Cloud Storage Bucket(GCS)에 올려두어야 하는 일이 생겼고 비슷하게 작업을 진행하고자 한다. 사전 작업 GCP CLI를 사용하려면 gcloud 관련 설정을 해주어야 한다. 관련하여 블로그에 글을 업로드 해두었으니 참고 바란다. gcloud 초기 설정 https://manchann.tistory.com/24 업로드, 다운로드 gsutil cp [내 환경의 파일] gs://[업로드할 버킷 경로] gcloud 환경설정을 하면 gsutil이라는 명령어로 Cloud Storage Bucket에 업로드를 할 수 있다. 이때 AWS와는 다르게 콘솔창에서 복사를 ..
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은 그대로 두고 내 ..