尝试使用TensorFlow实现yolo2遇到的问题

以前就发现TensorFlow的模型组件中一直没有yolo,最近比较闲,想看看能不能TensorFlow试试。根据paper和linux上运行的测试结果,网络主体还是比较容易实现的。但是主要问题是损失函数的实现,根据darknet的GitHub工程源码来看,基本思路是遍历每一个box使用预定好的规则处理不同情况的损失。但是TensorFlow的话,如果按照这种逻辑写损失,计算图的加载都慢到极点

def get_loss(output, label, batch_size):
    threshold = tf.Variable(.5)
    loss = tf.Variable(0, dtype=tf.float32)
    for b in range(batch_size):
        for i in range(13):
            for j in range(13):
                for n in range(5):
                    iou = get_iou(output[b, i, j, n*8:n*8+4], label[b, 0, :4])
                    loss += tf.reduce_mean(tf.square(output[b ,i, j, n * 8:n * 8 + 4] - label[b, 0, :4]))
    return loss
这里模仿c源码中的逻辑,遍历最后一层输出的每一个位置,这里只做测试,单纯的叠加均方误差,结果就是初始化计算图都不知道要等多久,因为一直在循环,看来这个张量操作和那边的指针操作速度上还是差太多。最后结论应该是方式有问题,还是得多学习呀,不然知识水平不够。(思维僵化。。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值