EAST

本文深入探讨EAST算法,涉及多GPU训练策略、模型pipeline,使用PVANet作为backbone,结合U-net特征合并规则。EAST输出包括score_map、geo_map和angle_map。数据处理涉及四边形到外接旋转矩形的转换,损失函数由分类和回归损失组成。最后,介绍如何从网络输出构建矩形区域并应用Locality-Aware NMS进行后处理。
摘要由CSDN通过智能技术生成

本文对EAST算法中的重要模块进行梳理,包括多gpu训练、算法pipline、输入数据和输出数据的格式。

  • 数据并行。使用多gpu进行训练,将batch的训练数据根据设定的gpu数量进行划分,每个gpu训练batch数据中的一部分,得到其结构风险,然后计算当前结构风险的梯度信息。当前batch数据的梯度全部计算完后,进行梯度更新。
    for i, gpu_id in enumerate(gpus):  #数据并行
        with tf.device('/gpu:%d' % gpu_id):
            with tf.name_scope('model_%d' % gpu_id) as scope:
                iis = input_images_split[i]
                isms = input_score_maps_split[i]
                igms = input_geo_maps_split[i]
                itms = input_training_masks_split[i]
                total_loss, model_loss = tower_loss(iis, isms, igms, itms, reuse_variables)
                batch_norm_updates_op = tf.group(*tf.get_collection(tf.GraphKeys.UPDATE_OPS, scope))
                reuse_variables = True

                grads = opt.compute_gradients(total_loss)
                tower_grads.append(grads) #汇总梯度

    grads = average_gradients(tower_grads) #更新梯度
    apply_gradient_op = opt.apply_gradients(grads, global_step=global_step)

    summary_op = tf.summary.merge_all()
    # save moving average
    variable_averages = tf.train.ExponentialMovingAverage(
        FLAGS.moving_average_decay, global_step)
    variables_averages_op &#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值