残差神经网络实现图像识别

卷积神经网络实现图像识别

基于这个大佬的卷积神经网络
进行网络层的改进,运用ResNet-18进行图像识别,从二分类变成多分类,提高准确率。大佬写的很详细很细致,可以先精读一下。

数据集

下载地址
一共有60多个类的图片
这里用30个类进行实验(电脑带不动了),手动分训练集和测试集。图片比例最好为7:3。
类似于这样进行一个简单标注

网络层

数据预处理、训练函数、测试函数与大佬的相似。
注意将二分类代码进行修改。
这是修改后的网络层

# 加载预训练的ResNet-18模型
model = resnet18(pretrained=True)
num_classes = len(dataset_train.classes)
# 重置最后一层的输出大小
model.fc = nn.Linear(model.fc.in_features, num_classes)
model = model.to(device)

测试代码

#加载模型
model = resnet18(pretrained=False)
num_classes = 30  # 你的数据集有多少类别
model.fc = nn.Linear(model.fc.in_features, num_classes)
model.load_state_dict(torch.load('你存代码的地址'))
model.eval()

# 类别标签
class_labels = ['你有几个类就写几个标签','']
# 加载图片并进行预测
image_path = '你要进行测试的图片地址'
image = Image.open(image_path)
image = transform(image).unsqueeze(0)  # 增加一个维度表示batch size
output = model(image)
_, predicted = torch.max(output, 1)
predicted_label = class_labels[predicted.item()]

# 输出预测结果
print('Predicted label:', predicted_label)

结果

一般测试的准确率都有80%以上,多迭代几次可以达到90%
也能准确识别出图片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值