когда вызываете сверточность класса, говорят ошибку - PullRequest
0 голосов
/ 08 июня 2019

Ошибка gdd.forward (x), но почему?

Этот код использует imcol для реализации слоя свертки

Traceback (most recent call last):
  File "E:/PycharmProjects/untitled2/kk.py", line 61, in <module>
    gdd.forward(x)
  File "E:/PycharmProjects/untitled2/kk.py", line 46, in forward
    FN,C,FH,FW=self.W.shape
ValueError: not enough values to unpack (expected 4, got 2)



import numpy as np

class Convolution:
  # 卷积核大小
    def __init__(self,W,b,stride=1,pad=0):
        self.W = W
        self.b = b
        self.stride = stride
        self.pad = pad
    def forward(self,x):
        FN,C,FH,FW=self.W.shape
        N,C,H,W = x.shape
        out_h = int(1+(H+ 2*self.pad - FH) / self.stride)
        out_w = int(1+(W + 2*self.pad -FW) / self.stride)


e = np.array([[2,0,1],[0,1,2],[1,0,2]])
x = np.array([[1,2,3,0],[0,1,2,3],[3,0,1,2],[2,3,0,1]])
gdd = Convolution(e,3,1,0)
gdd.forward(x)

1 Ответ

0 голосов
/ 08 июня 2019

недостаточное значение для распаковки означает, что есть 2 выхода, но вы ожидаете 4:

FN,C,FH,FW=self.W.shape

просто избавьтесь от 2 из них, и вы готовы идти :)

Кстати, я полагаю, вы говорите по-китайски? 100 说 中文 , 不懂 可以 用 中文 问 一下

...