pytorch에서 model에 input을 넣어 forward 과정을 거쳐 output을 낼려고 할 때 종종 에러가 나는데 input으로 3d, 4d, 5d를 받아야하는데 2d가 들어왔다고 말하는거 딥러닝은 모델이 너무 복잡하기 때문에 머릿속에서 생각만으로 어디가 문제인지 알아내기 어렵다 모델 내부에서나, input, output등에 대해 중간중간에 shape를 찍어봐야함 중간에 grad_CAM의 shape를 찍어보면 실제로 2d라는 걸 확인할 수 있음 2d를 2번 unsqueeze(0)해서 4d로 만들고 넣었더니 더 이상 에러가 없었다 왜 2번했냐고? 1번만 하면 또 에러나서 그래 ------------------------------------------------------------..
1. 벡터, 행렬, 텐서 차원이 없는 값을 스칼라 1차원으로 구성된 값을 벡터(vector) 2차원으로 구성된 값을 행렬(matrix) 3차원 이상으로 구성된 값은 텐서(tensor) 인간은 3차원 세상에 살고 있다보니 4차원 이상부터는 머리로 상상하기 어렵다. 데이터사이언스에서는 3차원 이상의 텐서는 다차원 행렬이나 배열로 간주할 수 있다. 또한 주로 3차원 이상을 텐서라고 하며, 1차원 벡터나 2차원 행렬도 텐서라고 표현하기도 한다. 1차원 벡터 = 1차원 텐서, 2차원 행렬 = 2차원 텐서, ...... 2. tensor의 shape를 표현하는 방법? 2-1) 2차원 tensor 2차원 텐서의 크기를 (batch size * dim)으로 표현할 수 있다 훈련 데이터 하나의 크기를 256이라고 하자...