본문 바로가기

개발

(131)
Ubuntu Locale변경 Ubuntu Descktop 을 설치하는 경우에는 한국어로 설치하거나 영문판으로 설치후 Language 설정에서 한국어 언어팩을 설치하고, 설정을 쉽게 할 수 있습니다. 하지만, Ubuntu Server 를 설치하는 경우 Ubuntu 에서 한국어 Locale 을 설정하는 방법은 명령어로 처리해야합니다. 이 방법은 크게 3가지가 있는데 첫번째는 locale-gen 이용, 두번째는 dpkg-reconfigure 이용, 세번째는 /etc 아래의 locale 설정 파일 수정을 하는 것입니다. 이 방법 중에서 locale-gen, dpkg-reconfigure 명령어를 이용하는 방법을 정리 하였습니다. # locale-gen 을 이용한 설정 1. 설치된 Locale을 확인 locale 2. 한글 패키지 설치 su..
ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory 해결 방법 CUDA 10 을 설치하고 CUDNN 7.4.2 를 설치 하였는데 아래와 같이 libcublas.so.10.0 파일을 찾을 수 없다는 에러가 난다면? ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory 1. 아래와 같은 명령어로 conda 로 cudatoolkit, cudnn 을 설치하면 된다. conda install cudatoolkit conda install cudnn 2. 1번으로 안된다면 CUDA 10 을 설치하면 된다. (developer.nvidia.com/cuda-10.0-download-archive?target_os=Linux)
UBUNTU NAMESERVER 설정 방법 UBUNTU 를 설치하고 ssh 로 접속하여 apt update 를 하다 보면 아래와 같이 Connetion Error 가 나는 경우가 있다. 이런 경우는 대부분 nameserver 설정이 잘못 된 경우가 많다. 이를 해결 하기 위해서는 /etc/resolv.conf 파일에 name server 를 입력하면 된다. 그런데, 이렇게 설정하고 REBOOT 을 하니 apt update 시 Connection Error 가 발생한다. 이것은 resolve.conf 의 기본 설정 파일이 수정 되지 않아서 발생한다. 이 문제는 /etc/resolvconf/resolv.conf.d 의 base 파일에 name server 를 입력하면 된다. 이렇게 하면 REBOOT 후에도 NAMESERVER 가 초기화 되지 않는다.
ValueError: could not broadcast input array from shape… 에러 해결 방법 GAN 을 이용하여 이미지를 합성 하다 보면 could not broadcast input array from shape could not broadcast input array from shape 에러가 발생하는 경우가 종종 발생한다. ValueError: could not broadcast input array from shape (64,64,3) into shape (64,64) 이런 경우는 어떻게 해결 해야 할까? 이런 문제는 대부분 Source 이미지가 흑백 이미지라서 발생하는 경우가 많다. 아래의 코드처럼 Pillow 라이브러리를 이용하여 RGB 로 다시 저장을 하면 이런 문제는 쉽게 해결이 가능하다. from PIL import Image img = Image.open(img_name).co..
Python TIP : pillow lib image resize - 이미지 리사이즈, 타입 변경 AI/ML 을 이용한 이미지 데이터를 만들다 보면 Image Crop 을 한다거나 Image Resize, Image Type Convert 와 같은 작업을 많이 하게 된다 . OpenCV 와 같은 라이브러리를 이용하는 것도 좋지만, PIL 라이브러를 이용하면 아래와 같이 쉽게 Image Resize, Type Convert 가 가능하다. from PIL import Image source_image = "수정할 이미지 파일 이름" source_image = "수정된 이미지 저장 파일 이름" image = Image.open(source_image) # resize 할 이미지 사이즈 resize_image = image.resize((640, 640)) # 저장할 파일 Type : JPEG, PNG 등 ..
Python Tip : 디렉토리가 존재할 경우 경로를 모두 지워버리고 새로 만들기 디렉토리가 존재할 경우 모든 경로를 지워버리고 새로 만드는 것은 아래와 같이 rmtree 함수를 이용하면 된다. import os import shutilif os.path.exists(save_path): shutil.rmtree(save_path) os.mkdir(save_path)
Ubuntu 에서 multifile name 변경 ML/AI 를 위해 데이터 작업을 하다 보면 파일 이름에 구분을 주기 위해 특정 파일들의 이름에 Prefix 이름을 일괄로 변경하고 싶은 경우가 많이 발생한다. 물론 10개 내외의 파일이라면 일일이 mv 명령어나 파일 관리자로 쉽게 이름을 변경 할 수도 있다. 하지만!! 파일을 몇백개라면 어떨까? 이 파일들에 이름 맨앞에 특정 Prefix 를 가지도록이름을 바꿀까? 방법은 간단한다. mmv 명령어를 이용하면 된다. mmv 란 Unix 계열 운영 체제에서 표준 와일드 카드를 사용하여 파일을 이동, 복사, 추가 및 이름 바꾸기를 할 수 있는 유틸리티입니다. Debian 기반 시스템의 기본 리파지터리에 포함 되어 있으므로 apt 패키지 관리자로 쉽게 설치가 됩니다. [우분투] sudo apt install m..
YouTube Data Api 사용하기 YouTube API 를 이용하여 영상 채널 리스트를 조회하거나, 영상을 조회하는 등의 작업을 쉽게 할 수 있다. 이런 YouTube API 를 이용하기 위해서는 아래와 같이 YouTube Data Api 사용 설정을 하고 API Key 를 생성 하면 된다. 1. https://console.developers.google.com/apis 접속 후 youtube data Api v3 를 선택하여 사용 설정을 한다. 2. https://console.developers.google.com/apis 접속 후 사용자 인증 정보메뉴에서 “사용자 인증 정보 만들기 > API키” 를 클릭한다. 3. 생성된 API 키를 이용하면 YouTube Api 를 이용 할 수 있다. 4. 일일 데이터 제한 및 데이타 제한 늘리..
Jenkins pipleline's get date(파이프라인에서 날짜 구하기) Jenkins pipeline 으로 CI/CD 환경을 구성한 경우 artifact 를 업로드 하거나, 명령어를 실행할 때 날짜를 이용하는 경우가 많다. 이런 경우에 Jenkins Pipeline 에서는 아래와 같이 Script 를 이용하면 쉽게 날짜를 구하여 사용 할 수 있다. import java.text.SimpleDateFormatpipeline { agent any stages { stage('Prepare Today Date') { steps { // java 라이브러리를 이용하여 날짜를 구한다 script { def dateFormat = new SimpleDateFormat("yyyyMMdd") def date = new Date() today = dateFormat.format(date) ..
OSX - Mojave 에서 mecab-python3 설치하기 OSX - High Sierra 에서 mecab-python3 라이브러리를 설치하기 위해서는 아래와 같은 pip 명령어로 설치가 쉽게 됩니다. pip install mecab-python3 하지만~ OSX - Mojave 에서는 pip 설치 명령어를 실행하면 아래와 같은 gcc 라이브러리 오류가 발생한다. pip install mecab-python3 [Error Message] MeCab_wrap.cpp:3051:10: fatal error: ‘stdexcept’ file not found 이런 에러가 발생하는 이유는 OSX - Mojave 에서 기본적으로 설정되는 GCC가 mecab-python3 를 빌드 하는데 필요한 라이브러리를 가지고 있지 않기 때문이다. 이 문제를 해결하기 위해서는 GNU GC..