• 大小: 353KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: 其他
  • 标签: MDNet  Pytorch  

资源简介

这是github上clone下来作者提供的Pytorch版本MDNet代码,由于我在阅读代码的过程中感觉很头痛,为了方便后面学习者的阅读,在这上面加了点注释,希望能够方便读者的阅读。

资源截图

代码片段和文件信息

# 搭建网络
import os
import scipy.io
import numpy as np
from collections import OrderedDict
import torch.nn as nn
import torch.nn.functional as F
from torch.autograd import Variable
import torch


def append_params(params module prefix):  # 向参数字典中添加参数
    # params 为参数字典
    # module 为具体的模型
    # prefix 为模型中具体某一层的名称 如:conv1,fc4,fc6_0
    for child in module.children():  # 遍历模型的网络结构
        # child为每一层网络的每一个部分
        for k p in child._parameters.items():
            # k为每一层的参数名称,如weight,bias
            # p为参数的具体数值
            if p is None:
                continue
            if isinstance(child nn.BatchNorm2d):
                name = prefix + ‘_bn_‘ + k
            else:
                name = prefix + ‘_‘ + k
            if name not in params:
                params[name] = p
            else:
                raise RuntimeError(“Duplicated param name: %s“ % name)


class LRN(nn.Module):  # 局部响应归一化作用于ReLU之后其实作用并不大
    def __init__(self):
        super(LRN self).__init__()

    def forward(self x):
        #
        # x: N x C x H x W
        pad = Variable(x.data.new(x.size(0) 1 1 x.size(2) x.size(3)).zero_())
        x_sq = (x**2).unsqueeze(dim=1)
        x_tile = torch.cat((torch.cat((x_sq pad pad pad pad) 2)
                            torch.cat((pad x_sq pad pad pad) 2)
                            torch.cat((pad pad x_sq pad pad) 2)
                            torch.cat((pad pad pad x_sq pad) 2)
                            torch.cat((pad pad pad pad x_sq) 2)) 1)
        x_sumsq = x_tile.sum(dim=1).squeeze(dim=1)[: 2:-2 : :]
        x = x / ((2.+0.0001*x_sumsq)**0.75)
        return x


class MDNet(nn.Module):  # 搭建网络
    def __init__(self model_path=None K=1):
        super(MDNet self).__init__()
        self.K = K  # 分支数目
        # 共享层
        self.layers = nn.Sequential(OrderedDict([
                (‘conv1‘ nn.Sequential(nn.Conv2d(3 96 kernel_size=7 stride=2)
                                        nn.ReLU()
                                        LRN()
                                        nn.MaxPool2d(kernel_size=3 stride=2)))
                (‘conv2‘ nn.Sequential(nn.Conv2d(96 256 kernel_size=5 stride=2)
                                        nn.ReLU()
                                        LRN()
                                        nn.MaxPool2d(kernel_size=3 stride=2)))
                (‘conv3‘ nn.Sequential(nn.Conv2d(256 512 kernel_size=3 stride=1)
                                        nn.ReLU()))
                (‘fc4‘   nn.Sequential(nn.Dropout(0.5)
                                        nn.Linear(512 * 3 * 3 512)
                                        nn.ReLU()))
                (‘fc5‘   nn.Sequential(nn.Dropout(0.5)
                                        nn.Linear(512 512)
                                        nn.ReLU()))]))
        # 分支层
        self.branches = nn.ModuleList([nn.Sequential(nn.Dropout(0.5) 
                                

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-11-17 21:39  MDNet Pytorch代码加注释\
     文件        2597  2018-11-09 16:58  MDNet Pytorch代码加注释\LICENSE
     文件        1466  2018-11-09 16:58  MDNet Pytorch代码加注释\README.md
     目录           0  2018-11-17 21:39  MDNet Pytorch代码加注释\modules\
     目录           0  2018-11-17 21:39  MDNet Pytorch代码加注释\modules\__pycache__\
     文件        6300  2018-11-15 21:32  MDNet Pytorch代码加注释\modules\__pycache__\model.cpython-36.pyc
     文件        6292  2018-11-16 16:17  MDNet Pytorch代码加注释\modules\__pycache__\model.cpython-37.pyc
     文件        2939  2018-11-16 16:15  MDNet Pytorch代码加注释\modules\__pycache__\sample_generator.cpython-36.pyc
     文件        2935  2018-11-16 16:17  MDNet Pytorch代码加注释\modules\__pycache__\sample_generator.cpython-37.pyc
     文件        1832  2018-11-15 20:49  MDNet Pytorch代码加注释\modules\__pycache__\utils.cpython-36.pyc
     文件        1836  2018-11-16 16:17  MDNet Pytorch代码加注释\modules\__pycache__\utils.cpython-37.pyc
     文件        8222  2018-11-17 19:36  MDNet Pytorch代码加注释\modules\model.py
     文件        4653  2018-11-16 15:31  MDNet Pytorch代码加注释\modules\sample_generator.py
     文件        2442  2018-11-17 10:10  MDNet Pytorch代码加注释\modules\utils.py
     目录           0  2018-11-17 21:39  MDNet Pytorch代码加注释\pretrain\
     目录           0  2018-11-17 21:39  MDNet Pytorch代码加注释\pretrain\__pycache__\
     文件        2836  2018-11-15 20:49  MDNet Pytorch代码加注释\pretrain\__pycache__\data_prov.cpython-36.pyc
     文件         727  2018-11-15 21:38  MDNet Pytorch代码加注释\pretrain\__pycache__\options.cpython-36.pyc
     目录           0  2018-11-17 21:39  MDNet Pytorch代码加注释\pretrain\data\
     文件     1012577  2018-11-15 21:38  MDNet Pytorch代码加注释\pretrain\data\vot-otb.pkl
     文件         955  2018-11-15 20:53  MDNet Pytorch代码加注释\pretrain\data\vot-otb.txt
     文件        4371  2018-11-15 19:43  MDNet Pytorch代码加注释\pretrain\data_prov.py
     文件        1250  2018-11-15 21:38  MDNet Pytorch代码加注释\pretrain\options.py
     文件        1261  2018-11-15 20:36  MDNet Pytorch代码加注释\pretrain\prepro_data.py
     文件        4613  2018-11-17 20:02  MDNet Pytorch代码加注释\pretrain\train_mdnet.py
     目录           0  2018-11-17 21:39  MDNet Pytorch代码加注释\tracking\
     目录           0  2018-11-17 21:39  MDNet Pytorch代码加注释\tracking\__pycache__\
     文件        2905  2018-11-16 15:02  MDNet Pytorch代码加注释\tracking\__pycache__\bbreg.cpython-36.pyc
     文件        2909  2018-11-16 16:17  MDNet Pytorch代码加注释\tracking\__pycache__\bbreg.cpython-37.pyc
     文件        1701  2018-11-16 15:02  MDNet Pytorch代码加注释\tracking\__pycache__\data_prov.cpython-36.pyc
     文件        1711  2018-11-16 16:17  MDNet Pytorch代码加注释\tracking\__pycache__\data_prov.cpython-37.pyc
............此处省略9个文件信息

评论

共有 条评论