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 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号