当前位置:网站首页>yolov3数据读入(二)
yolov3数据读入(二)
2022-08-04 05:28:00 【大黄猫一号】
前面以一篇文章将写将yolov3网络层参数加载出来。
这里有几个结构体在yolov3中的链表中作用比较大:
typedef struct list{
int size;
node *front;
node *back;
} list;
typedef struct node{
void *val;
struct node *next;
struct node *prev;
} node;
typedef struct{
char *key;
char *val;
int used;
} kvp;
typedef struct{
char *type;
list *options;
}section;
下面看parser.c 文件中 network parse_network_cfg_custom(char *filename, int batch) 函数中的下一段程序:
node *n = sections->front;
if(!n) error("Config file has no sections");
network net = make_network(sections->size - 1);
net.gpu_index = gpu_index;
size_params params;
section *s = (section *)n->val;
list *options = s->options;
if(!is_network(s)) error("First section must be [net] or [network]");
parse_net_options(options, &net);
params.h = net.h;
params.w = net.w;
params.c = net.c;
params.inputs = net.inputs;
if (batch > 0) net.batch = batch;
params.batch = net.batch;
params.time_steps = net.time_steps;
params.net = net;
float bflops = 0;
size_t workspace_size = 0;
可以看出*n代表yolov3网络的第一个网络层[net],在第三行作者创建一个network(详见network.h中的network),用来存储一个网络层的所有参数,sections->size - 1可见net中的n是 从零开始。在第五行初始化一个size_params结构体用来存储一个网络层中输入图片的信息。
在network parse_network_cfg_custom(char *filename, int batch)中后面的程序是将除去第一层的其余层都读入到其他*n中,
边栏推荐
猜你喜欢
随机推荐
原型对象及原型链的理解
VScode配置PHP环境
Redis持久化方式RDB和AOF详解
基于C语言的学生信息管理系统_(更新版)_(附源码和安装包)_课程设计_**往事随風**的博客
Commons Collections1
关系型数据库-MySQL:约束管理、索引管理、键管理语句
SQL练习 2022/7/1
智能合约安全——delegatecall (1)
Kubernetes基本入门-元数据资源(四)
flink-sql所有表格式format
Linux环境下redis的下载、安装和启动(建议收藏)
flink-sql查询配置与性能优化参数详解
Upload靶场搭建&&第一二关
PHP课堂笔记(一)
flink问题整理
ISCC-2022
程序员的财富观
keep-alive的使用及详解
8.30难题留坑:计数器问题和素数等差数列问题
win云服务器搭建个人博客失败记录(wordpress,wamp)