형상과 스트라이드를 알고 있으면 타겟 셀이 항상 일정한 간격에 있으니까 반복문으로 추출하면 되는거 아니야?
im2col로 평탄화 시켜야 효율이 더 잘나와?
평탄화 작업 때문에 im2col -> col2im(역전파) 프로세스가 2개나 더 생기는데 그걸 감안하고서라도 평탄화의 자원 소모가 훨씬 좋나??
형상과 스트라이드를 알고 있으면 타겟 셀이 항상 일정한 간격에 있으니까 반복문으로 추출하면 되는거 아니야?
im2col로 평탄화 시켜야 효율이 더 잘나와?
평탄화 작업 때문에 im2col -> col2im(역전파) 프로세스가 2개나 더 생기는데 그걸 감안하고서라도 평탄화의 자원 소모가 훨씬 좋나??
이게 그게 맞는지는 잘모르겠지만, 이렇게 안하면 반복문을 많이 돌려야해서 파이썬에서는 아주 느려짐. C 라면 굳이 이렇게 평탄화 안해도 되겠지만.
C도 똑같을걸 FPGA에 영상처리 알고리즘 넣으려고 외주 준 적 있는데, 별 신경 안쓰고 반복문으로 짜서 주니까 1차원 계산으로 바꿔달라든데
이거 책 몇개 더 찾아보니까 완전 연결 신경망 베이스의 CNN(LeNet, AlexNet 등)은 1차원 배열(평탄화된 인풋)을 처리하기 때문에 평탄화 과정을 피할 수 없다더라. 평탄화를 해야 하지만 데이터가 이미지 정보(Height, Width, Channel - 최소 3차원, Alpha와 유색 이미지일 경우 데이터 차원이 늘어남)를 담고 있기 때문에 기본 형상이 유지되어야 한데. 그래서 im2col로 평탄화하여 데이터 단위를 유지하면서 완전 연결 신경망에 흘려보낼 수 있는 것 같더라
차원 차이가 큼.