딥 러닝 도구인 Caffe를 사용하면서 batch_size, max_iter, test_iter, epoch 등의 용어를 이해하는 것이 힘들었어서 이렇게 기록으로 남깁니다. 설명을 쉽게 하기 위해 사진을 Caffe로 처리하는 경우를 가정해 보도록 하겠습니다.

 

1. batch_size

배치(batch)는 한 번에 처리하는 사진의 장 수를 말합니다. Caffe에서 기본으로 제공되는 cifar10 예제의 cifar10_full_train_test.prototxt 파일을 열어보면 batch_size: 100 이라는 부분이 있습니다. 한 번에 100장의 사진을 처리한다는 의미입니다.

 

2. max_iter

반복(이터레이션, iteration)은 몇 개의 배치(batch)를 사용할 것인지를 의미합니다. max_iter는 기계 학습(머신 러닝)의 학습(training) 과정에서 반복을 몇 번 할 것인지를 정해줍니다. cifar10 예제의 cifar10_full_solver.prototxt 파일에 max_iter: 60000 이라고 되어 있는데, batch_size:100 이기 때문에 학습을 한 번에 사진 100장씩 60,000번 하겠다는 말이 됩니다. 총 사진 6,000,000장으로 학습이 이루어질 것입니다. 이 과정에서 사진이 중복될 수 있는데, 그에 대해서는 아래의 세대(이폭, epoch) 에서 설명하겠습니다.

 

3. test_iter

학습을 했으면 실전에 사용해 보아야 합니다. 예제에서 역시 batch_size:100 으로 되어 있습니다. test_iter:100 으로 설정되어 있는데, 그 말은 한 번에 사진 100장 씩 100번, 총 10,000장의 사진으로 학습 결과를 검사해 보겠다는 뜻입니다.

 

4. epoch

학습용 사진 전체를 딱 한 번 사용했을 때 한 세대(이폭, epoch)이 지나갔다고 말합니다. cifar10의 경우 사진 60,000장 중 50,000장이 학습용, 10,000장이 검사용으로 지정되어 있습니다. 그런데 max_iter에서 학습에 사진 6,000,000장을 사용하기로 했기 때문에 50,000장의 학습용 사진이 여러번 재사용되게 됩니다. 정확히 계산해보면 6,000,000 / 50,000 = 120 이니 한 사진이 120번 씩 재사용될 것입니다. 이 경우 120 세대(epoch)라고 말합니다. 검사용의 경우 사진 10,000장을 사용하기로 했는데 실제로도 사진이 10,000장 있으니 딱 한 세대만 있는 것입니다.

 

( 도움을 얻은 곳: https://groups.google.com/forum/#!topic/caffe-users/mUIi42aKWHQ )

 

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable


이 에러는 64비트 리눅스에서 32비트 하둡을 돌려서 생긴다고 합니다.

hadoop-env.sh 나 .bashrc나, 어디에든 다음을 추가해주면 해결됩니다.

원래는 $HADOOP_HOME/lib 으로 되어 있는 부분을 $HADOOP_HOME/lib/native 로 바꾸면 됩니다.


원래는 export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$HADOOP_PREFIX/lib" 이었던 것을 export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$HADOOP_PREFIX/lib/native" 로 바꾸시면 됩니다.

The processing instruction target matching "[xX][mM][lL]" is not allowed.


XML 파일이 파일 선언으로 시작되지 않을 때 나오는 오류 메시지입니다.

파일의 맨 처음 부분에 공백이나 주석이 있으면 이런 오류가 발생합니다.

E0201 15:14:22.851824 18611 common.cpp:104] Cannot create Cublas handle. Cublas won't be available.

E0201 15:14:22.859390 18611 common.cpp:111] Cannot create Curand generator. Curand won't be available.

F0201 15:14:22.868336 18611 syncedmem.hpp:18] Check failed: error == cudaSuccess (30 vs. 0)  unknown error


CUDA를 사용하려고 할 때에 이런 에러 메시지가 뜰 때가 있습니다. 모든 설치 과정을 올바르게 마쳤는데도 이런 에러 메시지가 뜬다면


cd /home/[자기 계정]/NVIDIA_CUDA-7.5_Samples/0_Simple/matrixMulDrv

make

sudo ./matrixMulDrv


해서 관리자 계정으로 CUDA 예제를 한 번 돌리면 문제가 해결됩니다. CUDA는 설치한다고 끝이 아니고, 설치한 후에 한 번 사용해줘야 그 다음부터 제대로 돌아가는 듯 합니다. 만약 위의 방법으로 안 된다면 예제 디렉토리에 있는 다른 예제들을 두세 개 정도 더 실행해 보세요.


