/ / Python - zbyt wiele wartości do rozpakowania - python, deep-learning

Python - zbyt wiele wartości do rozpakowania - python, deep-learning

Mam ten kod

N, D = x.shape
running_mean = bn_param.get("running_mean", np.zeros(D, dtype=x.dtype))
running_var = bn_param.get("running_var", np.zeros(D, dtype=x.dtype))

i jest powiedziane: ValueError: zbyt wiele wartości do rozpakowania

Wiem, że x ma wymiar 50x3x32x32 I chcę umieścić zmienną N 50 in i muszę umieścić 3x32x32 w zmiennej D. Jak mogłem to zrobić? Dziękuję Ci.

Odpowiedzi:

4 dla odpowiedzi № 1

x.shape ma więcej niż 2 wartości, nie pasujące do liczby zmiennych do rozpakowania (wielokrotne przypisanie):

>>> shape = (50, 3, 32, 32)
>>> N, D = shape
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack

Możesz użyć indeksu, operatory wycinków, aby uzyskać to, co chcesz:

>>> shape = (50, 3, 32, 32)
>>> N, D = shape[0], shape[1:]  # [0] to get 1st, [1:] to get 2nd, 3rd,.. up to end
>>> N
50
>>> D
(3, 32, 32)

Jeśli używasz Pythona w wersji 3.x, możesz użyć Rozszerzone iterowalne rozpakowywanie składnia:

>>> N, *D = shape
>>> N
50
>>> D
[3, 32, 32]