使用pytorch搭建ResNet并基于迁移学习训练

这里的迁移学习方法是载入预训练权重的方法

python 复制代码
    net = resnet34()
    # load pretrain weights
    # download url: https://download.pytorch.org/models/resnet34-333f7ec4.pth
    model_weight_path = "./resnet34-pre.pth"
    assert os.path.exists(model_weight_path), "file {} does not exist.".format(model_weight_path)
    net.load_state_dict(torch.load(model_weight_path, map_location='cpu'))
    # for param in net.parameters():
    #     param.requires_grad = False

    # change fc layer structure
    in_channel = net.fc.in_features
    net.fc = nn.Linear(in_channel, 5)

这里的迁移学习方法是载入预训练权重的方法net = resnet34():注意这里没有传入参数num_classes 因为后面才载入所有的参数,会覆盖我们设定的classes

change fc layer structure

in_channel = net.fc.in_features # fc 为全连接层 in_features为特征矩阵的深度

net.fc = nn.Linear(in_channel, 5)

如果不想使用迁移学习的方法,则注释阴影部分,在net = resnet34()中传入num_classes参数

相关推荐
珠***格12 小时前
双碳目标下:四可装置如何助力光伏消纳与碳数据上报
网络·人工智能·分布式·安全·边缘计算
Python私教12 小时前
Codex 自动写 Commit 够安全吗?一套证据化 Git 提交流程
人工智能·git·后端
Python私教12 小时前
AI Agent 上生产要不要开写权限?我把执行链拆成 4 道闸门
人工智能·后端·python
专注数据的痴汉12 小时前
「数据下载」黑龙江省黑土区富锦市土地利用数据
大数据·人工智能·信息可视化
FII工业富联科技服务13 小时前
工业AR进入智能化阶段:AR+AI+数字孪生融合架构解析
人工智能·架构·ar
papaofdoudou13 小时前
判断排列逆序奇偶性的乘积判别法(范德蒙德符号法)
人工智能·算法
砖厂小工13 小时前
Android PR Review:Skill、Model 和交叉 Review 谁更重要?
人工智能
孔汤姆13 小时前
ESP32 掌机改造全记录:WiFi 遥测、一键启动 AI 终端
人工智能
HyperAI超神经13 小时前
【vLLM 学习】Disaggregated Prefill
人工智能·深度学习·学习·vllm
我星期八休息14 小时前
网络编程—网络层
开发语言·前端·网络·人工智能·智能路由器