我想更好地了解YOLO架构,并为我的数据集构建类似YOLO的网络。
我有50x50的灰度图像,并且想使用YOLO来找到像素分辨率的局部最大值。
我看了3篇关于YOLO体系结构的文章(YOLO,YOLO9000和YOLO v3),我发现了YOLOv3的一个受欢迎的仓库。
它定义了compose
函数
从yolo3.utils导入撰写
compose
处:
def compose(*funcs):
"""Compose arbitrarily many functions, evaluated left to right.
Reference: https://mathieularose.com/function-composition-in-python/
"""
# return lambda x: reduce(lambda v, f: f(v), funcs, x)
if funcs:
return reduce(lambda f, g: lambda *a, **kw: g(f(*a, **kw)), funcs)
else:
raise ValueError('Composition of empty sequence not supported.')
如果我正确理解YOLO的诀窍之一,就是在同一层上compose
使用不同的卷积内核大小。例如conv2d(1,1,128)
和conv2d(3,3,256)
。
conv2d
的组成之外还有其他新技巧吗?DarknetConv2D_BN_Leaky
层?keras.layers.Concatenate
而不是compose
层?我试图了解类似YOLO的神经网络的基本组成部分。