일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Ubuntu동글
- log파일
- 전체내용
- #cudnn
- #python gpu
- 화면확대고정
- 치환 기능
- weight histogram
- 리눅스 비밀번호
- #cuda
- Rust설치
- #enviroment variable
- stepsize
- Xpad설치
- twolay
- Lagrange Multiplier
- tensorboard
- canon mf416dw
- 포트번호 변경
- Ubuntu 설치
- 학습성공
- Hidden layer output
- 듀얼부트
- restnet
- VGGNet
- ubuntu 원격
- #ubuntu 14.04(LTS)
- 3D convolution
- DenseNet
- Git branch 보이기
- Today
- Total
save the world
9주차 본문
<2018.03.12. 월>
잘못 된 Dataset 활용으로 학습이 제대로 되지 않음.
- 7주차에 학습이 된다고 했었던 내용들이 모두 무산되었다. 사용하고있던 이미지 데이터셋에 1번이미지부터 2976번까지가 모두 다른 이미지가 아니고 1번부터 300번까지의 이미지가 같은 이미지였다. 결국 301번과 1번이미지가 같은 이미지였음. 그런데 학습용 이미지로 1번부터 1976번까지 사용하고 테스트용으로 1977부터 2976까지 사용했으니... 학습했던 이미지에 대해서 그대로 테스트를 진행하였던 것이다. 7주차에는 random.crop을 사용하지 않고 가운데 패치만 사용했기 때문에 몇번의 iteration만 돌아도 training때 학습한 이미지를 test 할때 볼 수 있었기 때문에 학습이 잘 되는 것처럼 나온 것이다.
VGG19 single kernel blur learning (vgg1.py)
현재는 VGG19 모델을 사용하여 학습을 하고있으며 마지막 레이어의 output이 256이 되도록 수정하였다. 기존 VGG19 에서는 1000개의 클래스에 대한 분류였다면 256개의 픽셀값으로 바꾼 것이다. training에 이용한 이미지는 latent 폴더에 187개가 있고 test 시에 이용한 폴더는 test에 54개가 있다.
아래는 픽셀값의 예측 정확도를 나타내고 있다.
2시간 정도 학습을 시키면 Accuracy는 비슷하지만 오차가 많이 줄어든다.
Accuracy: 픽셀 값 예측 정확도 (맞춘개수 / batch size)
Error: 픽셀 값 오차들의 합
iter: 10 Accuracy: 0.0 Error: 2398 stepSize: 0.0005
[ 2 4 5 11 18 19 21 22 28 30 41 46 48 51 54 54 57 58
59 66 68 69 73 74 79 80 80 90 94 95 129 139 149 159 161 165]
iter: 20 Accuracy: 0.0 Error: 2788 stepSize: 0.0005
[ 9 10 30 32 33 39 40 47 49 54 56 62 65 67 67 70 73 75
79 86 89 90 90 91 91 93 97 99 101 107 110 115 135 135 150 152]
iter: 400 Accuracy: 0.0277778 Error: 4379 stepSize: 0.0005
[ 0 18 21 35 48 54 55 56 84 85 93 95 97 98 109 116 123 124
128 128 129 134 138 141 144 145 165 175 184 185 195 204 207 214 220 232]
iter: 410 Accuracy: 0.0 Error: 4892 stepSize: 0.0005
[ 7 20 46 51 61 76 79 89 90 93 97 101 106 113 115 115 138 147
149 153 158 159 166 167 170 171 172 187 187 189 193 195 205 222 250 255]
iter: 8000 Accuracy: 0.0 Error: 1492 stepSize: 0.0005
[ 1 1 1 3 4 5 7 9 12 13 16 18 20 24 26 26 27 28
35 39 39 44 48 48 50 51 54 64 65 69 70 87 100 114 115 159]
iter: 8010 Accuracy: 0.0 Error: 1758 stepSize: 0.0005
[ 3 9 11 12 15 16 17 17 23 24 26 27 29 29 35 35 36 42
42 42 42 44 44 55 57 62 67 77 91 94 94 103 104 108 110 116]
iter: 15740 Accuracy: 0.0833333 Error: 318 stepSize: 0.0005
[ 0 0 0 1 1 2 2 2 2 2 2 3 3 3 4 4 5 6 6 6 7 7 8 9 9
9 10 11 11 17 18 20 24 26 38 40]
iter: 15750 Accuracy: 0.0277778 Error: 356 stepSize: 0.0005
[ 0 1 1 2 2 3 3 4 4 4 4 4 4 4 5 5 6 6 6 7 7 7 8 8 8
9 10 11 12 12 14 20 24 25 48 58]
sumOferror: 에러들의 합
학습이 얼마 되지 않은 시점에서 sumOferror가 진행이 2시간 가량 되었을때보다 낮다... 교수님께서 말씀하시길 softmax loss를 이용하여 학습을 하므로 에러값이 올라가다 내려가는 모습을 보일 수 있다고 하셨다. 왜지?