torch五项(pytorch handbook-编程之家

如果您对机器学习感兴趣,或者正在阅读这篇文章,您很可能以前听过PyTorch。 在机器学习开发者中,这是一个非常有名的框架,为了好的理由,本文进行讨论。 另外,如果只是从神经网络开始掌握基础知识,这是完美的初学者工具。

那么,进入PyTorch的精髓吧?

PyTorch的历史

Torch最初是用Lua写的。 这个用法不一般,很难懂。 另外,python提供的功能也没有一半。

因此,2017年,Facebook的AI研究室决定制作与Torch库具有相同功能但不包含python的库,因此将其命名为PyTorch。 这在开发者中很快就会受到打击,代码编写变得容易和有效。

认知计算-一种被广泛认为是……的最重要表现的技能

作为其用户,我们已逐渐将技术视为理所当然。 这些天几乎没有什么比这更普遍了……

趣闻: PyTorch Soumith Chintala的开发者之一是VIT的校友,这正好是我现在就读的大学!

我认为

Pytorch与Tensorflow

pytorch和Tensorflow之间总是有比较的。 因为这些用不同的方法解决问题,所以我认为这是不需要的。 另外,根据数据集和算法的不同,一种方法比另一种更有效。 但是,如果你还好奇的话,可以在这里看到这篇非常简洁的文章。

torch五项(pytorch handbook-编程之家

是什么使Pytorch成为一个好的框架?

指令型编程:在PyTorch中,计算立即执行。 这意味着用户不必等待编写完整的代码就可以检查其是否有效。 这对像我这样急躁的程序员来说是个好兆头,希望在每一行代码之后看到结果。 这样可以在python上提供更灵活的编码体验,并取决于性能。

torch五项(pytorch handbook-编程之家

source :3359媒体.com/@ vincentbacalso/imperative-vs -解释编程

2 .动态计算图:动态计算图框架是由库、接口和组件构成的系统,这些库、接口和组件提供灵活性、编程、运行时接口,数量有限因此,基本上,PyTorch遵循运行定义的原理对于像RNN这样的非固定大小的网络是非常有用的。

torch五项(pytorch handbook-编程之家

source :黑客noon.com

1. Autograd :这样的类是计算导数的引擎。 更准确地说,是Jacobian向量积。 记录在启用坡度的sfdxmg上执行的所有操作的图,并创建称为动态计算图的非循环图。 该图叶为输入sfdxmg,根据输出sfdxmg。 坡度是通过使用从根到叶的跟踪图,使用链条规则乘以每个坡度来计算的。

torch.nn.Autograd.Function

torch五项(pytorch handbook-编程之家

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 ) )