인프런 커뮤니티 질문&답변

dfiejf님의 프로필 이미지
dfiejf

작성한 질문수

커피 한 잔으로 입문하는 Convolutional Neural Network

Convolution Implementation 강좌 내용 질문있습니다

작성

·

147

2

conv_manual

conv_tf의 결과

아래와 같이 값이 조금 다른것을 알 수 있었는데요.

conved manual :
 [[-1.29826343 -0.45550093 -0.45550093]
 [-0.27580023 -1.49220681 -1.49220681]
 [-0.27580023 -1.49220681 -1.49220681]] 
conved tf:
 [[-1.2982634  -0.45550087  0.05601658]
 [-0.2758004  -1.4922069   1.5845851 ]
 [-1.7049563  -0.3575049   2.2736065 ]] 

(강의 영상도 동일)

혹시 해당 이유 알 수 있을까요?

강의 영상 너무 잘 듣고

정말 큰 도움되고 있습니다.

감사합니다.

답변 2

1

안녕하세요~

컴퓨터에서 실수(floating point)들을 다룰 때, 소수의 아주 작은까지 정확하게 표현할 수 없습니다.

그리고 실수들을 이용하여 연산을 한 결과도 마찬가지로 정확한 값을 가질 수 없습니다.

이런 부분들이 누적되면 이론적인 결과와 컴퓨터가 연산한 결과가 달라집니다.

따라서 연산을 어떻게 하는지에따라 이런 오류들은 달라질 수 있어서 위와 같은 결과가 나올 수 있습니다.

다만 오차가 크지 않은 선에선 문제가 되는 경우가 많지 않으니, 크게 신경쓰지 않으셔도 됩니다.

더 자세히 알고 싶으시면, round-off error를 검색해보시면 됩니다~

dfiejf님의 프로필 이미지
dfiejf
질문자

이렇게 빠른 답변이!

요약하면 유효숫자의 차이이지

연산 차이는 아닌거군요!

감사합니다!

0

네네~ 컴퓨터의 한계라고 생각하시면 됩니다 :)

참고로 이 오차를 줄이고 싶으면 실수의 bit수를 높히면 됩니다

dfiejf님의 프로필 이미지
dfiejf

작성한 질문수

질문하기