Python函数返回值接收异常:多变量接收致输出维度变更
Python中池化函数返回值维度异常的原因分析
你遇到的问题本质是Python的序列解包机制在起作用:
- 你的
pool_forward函数仅返回单个变量A(维度(2,3,3,3)的数组) - 当你用
A, cache = pool_forward(...)这种双变量接收的写法时,Python会尝试把返回的单个对象当作可迭代序列解包。对于多维数组来说,它会按第一个维度的元素拆分,把第一个维度的第一个元素赋值给A,第二个元素赋值给cache。此时A变成原数组的第一个切片,维度自然从(2,3,3,3)缩减为(3,3,3)。 - 单变量接收时,Python直接将整个返回数组赋值给该变量,维度保持不变。
解决思路:要么修改pool_forward函数,让它返回两个值(比如return A, cache),要么仅用单个变量接收返回结果。
内容的提问来源于stack exchange,提问作者Ibrahim zawra
相关产品推荐
相关产品推荐

