Author: byun1114

  • 연필 깎기의 정석, 데이비드 리스 지음, 정은주 옮김

    마지막 부분을 보면 저자는 아마 미국통계국에서 일하는 것으로 보인다. 연필을 깎는 것이 세컨잡일 것 같다.

    연필 깎는 행위를 정말로 다양한 방법에서 고찰하고 있다. 보고 있노라면 미친 사람 같다. 60만원이 넘어가는 가격의 연필깎이의 존재도 있고, 아주 저렴하게 깎는 방법도 있다. 전동 연필 깎이는 극혐한다. 전동 연필 깎이로 할 수 있는 일이라고는 그것을 부수는 일 밖에는 없다.

    한 분야에 심도 있게 미치는 사람은 많이 있다. 나도 그런 방향으로 심도 있게 미쳐보고 싶다.

  • 엑셀(XLSX)을 CSV로 변환하기

    이건 정말 수 많은 방법이 있을 것이다. CLI로 작업하기 위해서 내가 알고 있는 소소한 것들을 조합하였다.

    우선 데이터 첫 전처리 과정으로 한 번만 변환하면 된다. 파일 이름이 다양할 것이니까 이를 고려한다.

    다음과 같은 Python 파일을 만든다. ‘python convert.py 파일이름’ 이런 식으로 명령어를 넣으면 CSV 파일로 변환하는 간단한 코드이다. Pandas를 이용하면 편하게 된다고 한다.

    import pandas
    import sys
    
    input_name=sys.argv[1]
    output_name=input_name.split('.xlsx')[0]+'.csv'
    xlsx = pandas.read_excel(input_name)
    xlsx.to_csv(output_name)
    

    다음은 모든 XLSX 파일에 대하여 이 코드를 실행하여 주면 된다. 쉘스크립트를 이용하였다.

    xlsx_lists=`ls -R *.xlsx`
    
    for xlsx_file in $xlsx_lists; do
            echo $xlsx_file
            python convert.py $xlsx_file
    done
    

  • 종의 기원

    너무나도 유명한 책인 찰스 다윈의 ‘종의 기원’. 이 책은 그 중에서도 초판을 번역한 것이다.

    원제에서 조금 생략된 제목이다. 초판의 원제는 ‘On the origin of species by means of natural selection or the preservation of favoured races in the struggle for life’으로 책의 내용을 함축하고 있다.

    다윈은 여러 관찰을 통하여 당시 널리 받아들여지던 창조설을 부정하고 있다.

    먼저 인간이 개입하고 있는 품종 개량을 이야기하고 있다. 품종 개량 과정을 통하여 특정 형질을 가지고 있는 개체들을 만들고 유지할 수 있음을 보여준다.

    그 다음에는 변종 중에서는 생식 능력이 없는 것이 있음을 보여주고 있다. 이게 왠 이야기인가 하겠지만, 생식 능력의 유지는 점진적인 변이의 하나의 증거로 삼고 있다. 과도한 변이가 일어나면 생식 능력을 유지할 수 없기 때문에, 종을 유지할 수 없다는 것이다. 이 과정을 통하여 점진적인 변이가 있었음을 제시한다.

    정말 많은 방법을 통하여 식물의 씨앗이 퍼져 나갈 수 있음을 보여주고 있다. 새들이 생각보다 오래동안 날 수 있기 때문에 새의 몸에 붙어서 먼 거리를 이동할 수 있음을 보여 준다. 바닷물에서 오랫동안 있던 씨앗도 발아할 수 있음을 보여줌으로서 이동 과정을 설명한다. 생뚱맞은 이런 과정이 필요한 이유는 세인트 헬레나나 어센션 섬과 같은 섬에서도 동물과 식물이 있기 때문이다. 이렇게 퍼져 나갈 수 있다면, 연속성이 없는 곳이 있더라도 그 지역에 살던 생명체가 사라졌기 때문으로 이야기 할 수 있는 것이다.

    이렇게 점진적으로 변화하고 퍼져 나간다는 것은 현재와 미래에 대한 내용이다. 그렇다면 이 과정이 과거에도 일어나지 않겠는가하는 생각을 할 수 있게 된다. 그렇다는 것은 모든 생명체의 기원이 되는 최초의 생명체라는 존재를 생각할 수 있다.

    또한, 이런한 모든 것의 기원이 되는 생명체에서 환경에 적합하게 바뀌어 가며 살아가는 것이 창조주의 뜻이 아니겠는가하는 이야기도 언급된다.

    예시가 매우매우 많아 읽기가 어렵지만, 논리 전개에 있어서는 좋은 책이다.

  • 오래된(?) PC에 PyTorch, Torchvision 설치하기

    항상 최신의 PC를 이용할 수는 없는 법. 오래된 PC에 PyTorch를 PIP를 이용해서 설치하고 나서, 실행을 하면 오류가 발생한다. 

    [W NNPACK.cpp:80] Could not initialize NNPACK! Reason: Unsupported
    hardware.

    AVX2 명령어를 지원하지 않는 CPU에서 해당 오류가 발생한다고 한다. 구글 검색을 해보면 PyTorch를 소스로 설치하면서 USE_NNPACK=0으로 설치하면 된다고 한다.

    USE_NNPACK=0 python3 setup.py install

    그런데 문제는 지금부터다. Tesla K40c 은 매우 오래된 아키텍쳐 기반이다. 그래서 추가 옵션이 필요하다. Tesla K40c는 3.5라고 한다.

    TORCH_CUDA_ARCH_LIST="3.5" USE_NNPACK=0 python setup.py install

    그 다음에 딥러닝 학습에 필요한 여러 패키지를 설치한다. 대부분 torchvision을 이용할 텐데, torchvision도 소스로 설치해야 한다. 혹시나 싶어서 pytorch와 같은 방법으로 설치했다.

    git clone --recursive https://github.com/pytorch/vision
    cd vision
    TORCH_CUDA_ARCH_LIST="3.5" USE_NNPACK=0 python setup.py install

    재현이 될지는 모르겠다.

    NNPACK은 경고 메세지는 뜨지만, 일단 지나간다.

    YOLOv5가 실행되기 시작했다.