pytorch深度学习实践3——多分类问题,卷积神经网络CNN

18 篇文章 0 订阅
订阅专栏
15 篇文章 3 订阅
订阅专栏

多分类问题Softmax Classifier分类器

全连接网络:用线性层将网络连接在一起
在这里插入图片描述
softmax数学原理:
在这里插入图片描述
loss函数实现方法:
在这里插入图片描述

import numpy as np
y = np.array([1,0,0])
z = np.array([0.2,0.1,-0.1])
y_pred = np.exp(z)/np.exp(z).sum()
loss = (-y*np.log(y_pred)).sum()
print(loss)

交叉熵损失:
在这里插入图片描述

import torch
y = torch.LongTensor([0])
z = torch.Tensor([[0.2,0.1,-0.1]])
criterion = torch.nn.CrossEntropyLoss()
loss = criterion(z,y)
print(loss)

在这里插入图片描述

import torch
criterion = torch.nn.CrossEntropyLoss()
Y = torch.LongTensor([2,0,1])
Y_pred1 = torch.Tensor([[0.1,0.2,0.9],
                        [1.1,0.1,0.2],
                        [0.2,2.1,0.1]])
Y_pred2 = torch.Tensor([[0.8,0.2,0.3],
                        [0.2,0.3,0.5],
                        [0.2,0.2,0.5]])
l1 = criterion(Y_pred1,Y)
l2 = criterion(Y_pred2,Y)
print("Batch Loss1=",l1.data,"\nBatch Loss2",l2.data)

手写数字识别分类案例代码:
引入的包和库:
在这里插入图片描述
在这里插入图片描述
将图像转换为pytorch的tensor
将图像归一化为0-1分布
在这里插入图片描述
将transforms运用到dataset中:
在这里插入图片描述
构建模型:
在这里插入图片描述
在这里插入图片描述
定义损失函数和优化器:
在这里插入图片描述
训练:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import torch
from torchvision import transforms
from torchvision import datasets
from torch.utils.data import DataLoader
import torch.nn.functional as F  #导入relu函数
import torch.optim as optim  #优化器

batch_size = 64
#Normalize 归一化 0.1307 均值  0.3081 标准差
transform = transforms.Compose([transforms.ToTensor(),
                                 transforms.Normalize((0.1307),(0.3081,))])
train_dataset = datasets.MNIST(root='../dataset/mnist/',
                              train=True,
                              download=True,
                              transform=transform)
train_loader = DataLoader(train_dataset,
                          shuffle=True,
                          batch_size=batch_size)
test_dataset = datasets.MNIST(root='../dataset/mnist/',
                              train = False,
                              download=True,
                              transform=transform)
test_loader = DataLoader(test_dataset,
                         shuffle=False,
                         batch_size=batch_size)
class Net(torch.nn.Module):
    def __init__(self):
        super(Net,self).__init__()
        #线性变换,缩小维度,减少计算量
        self.l1 = torch.nn.Linear(784,512)
        self.l2  = torch.nn.Linear(512,256)
        self.l3 = torch.nn.Linear(256,128)
        self.l4 = torch.nn.Linear(128,64)
        self.l5 = torch.nn.Linear(64,10)  #最后变换为10个分类
    def forward(self,x):
        #-1  自动计算N的值  784 将图像转换为1维的长向量
        x = x.view(-1,784)
        #激活函数relu
        x = F.relu(self.l1(x))
        x = F.relu(self.l2(x))
        x = F.relu(self.l3(x))
        x = F.relu(self.l4(x))
        return self.l5(x)  #最后一层不做激活
model = Net()
#交叉熵损失函数
criterion = torch.nn.CrossEntropyLoss()
#momentum 冲量
optimizer = optim.SGD(model.parameters(),lr=0.01,momentum=0.5)

def train(epoch):
    running_loss = 0.0
    for batch_idx,data in enumerate(train_loader,0):
        inputs,target = data
        optimizer.zero_grad()  #梯度值清零
        outputs = model(inputs)   #前向传播
        loss = criterion(outputs,target)
        loss.backward()   #反向传播
        optimizer.step()  #更新权重

        running_loss+=loss.item()
        if batch_idx %300==299:
            print('[%d,%5d] loss:%.3f' %(epoch+1,batch_idx+1,running_loss/300))
            running_loss=0.0
