深度学习-03 Pytorch

embedded/2024/9/22 11:56:12/

损失函数是用来衡量模型预测结果与真实值之间的差异,并用来优化模型的指标。在机器学习和神经网络中,常用的损失函数包括均方误差(Mean Squared Error,MSE)、交叉熵(Cross-Entropy)等。
反向传播(Backpropagation)是一种基于梯度下降算法的优化方法,用来计算模型中每个参数对于损失函数的梯度,从而更新参数以最小化损失函数。反向传播通过链式法则将损失函数的梯度传递回每个参数,从输出层向输入层反向计算梯度。具体而言,反向传播算法可以分为两个步骤:
前向传播(Forward Propagation):将输入数据通过模型的参数计算出预测值,并计算出损失函数的值。
反向传播(Backward Propagation):通过链式法则计算出损失函数对于每个参数的梯度,并更新参数。
反向传播的过程中,需要根据损失函数的类型来计算梯度。例如,对于均方误差损失函数,梯度的计算可以通过对每个参数的偏导数进行求解;对于交叉熵损失函数,梯度的计算可以通过softmax函数的导数进行求解。
反向传播算法的实现主要包括两个步骤:计算梯度和参数更新。在计算梯度时,通过对损失函数进行求导,得到每个参数的梯度;在参数更新时,根据梯度和学习率进行参数的更新。这个过程不断迭代,直到达到收敛条件或达到一定的迭代次数为止。

优化器是机器学习中一个重要的组件,用于调整模型的参数以使其最优化。在机器学习任务中,目标就是最小化或最大化一个特定的损失函数。优化器的作用就是通过调整模型的参数,使得损失函数的值最小化或最大化。
常见的优化器有梯度下降法(Gradient Descent)、随机梯度下降法(Stochastic Gradient Descent)、动量法(Momentum)、Nesterov Accelerated Gradient(NAG)、Adagrad、RMSprop、Adam等。

常见的Pytorch模型有:
1.线性回归模型(Linear Regression Model):用于拟合线性关系数据的模型。
2.逻辑回归模型(Logistic Regression Model):用于分类问题的模型。
3.多层感知机模型(Multi-Layer Perceptron Model):由多个全连接层组成的深度神经网络模型。
4.卷积神经网络模型(Convolutional Neural Network Model):用于处理图像和视觉数据的模型。
5.循环神经网络模型(Recurrent Neural Network Model):用于处理序列数据的模型。
6.长短期记忆网络模型(Long Short-Term Memory Model):一种循环神经网络的变种,用于处理长序列数据的模型。
7.生成对抗网络模型(Generative Adversarial Network Model):由生成器和判别器组成的模型,用于生成新的数据样本。
8.注意力机制模型(Attention Mechanism Model):用于处理序列数据的模型,通过对输入序列的不同部分赋予不同的注意权重来提升模型性能。
9.Transformer模型:基于注意力机制的模型,用于处理序列数据的模型,如自然语言处理任务中的机器翻译和文本生成等。

模型保存

vgg16=torchvision.models.vgg16(pretrained=False)# 保存方式一,保存模型结构+模型参数
torch.save(vgg16,"vgg16_method1.pth")# 保存方式二,保存模型参数  (推荐)
torch.save(vgg16.state_dict(),"vgg16_method2.pth")# 保存方式一:加载模型
model=torch.load("vgg16_method1.pth")# 保存方式二:加载模型
vgg16=torchvision.models.vgg16(pretrained=False)
vgg16.load_state_dict()
model=torch.load("vgg16_method2.pth")

http://www.ppmy.cn/embedded/115013.html

相关文章

LabVIEW编程能力如何能突飞猛进

要想让LabVIEW编程能力实现突飞猛进,需要采取系统化的学习方法,并结合实际项目进行不断的实践。以下是一些提高LabVIEW编程能力的关键策略: 1. 扎实掌握基础 LabVIEW的编程本质与其他编程语言不同,它是基于图形化的编程方式&…

数据结构之结构体

1.求 sizeof(name1)?(晟安信息) struct name1{ char str; //1 short x;//2 int num;//4 }; 答案:8字节 2.(电工时代) typedef struct _a { char c1;//1 long i;//8 char c2;//1 double f;//8 }a; typedef struct _b { char c1;//1 char c2;//1 long i;//…

【架构设计】多级缓存:应用案例与问题解决策略

【架构设计】多级缓存:应用案例与问题解决策略 多级缓存系统的工作原理及其在提升应用性能方面的关键作用。通过对比本地缓存与分布式缓存的特点 | 原创作者/编辑:凯哥Java | 分类:架构设计系列教程 多…

大数据-142 - ClickHouse 集群 副本和分片 Distributed 附带案例演示

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

PPTP、L2TP、SSTP协议和HTTP、SOCKS5代理:全面解析与对比

在网络安全和隐私保护的领域中,虚拟专用网络已经成为保护隐私和安全访问网络资源的必备工具。而在虚拟专用网络的世界中,PPTP、L2TP和SSTP协议是三大广泛使用的协议。今天,我们将深入探讨这三种协议的特点、优缺点以及适用场景。 PPTP协议&a…

pgvector docker版安装;稀疏向量使用;psycopg2 python连接使用

参看: https://cloud.tencent.com/developer/article/2359831 https://hub.docker.com/r/pgvector/pgvector/tags https://github.com/pgvector/pgvector 一、安装 拉取0.7版本 docker pull pgvector/pgvector:0.7.4-pg16运行: docker run --name pgvector -v $(pwd)/dat…

LEAN 赋型唯一性(Unique Typing)之 Church-Rosser 定理 (Church-Rosser Theorem)及 赋型唯一性的证明

有了并行K简化的概念及其属性,以及其在LEAN类型理论中的相关证明,就可以证明,在K简化下的Church-Rosser 定理。即: 其过程如下: 证明如下: 其中的 lemma 4.9 和 4.10 ,及 4.8 是 这整个证明过程…

【Elasticsearch系列十八】Ik 分词器

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…