yolov3源码解读--未上传

yolov3源码解读--未上传

https://blog.csdn.net/qq_24739717/article/details/92399359

hyperparams = module_defs.pop(0)
这里的pop的意思是基础参数都在第一个字典字典段字典段里

self.yolo_layers = [layer[0] for layer in self.module_list if hasattr(layer[0], "metrics")]
为什么要这行代码的yolo层?

self.modules()和和self.children()的区别
https://blog.csdn.net/dss_dssssd/article/details/83958518
一个是遍历所有(深度优先方式),一个只遍历第一代children()
model.apply(weight_init),将weight_init初始化方式应用到submodels上

  1. # 1. 根据网络层的不同定义不同的初始化方式  
  2. def weight_init(m): 
  3. if isinstance(m, nn.Linear): 
  4. nn.init.xavier_normal_(m.weight) 
  5. nn.init.constant_(m.bias, 0) 
  6. # 也可以判断是否为conv2d,使用相应的初始化方式  
  7. elif isinstance(m, nn.Conv2d): 
  8. nn.init.kaiming_normal_(m.weight, mode='fan_out', nonlinearity='relu') 
  9. # 是否为批归一化层 
  10. elif isinstance(m, nn.BatchNorm2d): 
  11. nn.init.constant_(m.weight, 1) 
  12. nn.init.constant_(m.bias, 0) 
  13. # 2. 初始化网络结构  
  14. model = Net(in_dim, n_hidden_1, n_hidden_2, out_dim) 
  15. # 3. 将weight_init应用在子模块上 
  16. model.apply(weight_init) 

此种初始化方式采用的递归,而在python中,对递归层数是有限制的,所以当网络结构很深时,可能会递归层数过深的错误

锁页内存,不能用于虚拟内存的内存交换
https://blog.csdn.net/tsq292978891/article/details/80454568

dataset.collate_fn

https://blog.csdn.net/weixin_42028364/article/details/81675021

posted @ 2020-03-10 10:35  vivia~  阅读(409)  评论(0编辑  收藏  举报