def test():
    correct = 0
    total = 0
    with torch.no_grad():   #使得以下代码执行过程中不用求梯度
        for data in test_loader:
            images,labels = data
            outputs = model(images)
            # 在每一行中求最大值的下标,返回两个参数,第一个为最大值,第二个为坐标
            #dim=1 数值方向的维度为0,水平方向的维度为1
            _,predicted = torch.max(outputs.data,dim=1)
            total+=labels.size(0)
            #当预测值与标签相同时取出并求和
            correct+=(predicted==labels).sum().item()
    print('Accuracy on test set:%d %%' % (100*correct/total))

if __name__=='__main__':
    for epoch in range(10):
        train(epoch)
        test()

卷积神经网络CNN(基础篇)

卷积神经网络结构:
在这里插入图片描述
在这里插入图片描述
彩色图像做卷积:
在这里插入图片描述
卷积核的张量有四个维度:
在这里插入图片描述
在这里插入图片描述
实例:
在这里插入图片描述
在这里插入图片描述
最大池化:
在这里插入图片描述
在这里插入图片描述
基本过程:
在这里插入图片描述
在这里插入图片描述
实现代码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结果达到98%
在这里插入图片描述

卷积神经网络CNN(高级篇)

1*1的卷积核的作用:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
梯度消失:指在反向传播过程中,梯度始终小于1,在累乘的过程中,会逐渐趋于0,由于w=w-ag g(梯度)等于0时,w就不再改变。利用残差网络可以有效的抑制梯度消失的出现。利用残差网络要保证输出层和输入层的维度保持一致。
残差网络的实现:
在这里插入图片描述
在这里插入图片描述

