在谷歌科拉布与 PyTorch 进行深度学习

PyTorch 和 Google Colab 已成为深度 学习的代名词 ,因为它们为人们提供了一种简单且经济实惠的方式,可以快速开始构建自己的神经网络和培训模型。GPU 并不便宜,这使得构建自己的自定义工作站对许多人来说具有挑战性。虽然深度学习工作站的成本可能是许多障碍,这些系统最近变得更加实惠,由于 NVIDIA的新RTX 30系列成本较低


即使有更实惠的选择,有自己的深度学习系统在手,许多人仍然蜂拥而至使用PyTorch和谷歌Colab,因为他们习惯于与深度学习项目的工作。

PyTorch 和 Google Colab 对开发神经网络非常强大

PyTorch 由 Facebook 开发,在深度学习研究社区中出名。它允许并行处理,并且具有易于读取的语法,导致采用率上升。PyTorch 通常比 TensorFlow 更易于学习,操作更轻,非常适合快速项目和快速原型构建。许多人使用 PyTorch 进行计算机视觉和自然语言处理 (NLP) 应用程序。

谷歌Colab是由谷歌开发的,以帮助大众访问强大的GPU资源,运行深度学习实验。它提供 GPU 和 TPU 支持,并集成与 Google 云端硬盘进行存储。这些原因使得它成为构建简单神经网络的最佳选择,特别是与类似随机 林的网络相比

使用谷歌科拉布

Google Colab 提供环境设置选项的组合,包括 Jupyter 式界面、GPU 支持(包括免费和付费选项)、存储和代码记录功能,所有这些功能都合在一个应用程序中。数据科学家可以拥有全包的深度学习体验,而无需花费一大笔钱在 GPU 支持上。

文档代码对于在人员之间共享代码非常重要,并且有一个中立位置来存储数据科学项目非常重要。 Jupyter 笔记本电脑 界面与 GPU 实例相结合,可实现良好的可重现环境。您还可以从 GitHub 导入笔记本或上传自己的笔记本。

需要注意的是:由于 Python 2 已过时,因此它不再在 Colab 上可用。但是,仍有运行 Python 2 的旧代码。值得庆幸的是,Colab 对此有一个修复程序,您可以使用它来运行 Python 2。如果你试一试, 你会看到一个警告, Python 2 在谷歌科拉布被正式弃用。

使用 PyTorch

PyTorch 的功能与任何其他深度学习库一样,它提供了一套模块来构建深度学习模型。不同的是,PyTorch Tensor 类类似于 Numpy ndarray。

Tensors 的一个主要优势是具有固有的 GPU 支持。张位可以运行在 CPU 或 GPU 上。 若要在 GUM 上运行,我们可以使用 PyTorch 中的内置 CUDA 模块更改环境以使用 GPU。 这使得 GPU 和 CPU 之间的切换变得容易。

呈现给神经网络的数据必须采用数字格式。使用 PyTorch,我们通过将数据表示为 Tensor 来做到这一点用外行的术语来说,与矢量或矩阵相比,张角可以存储在更高的尺寸中。

为什么 GPU 是首选?

Tensor 处理库可用于计算大量计算,但使用 1 核 GPU 时,编译计算需要大量时间。

这就是谷歌科拉布的用武之。它在技术上是免费的,但可能不适合大规模的工业深度学习。它更面向初级到中级从业者。它确实为大型项目提供付费服务,例如在免费版本中连接长达 24 小时,而不是 12 小时,并可根据需要提供对更强大资源的直接访问。

如何编写基本神经网络的代码

为了开始构建基本的神经网络,我们需要在 Google Colab 环境中安装 PyTorch。这可以通过运行以下 pip 命令并使用以下代码的其余部分来完成:

Python

 

102
1
#Import库
2
进口火炬torch
3
导入火炬视觉
4
火炬视觉import导入转换数据集
5
导入割nn作为nn
6
导入割nn.功能作为F
7
优化优化

8

9

10
# 创建测试和训练集
11
列车数据集MNIST(''火车+真实下载+真实
12
转换=转换撰写(*
13
转换托传感器()
14
 ]))
15

16
MNIST(''火车+下载+

17
转换=转换撰写(*
18
转换托传感器()
19
 ]))
20

21

22
# 本节将随机播放我们的输入/训练数据,以便我们对数据进行随机随机随机随机排列,并且不会冒使用模式馈送数据的风险。这里的目标是分批发送数据。这是一个很好的步骤,以确保神经网络不会过度适合我们的数据。NN 太容易过度拟合,只是因为需要的数据量过高。对于每个批处理大小,神经网络将运行新的更新权重的回传,以尝试每次减少损失

1px;"> + 火炬实用。数据数据加载器火车batch_size=10洗牌=

24
测试集火炬实用。数据数据加载器testbatch_size=10洗牌=错误
25

26

27

28
# 初始化我们的神经网络
29
nn.模块):
30
超级() 。__init__()

32
自我fc1nn.线性28*2864
33
自我fc2nn.线性6464
34
自我fc3nn.线性6464
35
自我fc4nn.线性6410
36

37
 x = 自我fc1x

39
x自我fc2x
40
x自我fc3x
41
x自我fc4x
42
返回Flog_softmaxx昏暗=1
43

44
()
45
输出

48
fc1线性in_features=784out_features=64偏置=
49
fc2线性in_features=64out_features=64偏置=
50
fc3线性in_features=64out_features=64偏置=
51
fc4线性in_features=64out_features=10偏置=
52
)
53

54

55

56
>loss_function\ nn.交叉熵损失()

58
优化器优化亚当.参数lr=0.001
59

60
对于范围中的纪元5= 我们使用 5 个纪元
61
对于data列车集中的数据: # "数据" 是一批数据
62
Xy数据# X是要素批次, y 是目标批次。
63

64
zero_grad() = 在计算损耗之前将渐变设定为 0。

65

66
输出X.视图(-1784) # 通过在重塑批次 (召回他们是 28x28 atm, - 1 需要显示输出可以是 n 尺寸.这是 PyTorch 独占语法)
67

68
损失F.nll_loss输出y= 计算并抓住损失值
69

70
损失向后() = 通过网络参数向后应用此损失
71

72
步骤() = 尝试优化权重以考虑损耗/梯度

73
打印丢失
74

75

76

77

78
输出
79
张量0.6039grad_fn= <Nlllossbackward>
80
张量0.1082grad_fn= <Nllloss 回向>
81
grad_fn= <Nlllossbackward>

82
张量0.4282grad_fn=<Nlllossbackward>
83
张量0.0063grad_fn=<NllLossbackward>
84

85

86
# 获取准确性
87
正确0
88
总计0
89

90
no_grad():

91
用于测试中的数据
92
Xy数据
93
输出X.视图-1784))
94
#print(输出)
95
举中的 idxiin输出
96
#print(torch.argmax(i),y[idx])
97
argmaxi) = y=idx=:

98
正确1
99
总计1
100

101
打印([精度:]正确/总计3))
102
输出精度 0.915

PyTorch 和 Google Colab 是数据科学中伟大的选择

PyTorch 和 Google Colab 是有用的,强大的,简单的选择,已被广泛采用的数据科学界,尽管 PyTorch 只发布在 2017 年 (3 年前!) 和谷歌科拉布在 2018 年 (2 年前! 两者都得到科技公司两个大牌的支持:Facebook和谷歌。PyTorch 提供了一套全面的工具和模块,尽可能简化深度学习过程,而 Google Colab 则提供了一个环境来管理您的编码和项目可重复性。

如果您已经在使用这些任一,您发现哪些对您自己的工作最有价值?

Comments are closed.