当前位置:网站首页>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中,
边栏推荐
猜你喜欢
随机推荐
剑指 Offer 2022/7/8
二月、三月校招面试复盘总结(一)
flink-sql查询配置与性能优化参数详解
自动化运维工具Ansible(4)变量
Code Refactoring: For Unit Testing
关于let var 和const的区别以及使用
程序员的财富观
Kubernetes基本入门-名称空间资源(三)
(十一)树--堆排序
VScode配置PHP环境
[原创]STL容器map和unordered_map性能,创建,插入,随机访问速度对比!
CTFshow—Web入门—信息(1-8)
flink-sql自定义函数
程序、进程、线程、协程的概念及区别
webrtc中的任务队列TaskQueue
Upload靶场搭建&&第一二关
8.30难题留坑:计数器问题和素数等差数列问题
完美解决keyby造成的数据倾斜导致吞吐量降低的问题
关于事件捕获和事件冒泡的顺序,以及如何处理事件冒泡带来的影响
BUUCTF——MISC(一)