Errors while Extracting Features with AlexNet

本文档介绍了在使用预训练的AlexNet进行特征提取时遇到的加载state_dict错误及在计算损失函数时的AssertionError。针对这些问题,提出了将模型的conv3层分离并在forward中返回,以及通过detach目标张量来解决损失函数计算不支持梯度的问题。
摘要由CSDN通过智能技术生成

深度学习小白一只,勿喷,欢迎指正批评。

一、Error(s) in loading state_dict for AlexNet: Missing key(s) in state_dict:

我们经常需要借用别人训练好的网络来做自己的事,比如我目前在做的用AlexNetConv3作为自己的图像特征。常规方法是在:但是当将self.features拆成两个并把第三个卷积层赋值给conv3,在forward中 return conv3,如以下代码所示:

class AlexNet(nn.Module):
    def __init__(self, alexnet,transform_input = False):
        super(AlexNet, self).__init__()
        self.features = nn.Sequential(
            nn.Conv2d(3, 64, kernel_size=11, stride=4, padding=2),
            nn.ReLU(inplace=True),
            nn.MaxPool2d(kernel_size=3, stride=2),
            nn.Conv2d(64, 192, kernel_size=5, padding=2),
            nn.ReLU(inplace=True),
            nn.MaxPool2d(kernel_size=3, stride=2),
            )
         conv3 = nn.Conv2d(192, 384, kernel
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值