( 간접적인 힌트를 얻은 곳: https://groups.google.com/forum/#!topic/caffe-users/DeLNtQ9i0HY )

 

예전에 산 문명 3 정품이 있는데 언제부터인가 실행이 안 되기 시작했습니다.


윈도의 KB3086255 보안 업데이트에서 secdrv.sys를 제한하기 때문에 나타나는 현상이라고 합니다. ( 참고 사이트: https://support.microsoft.com/ko-kr/kb/3086255 )


KB3086255 보안 업데이트를 제거하면 게임이 잘 실행됩니다만, 보안 업데이트 제거에 따르는 위험성은 사용자의 몫인 것 같습니다.

 

 

호객꾼들 경매 붙이기

 

여행을 하다 보면 가장 짜증나는 존재가 호객꾼들이다. 공항이나 버스 터미널을 나서기가 무섭게 수많은 호객꾼들이 주위를 둘러싸고 일부는 시끄럽게, 일부는 조곤조곤 말을 건다. 그런 호객꾼이 세네 명 이상이 되는 순간 정신이 없어지고 짜증이 솟구치기 마련이다. 하지만 중국 운남성 여행을 통해 그런 호객꾼을 여행의 재미로 바꿀 수도 있다는 것을 알게 되었다.

 

곤명 근처의 유명한 관광지 석림을 구경하고서 시외버스를 타고 곤명으로 돌아갔을 때였다. 계획이 바뀌어서 처음 가 보는 터미널에 내리게 되었는데 그곳에서 다시 시내 중심부로 가려면 어떻게 해야 하는지 전혀 모르는 상태였다. 무작정 버스 터미널 밖 큰길가로 나가보니 택시와 사설 운수 차량들이 줄지어 서 있었고 호객꾼들이 소리를 지르고 있었다.

 

너무 시끄럽고 정신이 없어서 일단 터미널 안으로 다시 들어왔지만 결국 택시를 타야 한다는 사실에는 변함이 없었다. 어느 정도 마음의 준비를 하고 택시들이 줄지어 있는 곳으로 걸어갔다. 순식간에 호객꾼들이 내 주위를 감싸고 소리를 지르기 시작했다. 한 호객꾼이 "빠싀(80원)!" 를 외쳤다. 시내까지 거리가 얼마인지는 모르겠지만 택시비로 중국에서 80원(한국 돈 약 18000원)은 말도 안 된다는 생각이 들었다. 짜증이 나서 뒤돌아서는데 그 옆의 호객꾼이 "70원!" 하고 외쳤다.

 

그 순간 머릿속에서 무언가 번뜩이는 게 있어서 첫 호객꾼을 쳐다보며 이렇게 말했다.

 

"니 슈어 빠싀 콰이. 타 슈어 치싀 콰이. 니 뚜오 샤오 치엔? (너는 80원 불렀어. 이 사람은 70원 불렀어. 너 얼마 해 줄래?)"

 

그러자 나를 둘러싸고 있던 호객꾼들이 일순간 당황하는 것이 느껴졌다. 잠깐의 정적을 깨고 갑자기 제 3의 호객꾼이 크게 소리쳤다.

 

"60원!"

 

이제 누가 봐도 내가 이긴 싸움이었다. 편의상 순서대로 호객꾼 A, B, C라고 하자. 나는 호객꾼 B에게 다시 말했다. "이 사람은 60원에 해 준다는데?" 그러자 호객꾼 B가 40원을 불렀다. ‘아싸!’ 하는 순간 호객꾼 A가 엄청난 영업 비밀을 실토했다. "야, 너네 일행 두 명이잖아? 그런데 저 사람 지금 한 명에 40원이라고 하는거야!" 그 말을 듣고 호객꾼 B를 쳐다보자 그 사람이 죄 지은 표정으로 얼어 있었다. 자, 경매 다시 시작이다.

 

"량거런 이치 뚜오 샤오 치엔? (두명 합쳐서 얼마?)"

 

80, 70, 60, 50을 거쳐 결국 40원까지 내려갔다. 50원쯤부터 호객꾼들이 하나 둘씩 자리를 뜨기 시작했고 40원에는 한 명만 남아 있었다. 30원까지 깎아 보려다가 귀찮아서 40원으로 합의를 봤다. 두 명 합친 가격이 40원이라는 것을 두세 번씩 확인했다. 80원, 만약 그것이 1인 가격이었다면 두 명에 160원이었던 처음 가격에서 최종 40원으로 택시비를 깎은 순간이었다.

 

지금까지 나는 경제학에서 말하는 ‘정보의 불평등’ 때문에 여행지에서는 여행자가 항상 바가지를 쓰게 된다고 생각을 했었다. 하지만 이번 여행을 통해서 꼭 그렇지만은 않다는 것을 알게 되었다. 경제학에는 정보의 불평등보다 더 우선되는 수요와 공급의 법칙이 있었다. 호객꾼 때문에 짜증으로 날릴 뻔한 하루가 재미있는 이야깃거리가 된 순간이었다.

윈도 10 하드 디스크 사용률 100% 문제 해결하기



윈도 10을 쓴 지 약 1년 정도 되었는데, 그동안 하드 디스크 100% 사용률 문제 때문에 정말 많은 고생을 했습니다. 컴퓨터를 켜면 거의 10분 동안 하드를 드르륵 드르륵 계속 읽는 통에 작업을 못 할 지경이었습니다.


그동안 인터넷을 뒤지면서 찾아본 해결책들을 이 블로그에 정리해 보려 합니다. 컴퓨터에 따라 해결방법이 각각 다른 것 같습니다. 해 보시고 댓글에 어떤 방법이 효과적이었는지를 알려주시면 다른 분들께 도움이 될 것입니다. 다른 방법이 있으신 분들도 댓글로 알려주세요.


-------------------------


1. 수퍼페치 (superfetch) 끄기

(1) 윈도 키 + R -> services.msc 실행 -> Superfetch -> 오른쪽 클릭 -> 속성 -> 시작 유형 -> 사용 안 함

(2) 윈도 키 + R -> services.msc 실행 -> Superfetch -> 오른쪽 클릭 -> 중지


둘 다 해주셔야 합니다.



2. 윈도 서치 (windows search) 끄기

(1) 윈도 키 + R -> services.msc 실행 -> Windows Search -> 오른쪽 클릭 -> 속성 -> 시작 유형 -> 사용 안 함

(2) 윈도 키 + R -> services.msc 실행 -> Windows Search -> 오른쪽 클릭 -> 중지


둘 다 해주셔야 합니다.



3. 윈도 팁 끄기

시작 -> 설정 -> 시스템 -> 알림 및 작업 -> 'Windows에 대한 팁 표시' 비활성화



4. 알림 끄기

시작 -> 설정 -> 시스템 -> 알림 및 작업 -> '앱 및 다른 보낸 사람의 알림 받기' 비활성화



5. 가상 메모리 늘리기

탐색기 -> 내 PC -> 오른쪽 클릭 -> 속성 -> 고급 시스템 설정 -> 고급 탭 -> 성능 설정 버튼 -> 고급 탭 -> 가상 메모리 변경 버튼 -> 처음 크기를 1024 x 램의 GB 용량으로 설정 -> 최대 크기를 처음 크기의 두 배로 설정 -> 확인 -> 적용


예를 들어 램이 4GB라면 가상 메모리 처음 크기를 1024 x 4 = 4096MB로, 최대 크기를 8192MB로 설정하는 식입니다.



6. 가상 메모리를 다른 파티션으로 옮기기

탐색기 -> 내 PC -> 오른쪽 클릭 -> 속성 -> 고급 시스템 설정 -> 고급 탭 -> 성능 설정 버튼 -> 고급 탭 -> 가상 메모리 변경 버튼 -> 주로 사용하는 하드디스크에는 '페이징 파일 없음' -> 잘 안 사용하는 하드디스크에 '사용자 지정 크기' 혹은 '시스템이 관리하는 크기'  -> 확인 -> 적용



-------------------------


다른 방법을 알게 되는 대로 글에 추가하겠습니다.


< 완성작 사진 >




지난 5년여 동안 MS 인체공학 키보드 4000을 써 왔습니다.

만족스러웠지만 키보드 크기가 크다 보니 마우스가 너무 오른쪽으로 치우치게 된다는 단점이 있었습니다.


그래서 키보드를 개조해서 텐키리스로 만든 뒤, 다시 그 숫자키 부분을 마우스 패드로 만들었습니다.

몇 달이 지난 지금까지 매우 편하게 사용하고 있습니다.


마우스가 몸쪽으로 더 가까이 오게 되자 어깨 통증이 싹 사라졌네요.

그동안 어깨 통증을 해결해 보려고 왼손으로 마우스 쓰기, 트랙볼 사용하기 등 여러 시도를 해봤지만 키보드 개조가 최고였습니다.


개조는 그다지 어렵지 않습니다. 많은 분들에게 유익한 자료가 되었으면 좋겠습니다.

아래부터 사진 자료 올라갑니다.


--


1. 키보드입니다.





2. 손 받침을 분리합니다.





3. 키보드 윗판과 아랫판을 분리합니다.





4. 떼어낸 키보드 상판은 뒤집으면 이렇게 생겼습니다.





5. 흔히 텐키라고 불리는 숫자키들을 다 빼고 키보드를 다시 조립합니다.





6. 적당한 두께의 종이를 준비합니다. 저는 집에 굴러다니던 박스를 사용했습니다.





7. 뽑아낸 텐키 부분의 윗 홈과 아랫 홈에 맞게 종이를 잘라냅니다. 좀 빡빡하게 자르시면 좋습니다.





8. 윗 홈과 아랫 홈에 종이를 낍니다. 그리고 윗 홈과 아랫 홈을 다 덮을 수 있는 크기로 종이를 하나 더 잘라 놓습니다.





9. 끼워넣은 종이에 양면테이프를 붙입니다.





10. 양면테이프를 사용해서 커다란 종이를 붙입니다.





11. 기존의 숫자키 부분을 마우스 패드로 사용하시면 됩니다. 완성!




+ Recent posts