koodev

ML 프레임워크 GPU 연산 지원 확인하기

Programming

매 번 다시 검색해서 알아내는 것이라 여기에 정리해둔다.

Tensorflow (버전 2.2와 1.14에서 확인)

import tensorflow as tf
tf.test.is_gpu_available(
    cuda_only=False, min_cuda_compute_capability=None
)

PyTorch (버전 1.6에서 확인)

import torch
torch.cuda.is_available()

참고:

mkvirtualenv 실행시 ailed to find interpreter for Builtin discover of python_spec 에러

Programming

Ubuntu 18.04 를 새로 설치한 PC에 파이썬 가상환경을 만들기 위해 virtualenv와 virtualenvwrapper 패키지를 설치하였다. 그런데 가상환경을 만드려 하니 (mkvirtualenv) 아래와 같은 에러메시지가 뜨면서 생성이 되질 않았다.

RuntimeError: failed to find interpreter for Builtin discover of python_spec='python3'

'python3' 라고 나온걸 보고 python2 버전의 가상환경를 만들어 보니 이번에는 잘 생성이 되었다.

원인은 python3-dev 패키지가 설치가 되지 않아서인데, sudo apt install python3-dev 를 실행하고 가상환경을 만들면 문제 없이 실행된다.

참고: blog.cloudsys.co.kr/ubuntu-18-04-python3-venv-setup/

Python 업그레이드 후 virtualenv 문제

Programming

최근에 Python 버전을 3.6에서 3.7로 업그레이드를 하였는데, Python3 버전을 사용하는 virtualenv가 꼬였는지 Python을 실행할 수 없게 되었다. 그래서 해당 virtualenv를 지우고 다시 생성해 보았는데 아래와 같은 메시지가 나오면서 생성이 되지 않았다.

$ rmvirtualenv myenv3
$ mkvirtualenv -p python3 myenv3
-bash: /usr/local/bin/virtualenv: /usr/local/opt/python/bin/python3.6: bad interpreter: No such file or directory

결국 virtualenv 자체를 지웠다가 다시 설치해야 했다.

$ sudo pip uninstall virtualenv
$ sudo pip uninstall virtualenvwrapper
$ sudo pip install virtualenv
$ sudo pip install virtualenvwrapper

참고: https://discourse.brew.sh/t/virtualenv-broken-after-python-3-7-update/2586/5

Blender Vertex ID 지정해서 선택하기

Computer

특정 Vertex ID(번호)에 해당하는 점이 모델에서 어디에 위치해 있는지 알아야 할 필요가 있어서 그런 툴을 만들어 봐야 하나 생각해 봤는데, Blender에서 파이썬 스크립트 사용하여 해결할 수 있었다. 이에 대한 내용을 정리해 보았다.

우선 정점 인덱스가 잘 선택되었는지 알아보기 위해 Blender를 디버그 모드로 띄웠다. https://koodev.tistory.com/39 참고. 그리고 대상 모델을 로드하자.

Blender의 좌상단 메뉴 막대 Help 옆에 보면 "Choose Screen layout." 콤보박스에 "Default" 가 선택되어 있다. 이것을 "Scripting" 으로 바꾸자.

그러면 위와 같이 3분할된 화면 구성으로 바뀔 것이다. 이 3분할에서 좌상단이 Text Editor 인데, "+ New" 버튼을 누른 다음 입력창에 아래 코드를 입력한다.

import bpy
import bmesh

def select(*args):
    obj = bpy.context.object
    me = obj.data
    bm = bmesh.from_edit_mesh(me)

    vertices= [e for e in bm.verts]
    oa = bpy.context.active_object

    for vert in vertices:
        if vert.index in args:
            vert.select = True
        else:
            vert.select = False

    bmesh.update_edit_mesh(me, True)

(참고로 이 코드는 하단의 "Console" 창에 입력하면 바로 사용할 수 있다. 그런데, 인터프리터에서 들여쓰기를 자동으로 해 주기 때문에 한 번에 붙여넣을 수 없고 한줄씩 붙여넣어야 한다.)

이제 텍스트 에디터의 코드를 하단의 콘솔로 가져와야 한다. 콘솔창에 아래 명령어를 차례로 입력한다.

import bpy
code = bpy.data.texts['Text'].as_string()
exec(code)

이제 준비가 완료되었다. 콘솔에서 select 함수를 실행하여 정점 번호를 지정해 주면 된다.

참고

Emacs - Python 문서 열람시 멈춤현상

Emacs

제목을 두서없이 쓰긴 했는데, 다음 스택오버플로 링크와 똑같은 문제이다.

https://stackoverflow.com/questions/21517747/emacs-freezing-when-asking-jedi-auto-complete-information-while-interpreter-is-b

어느날부터 이맥스로 파이썬 문서를 열고, 커서를 움직이다가 보면 커서가 멈추고 에디터에 반응이 없게 되는 현상이 발생하기 시작했다. 파이썬 문서에서만 발생하며, C-g 를 연타하면 멈춤현상에서 빠져나올 수 있지만 잠시 후 다시 멈춤현상이 나타난다. 멈춤현상이 발생했을 때 top 명령어로 프로세스들을 봤는데 (elpy인지 jedi인지 확실하지 않지만) 어떤 파이썬 프로세스의 CPU 점유율이 100% 가까이 되었고, 메모리 사용량도 계속 늘어나고 있었다. 환경은 iMac 27-inch Late 2015, macOS Mojave Version 10.14.6, Emacs 26.3(25.1.1 에서도 동일) 이다.

elpy 관련 패키지를 추가로 설치한 지금은 멈춤현상이 발생하는 빈도가 많이 줄었다. M-x elpy-config 를 실행하면 elpy 설정정보가 나오는데, 여기에서 elpy 관련 추가 패키지들의 버전 정보 등을 보여준다. 내 경우 기본 패키지만 설치되어 있었고 그마저도 예전 버전이라서 기본 패키지와 더불어 추가 패키지들도 모두 설치했다. 패키지들은 jedi, autopep8, yapf, black, flake8 등이었고 pip 명령어를 실행할 수 있도록 elpy-config 버퍼에서 실행 링크를 제공하고 있다.

참고: https://emacs.stackexchange.com/questions/47128/elpy-autocomplete-stops-working-unexpectedly

'Emacs' 카테고리의 다른 글

Emacs JSON 과 C 블록 숨기기  (0) 2019.11.17
Emacs Major/Minor 모드  (0) 2019.10.23
Emacs Wdired 모드  (0) 2019.06.29
macOS 에서 Emacs 데몬이 종료되지 않는 문제  (0) 2019.06.07
Create a new file in ido mode  (0) 2019.06.07

pip 설치 중 setuptools 관련 오류

Programming

tensorflow-datasets 이란 파이썬 패키지를 설치 중 아래와 같은 오류 메시지가 나왔다.

원인은 setuptools 가 만료되서 라고 한다. pip install --upgrade setuptools

pip install --upgrade setuptools

입력 후 다시 pip install tensorflow-datasets 하니까 잘 동작하는 것을 확인했다.

참고: https://steemit.com/kr-dev/@wanabe/6hhg8

'Programming' 카테고리의 다른 글

PyTorch torch_shm_manager Runtime Error  (0) 2019.10.23
Tentative Symbol in C  (0) 2019.06.07
ARM A32 명령어셋 VZIP  (0) 2019.03.11
ARM A64 명령어셋 ZIP1, ZIP2  (0) 2019.03.11
ARM A64 명령어세트 기본적인 내용 정리  (0) 2019.03.11