各位亲爱的小伙伴,感谢大家对我文章的喜爱,从这篇文章开始,就算真正的进入了我们人工智能学习之旅的开始,我们会以pytorch框架为基础,给大家讲解神经网络是如何进行训练的,以及复现一些经典的神经网络。今天的文章给大家讲解pytorch框架。
一、Pytorch是什么
通俗给大家说,pytorch其实就是一个学习人工智能之神经网络的工具,比如我们的工具箱,里面有我们按需求所要的各种工具。
二、怎么使用Pytorch
在之前的章节里已经向大家介绍了如何安装cuda和cudnn,大家可以回看之前的文章。
cuda是NVIDIA开发的一种并行计算平台和应用程序编程接口(API),用于利用NVIDIA图形处理器(GPU)的并行计算能力。CUDA允许开发人员使用GPU来加速各种计算任务,包括科学计算、深度学习、图形渲染和其他需要大规模并行计算的应用程序。CUDA提供了一组编程工具和库,使开发人员能够在GPU上编写高性能的并行代码。
cudnn是NVIDIA开发的一个深度学习库,专门用于加速神经网络的训练和推理。CuDNN包含了一系列高效的深度学习操作的实现,如卷积、池化、标准化等,这些操作通常用于卷积神经网络(CNN)等深度学习模型中。CuDNN库允许深度学习框架(如TensorFlow、PyTorch和Caffe)利用NVIDIA GPU的强大计算能力来加速神经网络的训练和推理过程,从而大大提高了深度学习任务的速度和效率。
三、numpy中的ndarray和pytorch中tensor
Numpy会把ndarray放在CPU中进行加速运算,而由Torch产生的Tensor会放在GPU中进行加速运算。
Numpy和Tensor数据可以相互转换。
四、Tensor数据
Tensor的基本数据类型有五种:
32位浮点型:torch.FloatTensor (pytorch.Tensor()默认类型。)
64位整型:torch.LongTensor
32位整型:torch.IntTensor
16位整型:torch.ShortTensor
64位浮点型:torch.DoubleTensor
4.1创建tensor数据
与Numpy相似,也有rand()、zeros()、one_like()等函数
如何将Numpy和Tensor数据相互转换
Numpy转换为Tensor:
torch.tensor()
torch.as_tensor()
torch.from_numpy()
Tensor转换为Numpy:
tensor.numpy() #浅拷贝
np.array(tensor) #深拷贝
关于深浅拷贝,大家可以参考这位博主:【Python基础】Python的深浅拷贝讲解_51CTO博客_python 基础
4.2修改tensor形状
4.3索引操作
4.4逐元素操作
4.5归并操作
4.6比较操作
4.7矩阵操作
五、自我感受
从这章开始,深度学习的枯燥渐渐的开始显露出来,但是大家只要相信苦尽甘来,后续会给大家展示一些示例,让大家体会这些的用途,以及生活中的实际应用。