2301_76317148 2023-03-08 14:47 采纳率: 100%
浏览 35
已结题

关于CNN图像识别模型

img

img


在数据集上训练一个基于cnn的二进制分类模型,对未见过的图像进行预测。导入数据是带有40个属性注释的图片,想利用图上Model1改写出符合的版本,但是无从下手希望大家指导,图二是已有的模版。

  • 写回答

4条回答 默认 最新

  • 「已注销」 2023-03-08 14:54
    关注

    参考GPT和自己的思路:以下是针对您的需求对代码进行修改的版本:

    import torch.nn as nn
    import torch.nn.functional as F
    
    # define the CNN architecture
    class Net(nn.Module):
        def __init__(self):
            super(Net, self).__init__()
            self.conv1 = nn.Conv2d(3, 6, 5)
            self.pool = nn.MaxPool2d(2, 2)
            self.conv2 = nn.Conv2d(6, 16, 5)
            self.fc1 = nn.Linear(16 * 5 * 5, 120)
            self.fc2 = nn.Linear(120, 1)
    
        def forward(self, x):
            x = self.pool(F.relu(self.conv1(x)))
            x = self.pool(F.relu(self.conv2(x)))
            x = x.view(-1, 16 * 5 * 5)
            x = F.relu(self.fc1(x))
            x = torch.sigmoid(self.fc2(x))
            return x
    
    # create a complete CNN
    model = Net()
    print(model)
    
    # move tensors to GPU if CUDA is available
    if train_on_gpu:
        model.cuda()
    
    
    
    

    针对您的需求,我们对模型进行了以下修改:

    1 输出层改为只有一个神经元,对二进制分类问题进行建模。
    2 输出层激活函数改为sigmoid,将输出映射到[0, 1]的概率范围内。
    3 fc3改为fc2,同时修改输出层维度为1,使得模型能够处理二进制分类问题。
    请注意,在使用此修改后的模型进行训练和预测时,您需要根据自己的数据集对模型进行调整,例如修改输入图像的通道数,输出层的激活函数等等。同时,如果您要使用GPU进行训练,请确保将train_on_gpu设置为True。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月17日
  • 已采纳回答 3月9日
  • 创建了问题 3月8日

悬赏问题

  • ¥15 有人写过RPA后台管理系统么?
  • ¥15 Bioage计算生物学年龄
  • ¥20 如何将FPGA Alveo U50恢复原来出厂设置哇?
  • ¥50 cocos2d-x lua 在mac上接入lua protobuf?
  • ¥15 es 7.17.20版本生成时间戳
  • ¥15 wpf dategrid表头排序图标自定义
  • ¥15 xshell无法连接提示ssh服务器拒绝密码
  • ¥15 AT89C52单片机C语言关于串口通信的位操作
  • ¥20 需要步骤截图(标签-服务器|关键词-map)
  • ¥50 gki vendor hook