Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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 29 30 31
Archives
Today
Total
관리 메뉴

0과 1 사이

[3장]신경망 예측, 정확도 계산, 배치 처리 본문

딥러닝 공부

[3장]신경망 예측, 정확도 계산, 배치 처리

고후 2021. 8. 19. 16:47

신경망 예측

시그모이드 값을 계산할 때 오버플로우가 발생했다.

책과 똑같이 따라했는데 책에서는 안나오던 에러가 발생하는 이유는 뭘까..

 

A1, A2, A3를 출력해봤다.

순서대로 A1, A2, A3, 예측결과인데

A1을 출력하고나서 바로 오버플로우 warning을 출력했다. A1 안의 값을 보면 1286 등 큰 수가 들어가있는데 이렇게 큰 수가 들어가니까 오버플로우가 난것같다.

 

다만 큰 수가 들어가는 경우 0으로 근사되기 때문에 경고는 무시하고 넘어가도 될것같다. 위의 경우 7번쨰 인덱스의 확률이 가장 크므로 예측 결과가 7임을 알수있다.

 

정확도 계산

그 다음으로 정확도를 출력해봤다.

내 결과는 처음에 0.9207이 나왔는데, 책에서는 0.9352가 나온다고 한다.

왜 이런가 해서 코드를 자세히 살펴보니 나는 normalize를 false로 하고 돌렸는데 책에서는 normalize를 true로 설정한 뒤 코드를 돌렸다.

정규화를 하면 이미지의 픽셀 값을 0.0~1.0 범위로 변환한다는데 이 과정에서 이미지 픽셀 값이 조금씩 변동되다보면 정확도에도 아주 조금 영향을 미칠 수 있을 것 같다.

 

배치 처리

배치 처리를 구현해 묶어서 predict를 수행하고 그 정확도를 출력하도록 했다.

이렇게 하면 정확도는 같으나 속도가 훨씬 빨라진다.

하나씩 예측하던 것을 통째로 100개씩 예측하다보니 속도가 증가하는 것이다.

 

참고로 이차원 배열의 경우에

np.argmax에서 axis=1이면 행을 기준으로 가장 큰 인덱스를 반환하고, axis=0이면 열을 기준으로 가장 큰 인덱스를 반환한다.

Comments