2017-02-13 60 views
2

我有这样的代码Python的 - 值过多解压

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

和它说:ValueError异常:值过多解压

我知道x具有50x3x32x32尺寸 我希望把在N变量中的50,我需要把3x32x32放在D变量中。 我怎么能这样做?谢谢。

回答

4

x.shape有2倍以上的值,不变量来解包(多任务)的数量相匹配:

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

您可以使用索引,切片运营商获得你想要的东西:

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

如果您使用的是Python 3.x,您可以使用Extended iterable unpacking syntax

>>> N, *D = shape 
>>> N 
50 
>>> D 
[3, 32, 32] 
相关问题