저기서 layer3 연결할때 in_features 에 30*5*5 하는데 *5*5는 왜해줌?
kernel_size 는 필터 사이즈지 conv 아웃풋 출력의 사이즈가 아니지않아?
그런데 왜 *5*5 를 해줌??
댓글 5
출력사이즈가 30, 5, 5 인가보지
익명(121.169)2024-08-30 17:24
Input이 높이 넓이 32 * 32 인 이미지 인것을 가정하고 모델 짠 거지
kernel_size 5에 padding 설정 안한 첫번째 Conv2d 통과 하고 나면 x의 높넓이 28이 되고 Maxpool(2) 거치면 14됨
두번째 Conv2d 거치면 10되고 Maxpool(2) 거치면 5 됨. 따라서 layer2의 출력의 shape은
(Batch_size, 30, 5, 5)가 됨. 이걸 아마도 접고 접어서 (Batch_size, 1, 30 * 5 * 5)로 접은다음
layer3를 통과하면 (Batch_size, 1, 10)이 되어서 그림을 10개 클래스 중 하나로 분류(?) 하는 태스크 등에 쓰이게 되겠지
출력사이즈가 30, 5, 5 인가보지
Input이 높이 넓이 32 * 32 인 이미지 인것을 가정하고 모델 짠 거지 kernel_size 5에 padding 설정 안한 첫번째 Conv2d 통과 하고 나면 x의 높넓이 28이 되고 Maxpool(2) 거치면 14됨 두번째 Conv2d 거치면 10되고 Maxpool(2) 거치면 5 됨. 따라서 layer2의 출력의 shape은 (Batch_size, 30, 5, 5)가 됨. 이걸 아마도 접고 접어서 (Batch_size, 1, 30 * 5 * 5)로 접은다음 layer3를 통과하면 (Batch_size, 1, 10)이 되어서 그림을 10개 클래스 중 하나로 분류(?) 하는 태스크 등에 쓰이게 되겠지
아마 input을 64 * 64인거 갖다 쓰면 에러날거임
초심자가 보기 좋은책 찾아달라해서 보고 있었는데 왠지 이해가 안가더라 고마워
왠지 책에 코드는 딸라치지 말고 흐름만 보라고 하더라