tf.boolean_mask() 函数

回眸只為那壹抹淺笑 提交于 2020-02-02 15:26:56

boolean_mask(a,b) 将使a (m维)矩阵仅保留与b中“True”元素同下标的部分。使用tf.boolean_mask用来过滤概率值比较低的锚盒,这个函数的一个参数b为滤波器掩模,生成掩模要用到逻辑表达式(>或者<)生成布尔值,假设阈值threshold=C,并且当mask和tensor的维度相同时,输出1维矩阵

def yolo_filter_boxes(box_confidence , boxes, box_class_probs, threshold = 0.6):
    
    #第一步:计算锚框得分
    box_scores=box_confidence*box_class_probs
    
    #找到最大锚框
    box_classes = K.argmax(box_scores, axis=-1)
    box_class_scores = K.max(box_scores, axis=-1)
    
     #第三步:根据阈值创建掩码
    filtering_mask = (box_class_scores >= threshold)
    
      #对scores, boxes 以及 classes使用掩码
    scores = tf.boolean_mask(box_class_scores,filtering_mask)
    boxes = tf.boolean_mask(boxes,filtering_mask)
    classes = tf.boolean_mask(box_classes,filtering_mask)
    
    
     return scores , boxes , classes
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!