最近在写yolov3
,因为yolov3
的多输出性质,所以我打算写适配多输出的工具函数,在numpy
中可以在一个array
中包含多个不同维度的array
,但在tensorflow
中一个tensor
只能保存相同维度的矩阵,这就十分蛋疼了.下面记录一下我是如何解决的.
在做parser
的时候,让其返回值第一个为img
,然后是一个动态的label
数组,接下来使用tensorflow
的包装函数进行包装,最后执行:
1 |
def (): |
但是这样执行会出现一个问题,我虽然给定的输出是3个,但是实际执行的时候函数返回值是2个:
1 |
pyfunc_10 returns 2 values, but expects to see 3 values. |
问题解决
所以我需要进行返回时的解包,最终程序如下:
1 |
def t(): |
只要注意到一点,返回*list
是可以的,但是必须要加括号保证语法!