일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 사회조사분석사2급
- 오블완
- logistic regression
- docker attach
- 백신후원
- 히비스서커스
- GIT
- 코크리
- WSSS
- HookNet
- docker
- cocre
- airflow
- cs231n
- Multi-Resolution Networks for Semantic Segmentation in Whole Slide Images
- 기초확률론
- 티스토리챌린지
- Decision Boundary
- Pull Request
- 프로그래머스
- numpy
- 도커
- CellPin
- vscode
- aiffel exploration
- IVI
- docker exec
- AIFFEL
- Jupyter notebook
- ssh
Archives
- Today
- Total
히비스서커스의 블로그
[Pytorch] RuntimeError: mat1 and mat2 shapes cannot be multiplied (16x204800 and 2048x4) 본문
Programming/Python
[Pytorch] RuntimeError: mat1 and mat2 shapes cannot be multiplied (16x204800 and 2048x4)
HibisCircus 2023. 2. 1. 16:33728x90
상황
classification model 학습을 위해 pretrained 모델을 사용하기 위해 output을 바꿔주려는 중 다음과 같은 에러를 마주쳤다.
코드
# model의 코드는 https://github.com/Cadene/pretrained-models.pytorch/blob/master/pretrainedmodels/models/senet.py 참조
from model import se_resnext101_32x4d
import torch.nn as nn
CLASS = 4
model = se_resnext101_32x4d(pretrained='imagenet')
model.last_linear = nn.Linear(in_features=2048, out_features=CLASS)
에러메시지
RuntimeError: mat1 and mat2 shapes cannot be multiplied (16x204800 and 2048x4)
해결방법
위의 에러 메시지의 16x204800에서 16은 batch size이고 204800은 tensor의 가로,세로,채널을 곱해준 값이며,
2048X4에서 2048은 변경 전의 tensor크기와 동일해야 하므로 204800이 되어야 하며 4는 바꾸려는 class의 크기이다.
따라서, in_features의 2048을 204800으로 변경해주면 된다.
728x90