猫的12分类代码——基于pytorch的分类网络
06-22
使用Resnext50网络对猫图像进行分类,最终得到正确率91.67%。
python实现CNN中文文本分类
02-09
CNN 中文文本挖掘 文本分类 python 深度学习 机器学习 CNN 中文文本挖掘 文本分类 python 深度学习 机器学习
【keras】一维卷积神经网络多分类
热门推荐
Jiawen9的博客
06-20 4万+
刚刚接触到深度学习,前2个月的时间里,我用一维的卷积神经网络实现了对于一维数据集的分类和回归。由于在做这次课题之前,我对深度学习基本上没有过接触,所以期间走了很多弯路。 在刚刚收到题目的要求时,我选择使用TensorFlow来直接编写函数,结果由于没有什么基础,写了一个周我就放弃了,改用keras来完成我的任务。 用keras来搭建神经网络其实很简单。网络的前面部分都是在提取一维信号的特征 ...
深度学习pytorch——多分类问题(持续更新)
最新发布
2201_76139143的博客
03-24 1183
1、回归问题的目标是使预测值等于真实值,即pred=y。2、求解回归问题的方法是使预测值和真实值的误差最小,即minimize dist(pred,y),一般我们通过求其2-范数,再平方得到它的最小值,也可以直接使用1-范数。
自定义的卷积神经网络模型CNN,对图片进行分类并使用图片进行测试模型-适合入门,从模型到训练再到测试,开源项目
qq_44757503的博客
10-31 2916
自定义的卷积神经网络模型CNN,对图片进行分类并使用图片进行测试模型-适合入门,从模型到训练再到测试,开源项目
CNN+SVM模型实现图形多分类任务(SVM替换softmax分类器)
haosen
05-03 1万+
目录 摘要 模型构建 读取数据集: CNN模型构建: 模型结构: 训练模型: 结果对比分析: 结束: 摘要 为解决采用 softmax 作为卷积神经网络分类器导致图形分类识别模型泛化能力的不足,不能较好适用图像分类等问题,本次博客使用SVM代替CNN网络的softmax分类层,即CNN提取特征后利用SVM进行分类。为了验证模型更改后的效果,本次在随机构建的垃圾分类数据集上做了一...
卷积神经网络(多分类问题 pytorch)
Batac的博客
02-02 814
# 手写数字识别 神经网络处理 高级处理 import torch import torch.nn as nn # 数据集处理 from torchvision import transforms from torchvision import datasets from torch.utils.data import DataLoader # 函数 激活函数等 import torch.nn.functional as F # 优化器包 import torch.optim as optim # .
pytorch实现CNN模型进行多分类(mnist)
u011250160的博客
06-18 4659
使用的数据集:MNIST import torch import numpy as np import pandas as pd import torch.nn as nn import torch.nn.functional as F import matplotlib.pyplot as plt from torch.utils.data import Dataset from torch.utils.data import DataLoader from torchvision.datasets i
卷积神经网络09(多分类问题)太详细的,手把手
weixin_42989738的博客
09-06 1521
ont-hot 独热编码 使用e^z为了保证大于0 损失为0,对于分类是没有意义的 练习 import torch criterion = torch.nn.CrossEntropyLoss() Y = torch.LongTensor([2,0,1]) Y_pred1 = torch.tensor([[0.1,0.2,0.9], [1.1,0.1,0.2], [0.2,2.1,0.1]]) Y_...
深度学习-基于(Pytorch)卷积神经网络多分类实验分析
每天努力一点点
05-21 4041
本次实验利用CNN对类别数据集进行分类,并掌握卷积神网络搭建的过程,了解卷积模块,池化模块,Batch Normalization模块,激活函数等各个模块的原理,以及对图像进行卷积操作,池化操作等计算方法与过程;对每次训练损失进行可视化,不断调整参数,例如优化器的选取、学习率等;通过混淆矩阵来评判分类结果好坏。 数据集描述 实验使用的类别数据集有6400张大小不统一的彩色图片,这些彩色图片归属八个类别,该类别包括猫、狗、飞机、花、水果、摩托车、汽车、人;每个类别含有800张图片。
神经网络实现多分类实例_鸢尾花分类.rar
03-21
keras神经网络实现多分类实例_鸢尾花分类,代码
Pytorch实现基于卷积神经网络的面部表情识别项目源码
03-11
本项目是一个完整的深度学习实践,课题是人脸表情识别,使用到的模型是卷积神经网络,难度在简单——中等级别,方便初学者入门。在这里,面部表情识别相当于一个分类问题,共有7个类别。其中label包括7种类型表情。...
PyTorch可视化理解卷积神经网络
02-24
造就机器能够获得在这些视觉方面取得优异性能可能是源于一种特定类型的神经网络——卷积神经网络CNN)。如果你是一个深度学习爱好者,你可能早已听说过这种神经网络,并且可能已经使用一些深度学习框架比如caffe、...
PyTorch-ResidualBlock GPU版本 B站 刘二大人第11讲卷积神经网络(高级篇-2)GPU版本
01-20
原理是基于B站 刘二大人 :传送门PyTorch深度学习实践——卷积神经网络(高级篇) 这是ResidualBlock的pytorch实现,并且实现了在GPU上运行
深度学习实战】使用卷积神经网络(LeNet-5)对mnist数据集进行多分类
在热爱技术的路上一直前行。
01-04 990
【代码】【深度学习实战】使用卷积神经网络(LeNet-5)对mnist数据集进行多分类
(五)使用CNN实现多分类的情感分析
赵小白的博客
01-19 3771
文章目录准备数据搭建模型训练模型用户输入完整代码 在之前的所有笔记中,我们已经对只有两个类别的数据集(正面或负面)进行了情感分析。当我们只有两个类时,我们的输出可以是一个标量,限制在0和1之间,表示示例属于哪个类。当我们有两个以上的分类时,我们的输出必须是一个CCC维向量,其中CCC是类的数目。 在本笔记中,我们将对一个有6个类的数据集进行分类。请注意,这个数据集实际上不是一个情感分析数据集,它是一个问题数据集,任务是对问题所属的类别进行分类。但是,本笔记本中所涵盖的内容适用于包含属于CCC类之一的输入序列
CNN多类别实现
Sousky的博客
03-07 4325
可以参考: https://blog.csdn.net/u012290039/article/details/38818405 CNN: single-label to multi-label总结 https://juejin.im/post/5b38971be51d4558b10aad26 二分类、多分类与多标签问题的区别,对应损失函数的选择,你知道吗? ...
python实现TextCNN文本多分类任务(附详细可用代码)
weixin_48154880的博客
04-14 1098
详细可用的TextCNN代码
pytorch深度学习实战卷积神经网络
07-27
PyTorch深度学习实战中,可以使用卷积神经网络来进行图像分类任务。在实战中,可以使用经典的卷积神经网络模型,如VGG、ResNet、Inception和DenseNet等。这些模型都是在深度学习的发展过程中出现的经典模型,对深度学习的学术研究和工业生产都起到了巨大的促进作用。初学者可以通过阅读论文和实现代码来全面了解这些模型。例如,可以使用PyTorch中的torchvision.models模块来加载预训练的卷积神经网络模型,如VGG-16、VGG-19和ResNet等\[1\]。其中,VGG-16和VGG-19是由卷积层、池化层和全连接层等不同组合构成的经典卷积神经网络模型\[1\]。而ResNet是一种使用残差单元连接而成的卷积神经网络模型,通过跨层的短接来突出微小的变化,使得网络对误差更加敏感,并解决了网络退化现象,具有良好的学习效果\[2\]\[3\]。因此,在PyTorch深度学习实战中,可以选择合适的卷积神经网络模型来进行图像分类任务。 #### 引用[.reference_title] - *1* *2* *3* [PyTorch深度学习实战 | 典型卷积神经网络](https://blog.csdn.net/qq_41640218/article/details/129832298)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • C++编程入门之一(开头) 24386
  • halcon编程入门四——halcon缺陷检测 19297
  • C#应用6——chart数据显示(柱状图、饼图、横向柱状图、雷达图) 12591
  • pytorch深度学习实践3——多分类问题,卷积神经网络CNN 9100
  • MFC深入浅出之一MFC基础 6610

