해당 내용은 아래 링크에서 확인할 수 있다.

library.konkuk.ac.kr/#/service/thesis

 

건국대학교 상허기념도서관

 

library.konkuk.ac.kr

 

건국대 학위 논문 관련하여 작성 양식이나 다른 서류들은

따로 고지가 되어 메일이 와서 안내를 받거나, 찾기가 쉬운 편이지만,

저작권 동의서와 학위 책자 제출 관련해서는 그냥 도서관 링크로 연결되는 것을 확인하였다.

 

다른 분들이 해당 정보를 바로 얻기가 어렵다고 판단하여 여기 블로그에 적어두겠다.

 

 

피곤하지만, 졸업을 위해 마지막 스퍼트.

1. 트레이닝된 결과들을 보았는데 이전 실험에 비해서 성능이 떨어졌다는 것을 육안으로도 확인할 수 있었다.

2. 원인파악을 해보았는데, 텐서를 normallize 하는 과정에서 텐서의 차원을 한 차원 낮게 설정하는 메서드를 이용한 것같다.

3. 메서드 상에서 확장하여 재트레이닝을 수행중인데, 확장차원이 맞다면 1번 실험과 다른 결과가 나올 것이다.

 

proposed2 방법이 망한 방법이고

proposed3 방법이 이번에 시도하는 방법이다. 

이거는 큰 글씨로 쓰고 싶으니까 큰 글씨로 쓰겠다.

나는 하드웨어 잘 모른다.

근데 오늘 고치면서 진짜 하드웨어 50퍼 알던 걸 70 퍼 정도 알게되었다.

(파워 서플라이 부분은 보드랑 GPU 한정 조립할 수 있게 됨)

 

오늘 상황 요약

1. GPU를 변경하려는데, 업체 분이 출장으로 와주셔서 교체하기로 함. 핀이 맞지 않는 상황에서 핀을 일부만이라도 꽂고 구동이 되냐고 여쭤보고 구동하려는 데 갑자기 컴퓨터가 펑하고 터짐. 전압이 맞지 않는 상황에서 강제로 기기를 구동하면 망한다는 사례를 눈앞의 폭죽으로 직접 느낌.

 

2. 파워가 고장난 것으로 판명. 컴퓨터를 고치려고 택시타고 업체가서 파워 변경, 다른 부품 이상 없는지 확인. 다행히 이상 없음. 파워 값만 받고 고쳐주심(솔직히 파워 터져버린 시점에서 나몰라라 하실까봐 너무 걱정되었는데 학교와 오래 일하셨는지 정말 친절하게도 커피도 사주시고 택시비도 내주심. 나중에 내 컴퓨터도 여기서 바꿀까 싶을 정도로 일일이 확인해주시고, 요금도 받지 않으시다니, 직접 들고 이동하는 것만 아니었다면 정말 완벽했을 정도로 서비스가 좋았다..)

 

3. 조립 완료하고 택시타고 다시 학교로 돌아와서 컴을 다시 연결

(무거운거 들어서 그런지 손이 지금도 덜덜 떨림. 하지만 나는 평소에 그정도 무게를 가방으로 들고다니는 강한 여자이기 때문에 그냥 헬스했다고 생각하기로 함)

 

4. 컴을 연결했는데 모니터가 안나와서 확인해보니 GPU 에 연결한 것이 아니라 ROM 쪽 보드에 연결해서 안나옴(바보)

 

5. 트레이닝을 하려는데 gpu 바꾸면 CUDA를 다시 설치해야 하는지 트레이닝이 안됨 그래서 CUDA 제어판 들어가서 다 지우고 C 드라이브에 가서 GPU TOOLKIT 라고 되어 있던거 삭제하고 다시 깔음

developer.nvidia.com/cuda-90-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exenetwork

여기 들어가서 이거 다시 깔음.

 

6. 그리고 cudnn 을 버전에 맞는 최신껄로 설치함

developer.nvidia.com/compute/machine-learning/cudnn/secure/7.6.5.32/Production/9.0_20191031/cudnn-9.0-windows10-x64-v7.6.5.32.zip 링크 여기

