卷积网络学习

代码注意事项

1、参数配置

[-1, 1, module, [512, 256, 128, 1]]----->[from, number, module, args]

from:是从哪里接,-1就是代表上一层,-2就是上上层,具体数字就是具体哪一层。
number:就是重复来几次。
args:就是module的参数,注意module的第一个输入参数来自于“from”。
例如:[-1, 1, RepNCSPELAN4, [512, 256, 128, 1]]中的RepNCSPELAN4函数(类),输入参数为[上一层结果,512, 256, 128, 1]。
2、优化器使用

output= model(input)
# 计算损失函数
loss = model.criterion(output, target)
# 清空梯度
model.opt.zero_grad()
loss.backward()
# 根据优化器更新权重
model.opt.step()

3、卷积层分裂方法

a, b = list(x.chunk(2, 1))
a = x[:, :(x.shape[1] // 2), :, :]
b = x[:, (x.shape[1] // 2):, :, :]

4、卷积层堆叠

torch.cat((a, b), 1)

5、 __call__()方法的作用其实是把一个类的实例化对象变成了可调用对象,也就是说把一个类的实例化对象变成了可调用对象。

6、膨胀卷积

nn.Conv2d(in_channel, in_channel, 3, padding=4, dilation=4)
nn.BatchNorm2d(in_channel)
nn.ReLU()

7、加载相同数据集的多种状态

class subDataset(Dataset.Dataset):
    def __init__(self, Feature_1, Feature_2):
        self.Feature_1 = Feature_1
        self.Feature_2 = Feature_2
    def __len__(self):
        print(len(self.Feature_1))
        return len(self.Feature_1)
    def __getitem__(self,index):
        Feature_1 = self.Feature_1[index]
        Feature_2 = self.Feature_2[index]
        return Feature_1, Feature_2

data = subDataset(train_dataset, test_dataset)
data = torch.utils.data.DataLoader(data, batch_size=5, shuffle=True)

8、
nn.Conv2d()函数中groups= in_channels即为深度可分离卷积

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值