작성
·
208
0
안녕하세요 권철민 강사님. 열심히 수강하고 있는 수강생입니다.
다름이 아니라 EfficientNet B7 학습 중 질문이 생겨서 이렇게 문의드립니다.
제가 이해하기론 기존까지 Deep Learning 학습할 때 이미지 픽셀의 범위는 -1 ~ 1 혹은 0~1 사이로 scaling 한 다음에 학습을 진행하였는데, 이 모델에서는 픽셀 값이 scaling이 아예 미적용된 것 같습니다.
저번 강의에서 keras가 tensorflow 2.3? 2.4? 버전에서 병합되면서 그 이후로 preprocess _input을 적용해도 스케일링이 잘 안된다고 하셨는데 그 이유 때문인가요?
이렇게 scaling이 적용이 안될 경우에 scaling 적용 없이 학습을 진행해도 무방한 건가요?
무방한 것이 아니라면 torch style의 scaling이라도 해서 학습을 해야되는 건지 궁금합니다.
항상 감사드립니다 강사님!!
답변 1
1
안녕하십니까,
efficientnet이 keras native 구현이랑 tf.keras 구현이 좀 다릅니다.
keras원래 구현은 이미지 값을 torch style로 변경합니다.
아래 소스코드에서 530~540 라인을 보시면 됩니다.
https://github.com/keras-team/keras-applications/blob/master/keras_applications/efficientnet.py
그런데 tf.keras 구현은 이미지 값을 변경하지 않습니다. 그래서 별도의 이미지값 scaling을 적용하지 않았습니다.
아래 소스코드에서 744 ~ 763 라인을 보시면 됩니다.
https://github.com/keras-team/keras/blob/v2.7.0/keras/applications/efficientnet.py#L526-L549
감사합니다.
항상 자세하고 친절한 답변 감사드립니다!! 항상 건강하세요 강사님 :)