지금 컴퓨터 들고왔더니 캡쳐하고 글쓸 마음이 안들어서 일단 일대기 쓰고 정리만 하기로 함.

솔직히 말하면 썰 푸는거를 글로 쓰는거는 되게 심적으로 안정되는데

지금 이거 실험 다시 하는거 여기다 적을 생각하니까 조금 슬퍼져서 못쓰겠음.

 

7. 그리고 재부팅함. 그래도 GPU가 작동 안 함.

이 이후의 글은 에러로 판별하고, 에러 관련 글에 작성하도록 하겠다.

 

데이터가 학습이 되지 않음

- 학습할 데이터의 차원을 모두 동일하게 셋팅

- 1600x1200x3으로 셋팅

- 셋팅하는 방법은 이전 게시물 참고할 것.

 

cuda 메모리 에러

- batch 수를 줄임 (하지만 batch 크기가 1이라서, 이를 해결하기 위해서는 gpu 교체가 필요함.)

- 학습할 이미지 개수/크기를 줄이는 것도 시도하였으나, 이건 메모리 에러에 큰 영향을 주지 않았음.

 

다음과 같이 학습이 된다.

ntire 경진대회를 참가하지 않았지만, 그 데이터를 이용하여 트레이닝을 해보기위해서는

제공되지 않는 transmission map과 atmospheric light를 만들어낼 필요가 있었다.

 

그래서 다른 코드를 가져와서 transmission map과 atmopheric light를 만들어 내기로 했다.

 

아래는 생성한 transmission map과 atmospheric light이다.

* atmospheric light의 경우, 2차원 bgr로 표현할 필요가 없었지만,

* 어차피 트레이닝에 들어가면서 다시 차원을 확장하는 부분이 있길래, 첨부터 이미지처럼 취급하기로 했다.

 

여기서 내가 기억해야 할 코드 부분만을 적어두도록 하겠다.

 

transmission map의 경우 단순 1600x1200인데, 그거를 3차원으로 복사하여 확장하였다.

(BGR에 대해서)

그리고 atmospheric light의 경우, 상수값을 1600x1200x3으로 확장하였다.

또한, 기존 값이 float이기 때문에 초기값을 float로 선언하여 int로 추후에 변경하는 코드를 사용하였다.

output_name_trans = './trans/'+file[:-9]+'_trans.png'
Transmap_np = np.dstack((Transmap, Transmap))
Transmap_np2 = np.dstack((Transmap_np, Transmap))
cv2.imwrite(output_name_trans, f2i(Transmap_np2))

output_name_atmos = './atmos/'+file[:-9]+'_atmos.png'
A_np = np.full((1200, 1600, 3), A[0], dtype = np.float32)
cv2.imwrite(output_name_atmos, f2i(A_np))

 

 

 

requirements.txt가 존재한다고 가정.

 

문제는 requirements.txt가 온전하지 않은 경우인데, 그런 경우에는

pip install -r <설치하고 싶은 모듈 이름과 정보>

를 쓰면 된다.

 

그리고 pytorch의 경우, pip로 설치하는 것 보다는 공식 홈페이지에 가서 cuda에 맞는 걸 깔고,

없으면 wheel로 깔아야한다.

 

여러 시도 끝에 train 성공함.

 

 

해야 하는 것.

 

윈도우의 경우, 바로 setup.py를 돌리면 에러가 나기 때문에

python setup.py install

python setup.py build

를 해주어야 한다.

 

그리고 setup.py 셋팅을 다 해주면 json 에러가 나는데, 이거는 json의 경로를 위 사진처럼 써주면 된다.

python train.py <json 경로>

그냥 기억 안날까봐 정리해두는 내용.

가상환경 목록을 확인하기 위해서는 

conda info --envs

를 입력해서 확인하면 된다.

그리고 우분투에서는 conda activate 가상환경 이름으로 구동하는 것이 아니라

source activate 가상환경이름

이렇게 구동한다.