分类专栏

  • C# 69篇
  • WPF 29篇
  • 鸿蒙开发 1篇
  • C#应用 9篇
  • C#串口通讯 1篇
  • Mysql 1篇
  • SQL Server 8篇
  • MQTT 1篇
  • opencvsharp 1篇
  • opencv+python 14篇
  • 自动驾驶 6篇
  • MOOC网嵌入式Linux应用开发与实践 4篇
  • C++联合QT 22篇
  • 深度学习应用 3篇
  • 目标检测 6篇
  • tensorflow 29篇
  • python项目应用 1篇
  • 其他——系统 1篇
  • 图片标注工具 1篇
  • 人工智能算法 1篇
  • C#modbus 1篇
  • 小说
  • sherlock 1篇
  • pytorch 15篇
  • halcon联合C++ 1篇
  • MH_Vision 1篇
  • C#联合halcon 3篇
  • 深度学习 18篇
  • sql 2篇
  • python 37篇
  • C++ 30篇
  • vs使用 3篇
  • MFC 28篇
  • halcon 50篇
  • tensorflow1 8篇
  • opencv联合C++ 29篇
  • 相机 3篇

最新评论

  • C#联合halcon3——TCP&多线程

    123梦野: 你要这个吗?

  • 海康、大华连接相机失败:未安装USB3驱动或驱动无效

    qq_59800178: 感谢分享 问题已解决

  • C#联合halcon3——TCP&多线程

    weixin_46652341: 请问一下你找到了吗

  • WPF上位机6——文件操作、多线程、线程锁、Task异步编程

    忆生887: 请问可以发一下视频链接出来吗?谢谢您

  • MFC入门之三MFC案例——仓库管理系统

    Z123454545: 这个可以用VC++6.0吗?

大家在看

  • 【SpringBoot】SpringBoot同时可以处理多少请求
  • 【调试笔记-20240601-Linux-在 OpenWRT-23.05 上配置 frpc 实现内网穿透】 1902
  • 【Socket】解决TCP粘包问题 483
  • 网络空间安全和信息安全这2个专业有什么区别?该怎么选择?答案在此! 103
  • 区块链部署笔记(Centos7)包含fisco bcos与webase! 737

最新文章

  • C#通用类库封装实战
  • WPF项目实战合集(2022终结版)1——命令、属性通知、资源基础、动画
  • C#进阶——反射、特性
2024年4篇
2023年45篇
2022年63篇
2021年94篇
2020年101篇
2019年129篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司宝安英文网站建设报价果洛网站改版报价平顶山网站优化软件报价南澳网页设计推荐甘孜网络广告推广哪家好淮北seo排名公司赤峰网站制作设计黔西南企业网站改版报价广安网站排名优化大连百度标王价格和田网站建设设计丹东设计网站价格绍兴外贸网站制作推荐景德镇网络营销价格民治设计网站烟台网站推广工具价格松原网站制作设计哪家好邢台网站优化东营网站优化价格驻马店网站建设公司连云港SEO按天扣费多少钱观澜百度标王价格海南百姓网标王推广价格漯河百度标王推荐咸阳网站改版铁岭网站制作设计推荐清远模板推广哪家好眉山关键词按天收费公司梧州SEO按天收费蚌埠企业网站设计推荐歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化