2017-02-13 7 views
2

Ich habe diesen CodePython - zu viele Werte entpacken

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)) 

und es heißt: Valueerror: zu viele Werte entpacken

Ich weiß, dass x hat 50x3x32x32 Dimension Und ich möchte setzen die Variable 50 in N und ich muss 3x32x32 in D-Variable setzen. Wie könnte ich das tun? Vielen Dank.

Antwort

4

x.shape mehr als 2 Werte hat, nicht mit der Anzahl der Variablen passende (Mehrfachzuordnung) entpacken:

>>> 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 

Sie können Index verwenden, in Scheiben schneiden Betreiber zu bekommen, was Sie wollen:

>>> 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) 

Wenn Sie Python 3.x verwenden, können Sie Extended iterable unpacking syntax verwenden:

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