Category: Python

  • Enlarging smaller images before inputting into convolutional neural network: zero-padding vs. interpolation

    CNN에서 모델에 들어가는 이미지의 크기는 항상 일정해야 한다. 이미지의 크기가 작으면 요구하는 크기에 맞게 키워야 한다. 그 때 사용하는 방법이 사방을 0으로 둘러싸는 방법(zero-padding)과 비율에 맞게 키우는 방법이 있다. 이미지를 비율에 맞게 크게 하는 것은 어떤 방법에 따라서 임의의 값을 생성한다는 것이고 이를 보간법(interpolation)이라고 한다.

    이 논문에서는 zero-padding과 interpolation 사이에 성능의 차이는 없다고 말하고 있다. 다만, zero-padding 된 부위가 계산 속도를 빠르게 해줄 수 있어서 더 좋지 않겠냐고 제시한다. 아직 이와 관련된 다른 이야기들은 찾기 못했다. 이와 같은 문제가 별로 상관이 없거나 아니면 작은 크기에 맞는 모델을 학습했다는 뜻이 아닐까 생각된다. 논문으로 쓸 만큼의 가치가 없는 것이 가장 적당한 이유가 아닐까 싶다.

    Journal of Big Data. 2019;6(1):98.

  • .rand 와 .randn

    교재를 따라서 계속 실습하고 있는데 결과가 심하게 차이가 나서 무엇이 원인인지 찾아보았다. 실행을 덜 시켜서 그런가 싶어 끝까지 실행해 봤는데도 모르겠고, 오타가 있는지, 들여쓰기는 잘 되었는지 확인해 보아도 찾지를 못했다. Github에서 제공 코드를 받아서 실행해 봤더니 이건 또 실행이 잘 되었다. 그래서 코드를 출력한 다음에 하나하나 확인해 보았다. 그 결과 .randn으로 해야 할 것을 .rand 로 되어 있을 것을 알게 되었다.

    .randn은 평균이 0이고 분산이 1인 난수 생성할 때에 사용한다.

    .rand은 0에서 1사이에 균일한 난수를 생성할 때에 사용한다.

  • Hyperparameters

    Hyperparameters
    예시에서 사용하는 모델 층의 종류와 크기, 배치 크기, 학습률 등 머신러닝 모델이 매우지 않고 사용자가 직접 지정해주는 값을 ‘하이퍼파라 미터’라고 합니다. 모델의 가중치(파라미터)를 최적화하는데 많은 영향을 주게 됩니다. 따라서 이 하이퍼파라미터를 최적화하는 것도 딥러닝 에서 데이터를 모으는 과정만큼이나 중요합니다.

  • Python 3.5.10

    몇 일전에 release된 Python 3.5.10을 설치하여 보았다. 뭐가 문제인지는 모르겠으나 가장 중요한 Jupyter가 실행 안된다. 그래서 다시 이전 버젼으로 돌아왔다. 직접 컴파일하는 방식의 좋은 점은 이전 버젼 폴더로 가서 다시 sudo make install 하면 돌아갈 수 있다는게 장점인 것 같다.