`*** RuntimeError : mat1 dim 1 must match mat2 dim 0` when I run model (images)

데이비드
    def __init__(self):
        super().__init__()

        self.conv = nn.Sequential(
            nn.Conv2d(1, 64, kernel_size=5, stride=2, bias=False),
            nn.BatchNorm2d(64),
            nn.ReLU(),

            nn.Conv2d(64, 64, kernel_size=3, stride=2, bias=False),
            nn.BatchNorm2d(64),
            nn.ReLU(),
            
            nn.Conv2d(64, 64, kernel_size=3, stride=2, bias=False),
            nn.BatchNorm2d(64),
  
        )

이 오류를 어떻게 처리 할 수 ​​있습니까? self.fc에 오류가 있다고 생각하지만 수정 방법을 말할 수 없습니다.

kHarshit

의 출력은 self.conv(x)is of shape torch.Size([32, 64, 2, 2]): 32*64*2*2= 8192(이것은 ( self.conv_out_size) 와 동일합니다 . 완전 연결 계층에 대한 입력은 단일 차원 벡터를 예상합니다. 즉, forward 함수에서 완전 연결 계층으로 전달하기 전에이를 평탄화해야합니다.

class Network():
    ...
    def foward():
    ...
        conv_out = self.conv(x)
        print(conv_out.shape)
        conv_out = conv_out.view(-1, 32*64*2*2)
        print(conv_out.shape)
        x = self.fc(conv_out)
        return x

산출

torch.Size([32, 64, 2, 2])
torch.Size([1, 8192])

편집하다:

나는 당신이 self._get_conv_out기능을 잘못 사용하고 있다고 생각합니다 .

그것은해야한다

    def _get_conv_out(self, shape):
        output = self.conv(torch.zeros(1, *shape)) # not (32, *size)
        return int(numpy.prod(output.size()))

그런 다음 포워드 패스에서

        conv_out = self.conv(x)
        # flatten the output of conv layers
        conv_out = conv_out.view(conv_out.size(0), -1)
        x = self.fc(conv_out)

의 입력에 (32, 1, 110, 110)대해 출력은 torch.Size([32, 2]).

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

길이가 1 인 차원 중 하나가있는 Numpy 1-dim array vs 2-dim array

분류에서Dev

I unchecked "dim the display", but it's still diming

분류에서Dev

Pytorch RuntimeError : The size of tensor a (4) must match the size of tensor b (3) at non-singleton dimension 0

분류에서Dev

shape = (dim, L, 2) 인 ndarray의 액세스 요소

분류에서Dev

Dim [1]을 누를 수 없습니다. 1의 차원이 필요하며 5를 얻었습니다.

분류에서Dev

N dim numpy 배열의 각 요소에 대해 1D numpy 배열에 추가하고 N + 1 dim 배열을 반환합니다.

분류에서Dev

RuntimeError : output with shape [1, 224, 224] does not match the broadcast shape [3, 224, 224]

분류에서Dev

단순 행렬 곱셈은 "shapes (2,3) and (2,3) notalign : 3 (dim 1)! = 2 (dim 0)"?

분류에서Dev

torch.sum ()에서 dim = -1 또는 -2는 무엇을 의미합니까?

분류에서Dev

Join ()에 1-dim Long 배열의 이중 전치가 필요한 이유는 무엇입니까?

분류에서Dev

여러 파일에서 1dim 배열로 다른 정수를 읽을 때 "i"의 마지막 위치를 추적하는 방법은 무엇입니까?

분류에서Dev

Keras Input (shape =)이 dim = 100 벡터에 대해 모양 (1,)을 예상하는 이유

분류에서Dev

recurrent neural network ValueError : Found array with dim 3. 예상치 <= 2

분류에서Dev

3 Dim을 2 Dim으로 변환하고 Ajust Class?

분류에서Dev

자체 계산을 수행하여 1dim numpy 배열에서 numpy 행렬을 만드시겠습니까?

분류에서Dev

Pytorch의 1D CNN : mat1 및 mat2 모양은 곱할 수 없습니다 (10x3 및 10x2).

분류에서Dev

Pytorch nn. 선형 런타임 오류 : mat1 dim 1 must match mat2 dim 0

분류에서Dev

RuntimeError : 예상 숨겨진 [0] 크기 (2, 1, 100), got (1, 1, 100)

분류에서Dev

2 Dim 배열 할당

분류에서Dev

kmeans biplot에서 Dim1 및 Dim2에 사용되는 측정 값은 무엇입니까?

분류에서Dev

How to get the row size of an 2 dim array in C

분류에서Dev

Is Call MagicFunction(intData1, intData2, Dim intData3) a valid statement in vbs?

분류에서Dev

Call MagicFunction (intData1, intData2, Dim intData3)은 vbs에서 유효한 문입니까?

분류에서Dev

Don't dim slide content when not active

분류에서Dev

How do I use the Find function with a variable term, for example Run1, Run2, RunX

분류에서Dev

Methods to sample a 2-dim curve efficiently

분류에서Dev

Python numpy : 벡터 (n-dim)의 차원 [0] 대 배열 (nxn-dim)

분류에서Dev

RGB 그림에 대한 tf.nn.l2_normalize (x, dim, epsilon = 1e-12, name = None)의 올바른 dim 매개 변수

분류에서Dev

numpy 배열을 (# dim1, # dim2, # channel)에서 (#channel, # dim1, # dim2)로 변경하는 방법

Related 관련 기사

  1. 1

    길이가 1 인 차원 중 하나가있는 Numpy 1-dim array vs 2-dim array

  2. 2

    I unchecked "dim the display", but it's still diming

  3. 3

    Pytorch RuntimeError : The size of tensor a (4) must match the size of tensor b (3) at non-singleton dimension 0

  4. 4

    shape = (dim, L, 2) 인 ndarray의 액세스 요소

  5. 5

    Dim [1]을 누를 수 없습니다. 1의 차원이 필요하며 5를 얻었습니다.

  6. 6

    N dim numpy 배열의 각 요소에 대해 1D numpy 배열에 추가하고 N + 1 dim 배열을 반환합니다.

  7. 7

    RuntimeError : output with shape [1, 224, 224] does not match the broadcast shape [3, 224, 224]

  8. 8

    단순 행렬 곱셈은 "shapes (2,3) and (2,3) notalign : 3 (dim 1)! = 2 (dim 0)"?

  9. 9

    torch.sum ()에서 dim = -1 또는 -2는 무엇을 의미합니까?

  10. 10

    Join ()에 1-dim Long 배열의 이중 전치가 필요한 이유는 무엇입니까?

  11. 11

    여러 파일에서 1dim 배열로 다른 정수를 읽을 때 "i"의 마지막 위치를 추적하는 방법은 무엇입니까?

  12. 12

    Keras Input (shape =)이 dim = 100 벡터에 대해 모양 (1,)을 예상하는 이유

  13. 13

    recurrent neural network ValueError : Found array with dim 3. 예상치 <= 2

  14. 14

    3 Dim을 2 Dim으로 변환하고 Ajust Class?

  15. 15

    자체 계산을 수행하여 1dim numpy 배열에서 numpy 행렬을 만드시겠습니까?

  16. 16

    Pytorch의 1D CNN : mat1 및 mat2 모양은 곱할 수 없습니다 (10x3 및 10x2).

  17. 17

    Pytorch nn. 선형 런타임 오류 : mat1 dim 1 must match mat2 dim 0

  18. 18

    RuntimeError : 예상 숨겨진 [0] 크기 (2, 1, 100), got (1, 1, 100)

  19. 19

    2 Dim 배열 할당

  20. 20

    kmeans biplot에서 Dim1 및 Dim2에 사용되는 측정 값은 무엇입니까?

  21. 21

    How to get the row size of an 2 dim array in C

  22. 22

    Is Call MagicFunction(intData1, intData2, Dim intData3) a valid statement in vbs?

  23. 23

    Call MagicFunction (intData1, intData2, Dim intData3)은 vbs에서 유효한 문입니까?

  24. 24

    Don't dim slide content when not active

  25. 25

    How do I use the Find function with a variable term, for example Run1, Run2, RunX

  26. 26

    Methods to sample a 2-dim curve efficiently

  27. 27

    Python numpy : 벡터 (n-dim)의 차원 [0] 대 배열 (nxn-dim)

  28. 28

    RGB 그림에 대한 tf.nn.l2_normalize (x, dim, epsilon = 1e-12, name = None)의 올바른 dim 매개 변수

  29. 29

    numpy 배열을 (# dim1, # dim2, # channel)에서 (#channel, # dim1, # dim2)로 변경하는 방법

뜨겁다태그

보관