如果您对机器学习感兴趣,或者正在阅读这篇文章,您很可能以前听过PyTorch。 在机器学习开发者中,这是一个非常有名的框架,为了好的理由,本文进行讨论。 另外,如果只是从神经网络开始掌握基础知识,这是完美的初学者工具。
那么,进入PyTorch的精髓吧?
PyTorch的历史
Torch最初是用Lua写的。 这个用法不一般,很难懂。 另外,python提供的功能也没有一半。
因此,2017年,Facebook的AI研究室决定制作与Torch库具有相同功能但不包含python的库,因此将其命名为PyTorch。 这在开发者中很快就会受到打击,代码编写变得容易和有效。
认知计算-一种被广泛认为是……的最重要表现的技能
作为其用户,我们已逐渐将技术视为理所当然。 这些天几乎没有什么比这更普遍了……
趣闻: PyTorch Soumith Chintala的开发者之一是VIT的校友,这正好是我现在就读的大学!
我认为
Pytorch与Tensorflow
pytorch和Tensorflow之间总是有比较的。 因为这些用不同的方法解决问题,所以我认为这是不需要的。 另外,根据数据集和算法的不同,一种方法比另一种更有效。 但是,如果你还好奇的话,可以在这里看到这篇非常简洁的文章。
是什么使Pytorch成为一个好的框架?
指令型编程:在PyTorch中,计算立即执行。 这意味着用户不必等待编写完整的代码就可以检查其是否有效。 这对像我这样急躁的程序员来说是个好兆头,希望在每一行代码之后看到结果。 这样可以在python上提供更灵活的编码体验,并取决于性能。
source :3359媒体.com/@ vincentbacalso/imperative-vs -解释编程
2 .动态计算图:动态计算图框架是由库、接口和组件构成的系统,这些库、接口和组件提供灵活性、编程、运行时接口,数量有限因此,基本上,PyTorch遵循运行定义的原理对于像RNN这样的非固定大小的网络是非常有用的。
source :黑客noon.com
1. Autograd :这样的类是计算导数的引擎。 更准确地说,是Jacobian向量积。 记录在启用坡度的sfdxmg上执行的所有操作的图,并创建称为动态计算图的非循环图。 该图叶为输入sfdxmg,根据输出sfdxmg。 坡度是通过使用从根到叶的跟踪图,使用链条规则乘以每个坡度来计算的。
torch.nn.Autograd.Function
Source: Udacity.com
Pytorch的常用功能
torch.sum (:相加
(a*b ) .和) )。
1. torch.mm (:点积。
#Torch.nm(a,b ) ) )
1. torch.randn (:生成矩阵随机数
轨道.手动_秒(7) )。
# # settherandomseedsothingsarepredictable
x=torch.randn (2,2 ) () ) ) ) ) ) ) ) ) ) )。
1. torch.exp (:计算指数
sigmoid=1/(1轨道. exp (-x ) ) )
1. PyTorch提供模块nn,使网络的构建更加简单。
从跟踪导入nn
-nn.Linear (:此行创建用于线性变换的模块。
同样,可以使用以下函数计算相应的激活函数:
-nn.Sigmoid () )
– nn .软件最大值() )。
self.output=nn.Linearse
lf.sigmoid=nn.Sigmoid (
self.softmax=nn.softmax(dim=1) )。
# #列wise
1. nn.Sequential :使用此方法,可以通过顺序操作传递sfdxmg。
model=nn.sequential (nn .线性(输入_大小,隐藏_大小[0],n .线性),隐藏_大小)
7 .损失计算
criterion=nn.CrossEntropyLoss (
标准=NN.NLL loss (
criterion=nn.LogSoftmax (
1. Autograd:Autograd的工作原理是跟踪对sfdxmg执行的操作,并追溯这些操作来计算沿途的坡度。
-loss.backward ()计算用于参数计算的坡度。 这些坡度用于通过坡度下降来更新权重。
洛杉矶.巴克瓦德() )。
optimizer.zero_grad ()会将每个训练路径的坡度设为零。 否则,保留以前的训练批的坡度。
optimizer.zero_grad (
结论
我一直把这篇文章的重点放在PyTorch的理论和语法上。 第二部分,开发神经网络展示PyTorch在数据集上的演示。 因此,感谢您继续关注并阅读。 干杯!
参考: https://classroom.uda city.com/courses/ud 188-py跟踪概述。
(本文翻译自Puja Chaudhury文章《PyTorch: The Basics.》,参考: https://medium.com/datadriveninvestor/py torch-the-basics-7005 e 71 CDB 83 ) )