[深度学习入门]PyTorch环境配置与PyTorch学习(一)

简介: 笔记

一.PyTorch简介与环境配置


 PyTorch是一个开源的Python机器学习库,是一个相当简洁且高效快速的框架,是Torch在Python上的衍生。

 因为Torch是一个使用Lua语言的神经网络库,Torch很好用,但是 Lua 又不是特别流行,所以开发团队将Lua的Torch移植到了更流行的语言——Python上。PyTorch一发布就引起了剧烈的反响。

 下载网址:https://pytorch.org/


2.png

Anaconda是由Continuum Analytics开发的一款集成了Conda、Python以及一大堆安装好的工具包的开源软件。

 其中Conda是一个包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换。

 下载网址:https://www.anaconda.com/

3.png

 GPU(可选):一张高性能NVIDIA显卡

  具体安装教程可以参考B站up:我是土堆 的视频BV1hE411t7RN

4.png

 IDE推荐:PyCharm

5.png

 自带汉化包插件

  可更换Python解释器,这里要选择第二行的Anaconda自带的Python(在这个Python环境中安装了Pytorch框架)

6.png

可编辑,也可在Python控制台实现交互式编辑

7.png

在下面菜单栏的Python Packages中可以查看本解释器已安装的第三方包。


二.PyTorch学习


(一)Torch与Numpy

 Torch 自称为神经网络界的 Numpy, 因为他能将 Torch 产生的 tensor 放在 GPU 中加速运算 (前提是你有合适的 GPU), 就像 Numpy 会把 array 放在 CPU 中加速运算。

 所以神经网络的话, 当然是用 Torch 的 tensor 形式数据最好。

8.png

(二)张量tensor

  张量tensor分为0维、1维、2维和多维

  0维张量就是标量。

  1维张量就是数组。

  2维张量就是矩阵。

9.png

(三)Torch 中的数学运算

  Torch和Numpy中的很多方法大同小异。

10.png


(四)矩阵运算

除了简单的计算, 矩阵运算才是神经网络中最重要的部分。

12.png13.png

tensor.dot()是把两个张量的每一对元素都分别对应相乘再相加

  最后结果应该是30.0


(五)利用PyTorch简单地实现几种激活函数

image.png

15.png16.png

(六)建造第一个神经网络——关系拟合 (回归)

  如何在数据当中找到他们的关系, 然后用神经网络模型来建立一个可以代表他们关系的线条。

17.png

torch.unsqueeze(input, dim, out=None):起升维的作用,参数dim表示在哪个地方加一个维度,dim范围在:[-input.dim() - 1, input.dim() + 1]之间。比如输入input是一维,则dim=0时数据为行方向扩,dim=1时为列方向扩,再大会出现错误。

 tensor.size(x)用于返回tensor第 x 维的长度,不放参数即返回tensor的形状(同tensor.shape)。

 torch.rand(x.size()) →随机生成一个与x形状相同的矩阵,取值在(0,1)区间。

 1.首先,我们创建一些假数据来模拟真实的情况. 比如一个一元二次函数: y = a * x^2 + b, 我们给 y 数据加上一点噪声来更加真实的展示它(如果不加噪声,得到的y仅仅是一条x平方的曲线,而不是一些需要拟合的点)

 2.然后,我们建立一个神经网络,这里可以直接运用 torch 中的体系。先定义所有的层属性(init()), 然后再一层层搭建(forward(x))层与层的关系链接。


18.png

多少个输入,多少个隐藏层神经元,多少个输出

  self.hidden(x) → 使用隐藏层加工一下x,x作为输入经过隐藏层,得到输出为n_hidden。

  F.relu() → 用relu激励函数激励n_hidden。

  上页搭建的神经网络的结构如下:

19.png

 3.接下来,我们开始训练搭建好的神经网络

  损失函数的实例化

20.png

损失函数输入是一个输入的pair(对):(output, target),然后计算出一个数值来评估output和target之间的差距大小;

 其中output代表的是神经网络评估出来的输出值yk,>target代表(有监督训练的,真实的)标签tk。

 torch.nn中有若干个不同的损失函数可供使用,比如nn.MSELoss就是通过计算均方损失来评估输入和目标值之间从差距【越小越好】

21.png

22.png23.png24.png

相关文章
|
4天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
17天前
|
机器学习/深度学习 数据采集 人工智能
AI赋能教育:深度学习在个性化学习系统中的应用
【10月更文挑战第26天】随着人工智能的发展,深度学习技术正逐步应用于教育领域,特别是个性化学习系统中。通过分析学生的学习数据,深度学习模型能够精准预测学生的学习表现,并为其推荐合适的学习资源和规划学习路径,从而提供更加高效、有趣和个性化的学习体验。
74 9
|
1月前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
251 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
1月前
|
机器学习/深度学习 传感器 人工智能
深度学习之自主学习和任务规划
基于深度学习的自主学习和任务规划,是指通过深度学习算法使人工智能(AI)系统能够自主地从环境中学习,并根据特定的目标和任务,规划出有效的解决方案。
48 3
|
12天前
|
机器学习/深度学习 监控 PyTorch
深度学习工程实践:PyTorch Lightning与Ignite框架的技术特性对比分析
在深度学习框架的选择上,PyTorch Lightning和Ignite代表了两种不同的技术路线。本文将从技术实现的角度,深入分析这两个框架在实际应用中的差异,为开发者提供客观的技术参考。
33 7
|
1月前
|
机器学习/深度学习 算法 PyTorch
深度学习笔记(十三):IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU、WIOU损失函数分析及Pytorch实现
这篇文章详细介绍了多种用于目标检测任务中的边界框回归损失函数,包括IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU和WIOU,并提供了它们的Pytorch实现代码。
159 1
深度学习笔记(十三):IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU、WIOU损失函数分析及Pytorch实现
|
27天前
|
机器学习/深度学习 存储 自然语言处理
深度学习之少样本学习
少样本学习(Few-Shot Learning, FSL)是深度学习中的一个重要研究领域,其目标是在只有少量标注样本的情况下,训练出能够很好地泛化到新类别或新任务的模型。
26 2
|
1月前
|
机器学习/深度学习 自然语言处理 计算机视觉
深度学习中的迁移学习技术
【10月更文挑战第11天】 本文探讨了深度学习中的迁移学习技术,并深入分析了其原理、应用场景及实现方法。通过实例解析,展示了迁移学习如何有效提升模型性能和开发效率。同时,文章也讨论了迁移学习面临的挑战及其未来发展方向。
|
1月前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
352 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
1月前
|
机器学习/深度学习 算法 数据可视化
如果你的PyTorch优化器效果欠佳,试试这4种深度学习中的高级优化技术吧
在深度学习领域,优化器的选择对模型性能至关重要。尽管PyTorch中的标准优化器如SGD、Adam和AdamW被广泛应用,但在某些复杂优化问题中,这些方法未必是最优选择。本文介绍了四种高级优化技术:序列最小二乘规划(SLSQP)、粒子群优化(PSO)、协方差矩阵自适应进化策略(CMA-ES)和模拟退火(SA)。这些方法具备无梯度优化、仅需前向传播及全局优化能力等优点,尤其适合非可微操作和参数数量较少的情况。通过实验对比发现,对于特定问题,非传统优化方法可能比标准梯度下降算法表现更好。文章详细描述了这些优化技术的实现过程及结果分析,并提出了未来的研究方向。
27 1