tensorflow画损失函数的代码_YOLOv3源码解析1代码整体结构

微信公众号不好链接微信以外的东西,所以要看下面链接的去我的博客看一下吧

https://blog.youkuaiyun.com/sxlsxl119

理论部分参照大神的文章学习:

简书:关于YOLOv3的一些细节

github:源代码作者YOLOV3

知乎:【YOLO】yolo v1到yolo v3

知乎:目标检测|YOLO原理与实现

知乎:YOLO v3深入理解

优快云:yolo系列之yolo v3【深度解析】

解析的代码地址:

github:tensorflow-yolov3

源码结构解析:

      代码整体结构如下(原图大小20M太大上传不了,这是降低质量后的只有2M),说实话,按照代码解析,画完这个图,我暗暗感叹,YOLOV3的作者真是牛逼,这么复杂的框架都能想出来,不服不行啊:

f57b786d4f5a5a8285cdd985c8fab86d.png

整体结构图太过复杂,不太方便看,下面把各个结构分解出来。下面是代码主流程:

070430c5ba1833c3d0454f2117a85505.png

上图中标红的Dataset()、YOLOV3()、conpute_loss()分别是数据预处理、建立网络框架、计算损失函数,下面将按这3块进行代码解析。

一)Dataset()数据预处理部分:

83618fce5807f580b81f9850a8ed6843.png

二)YOLOV3()建立模型框架部分:

1a1da6f0dfb431f66b2b01aeae003e9a.png

1)其中的build_network()函数,建立网络模型

a04df98bbae6564c235e7bf7df350267.png

A)其中的darknet53()函数,建立基本的卷积网络,获取大中小3个等级的特征图:

76a5f2d673011132401c2b70dee8d207.png

其中反复用到了两个基本单元common.convolutional()common.residual_block()结构分别如下:

  • common.convolutional()

5d88146ece93f393f7901e286005caed.png

  • common.residual_block()

3708c07ddbf3e82bf0db53f8314fe29c.png

2)其中的decode()函数,解码,返回预测框的xywh,置信度,预测概率

cede230732dcde6122a45cca57fb0ab9.png

三)compute_loss()计算各部分损失: 

d70c92c397d24f50562514ead60a31dd.png

其中的loss_layer()(损失层):

f44d59f748be390c538fbe0629351207.png

Dataset()、YOLOV3()、conpute_loss()分别是数据预处理、建立网络框架、计算损失函数,下面将按这3块进行代码解析。

f8e10bccacf2417acb9408b5306b5017.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值