在 yolo_head.py 中, fluid.layers.yolo_box() 的 output shape 理解
Created by: XiminLin
我尝试打出 fluid.layers.yolo_box() 的 box 的 shape, 在 yolo_head.py 中 433 行, box 是这么得来的:
box, score = fluid.layers.yolo_box(
x=output,
img_size=im_size,
anchors=self.mask_anchors[i],
# edited by ximinlin
# class_num=self.num_classes,
class_num = 1,
conf_thresh=self.nms.score_threshold,
downsample_ratio=self.downsample[i],
name=self.prefix_name + "yolo_box" + str(i),
clip_bbox=self.clip_bbox,
scale_x_y=scale_x_y)
因为我的 class_num = 1, 所以打出的 output 的shape 是 (-1, 18, -1, -1); 根据 yolo_box 的文档, 我知道 第一个 -1 是 batch_size. 我使用了 3 个 anchor_box
但是当我打出 box 的 shape 为 (-1, 3, 4). 请问第一个 dim -1 是 batch_size 吗? 如果是的话, 那么第二个 dimension 为什么只有 3? 难道不应该是 3 * img_size**2 吗? 这些都发生在 nms 之前.
谢谢