C#部署基于pytorch的图像神经网络分类模型,实现本地化推理_c# pytorch

本文介绍了如何在C#环境中部署基于Pytorch的图像神经网络分类模型,详细阐述了从模型训练到TorchScript转换,再到C#的本地推理的全过程。在Ubuntu上使用Anaconda和Pytorch搭建训练环境,采用timm库进行模型选择,并在C#中利用OpenCvSharp、TorchSharp和libtorch库进行模型推理。
摘要由CSDN通过智能技术生成

2.模型训练和推理

2.1 基础库选择

2.2 模型推理程序

2.2 异步线程更新UI


1.模型训练

模型训练过程在Ubuntu(22.04.3) Anaconda(23.1.0) Pytorch(1.8.0+cu111)环境下进行。

1.1 环境搭建

  • 具体的安装方法如下连接所示,主要部署基于Pytorch(1.8.0+cu111)的虚拟环境用于模型的搭建和训练。Ubuntu22.04上安装Anaconda3-CSDN博客
  • 同时,需要安装一下自己常用的库,因为做模型的训练,我这里为了方便起见,还需要安装一下timm库。
pip install timm

1.2 数据集准备

  • 使用ImageFolder对数据进行加载
train_dataset = datasets.ImageFolder(root=args.TrainFolder, transform=data_train_transform)
test_dataset = datasets.ImageFolder(root=args.TestFolder, transform=data_test_transform)
print(train_dataset.class_to_idx)
train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=64, shuffle=True,num_workers=4,drop_last=True,pin_memory=True)
test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=64, shuffle=False,num_workers=4,pin_memory=True)
  • data_train_transform与data_test_transform数据预处理方法为,此处不写正则化,是想着简化后面在C#中的预处理步骤(统一除以255即可)
data_train_transform = transforms.Compose([
    transforms.RandomHorizontalFlip(),
    transforms.GaussianBlur(kernel_size=(5,5),sigma=(0.1,0.3)),
    transforms.RandomResizedCrop((224,224)),
    # transforms.Resize((224,224)),
    #Cutout(),
    
    transforms.ToTensor(),
    # transforms.Normalize(mean=[0.49404827, 0.49592876, 0.4070973],
    #                      std=[0.2071776, 0.2007362, 0.21388549])
])

data_test_transform = transforms.Compose([
    transforms.Resize((224,224)),
    transforms.ToTensor(),
    # transforms.Normalize(mean=[0.5006999, 0.50564367, 0.40601832],
    #         
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值