当前位置:网站首页>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中,
边栏推荐
猜你喜欢
随机推荐
对象存储-分布式文件系统-MinIO-2:服务端部署
EPSON RC+ 7.0 使用记录一
Shell(3)条件控制语句
剑指 Offer 2022/7/11
Code Refactoring: For Unit Testing
实际开发中,客户要求密码输入框禁止粘贴~
超详细MySQL总结
攻防世界MISC———Dift
编程Go:内置打印函数 print、println 和 fmt 包中 fmt.Print、fmt.Println 的区别
[原创]STL容器map和unordered_map性能,创建,插入,随机访问速度对比!
使用express-jwt第三方包报错TypeError: expressJWT is not a function
关于事件捕获和事件冒泡的顺序,以及如何处理事件冒泡带来的影响
[NSSRound#1 Basic]
解决JDBC在web工程中无法获取配置文件
flink on yarn指定第三方jar包
flink-sql所有语法详解
BUUCTF——MISC(一)
flink onTimer定时器实现定时需求
自动化运维工具Ansible(3)PlayBook
bind和function