PyTorch


2023/3/1 16:08 之前做机器学习相关的课程作业啥的都使用的tensorflow,但是使用体验实在是太糟糕了…尤其是两个版本的问题我到现在都还能没搞懂,反观PyTorch无论是从安装还是环境配置等方面都非常的成功,刚好这学期也要进行大量的python编程,所以决定开一个专栏汇总学习和使用PyTorch中的问题和心得;

参考之前学习tensorflow的经验,对于这种发展非常快的技术框架的学习最好不要找远古教材慢慢啃,一方面是这种技术类的书籍看了不动手几乎没用,另一方面是看书的效率很低几乎不可能完整的看完整本书,最重要的是AI发展日新月异,一般的教材根本就不适合用来学习技术,所以我选择直接在wx公众号或者知乎、博客园等地方找文章看结合代码实际操作;

2023/3/2 9:51 pytorch也没有必要花大量时间去读那种api文档学习,现阶段调用api谁不会似的,退一步说就算当时学会了怎么调用api在之后使用的时候还是百度,做这种笔记没有意义,我们应当学习的是其产生背景和相关知识而不是怎么去调用模型;


参考资料:

一、概述

如何在anaconda的环境下安装pytorch参考:在anaconda下安装pytorch + python3.8+GPU/CPU版本 详细教程-物联沃-IOTWORD物联网

如何在notebook中使用pytorch参考:(15条消息) 在jupyter notebook中遇到import torch 127找不到程序报错_jupyter notebook无法运行import torch_Unsunshine_Bigboy_?的博客-CSDN博客

关于pytorch中的torchvision库的安装:(15条消息) 深度学习错误汇总:import torchvision._C Error: DLL load faild._柚有所思的博客-CSDN博客

1.tensors

tensor是一种专有的数据结构,与数组和矩阵非常相似,在PyTorch中,使用tensor来编码一个模型的输入和输出,以及模型的参数;

tensor类似于NumPy的ndarrays,只是tensor可以在GPU或其他硬件加速器上运行,事实上,tensor和NumPy数组通常可以共享相同的底层内存,不需要复制数据;

tensor还为自动微分进行了优化;

1.1 tensor创建

tensor可以直接从数据中创建,数据类型根据数据自动推断

1
2
data = [[1, 2], [3, 4]]
x_data = torch.tensor(data)

tensor也可以从numpy数组中创建

1
2
np_array = np.array(data)
x_np = torch.from_numpy(np_array)

从其他tensor中初始化而来的新的tensor保留了参数tensor的属性(形状、数据类型),除非明确重写

1
2
3
x_ones = torch.ones_like(x_data) # retains the properties of x_data

x_rand = torch.rand_like(x_data, dtype=torch.float) # overrides the datatype of x_data

使用常数和随机数进行初始化,其中shape是一个tensor元组,决定了tensor输出的维度

1
2
3
4
shape = (2,3,)
rand_tensor = torch.rand(shape)
ones_tensor = torch.ones(shape)
zeros_tensor = torch.zeros(shape)

1.2 tensor操作

所有tensor操作参考torch — PyTorch 1.13 documentation,因为tensor和ndarrays类似,所以tensor的操作和ndarray也类似;


PyTorch
https://gintoki-jpg.github.io/2023/03/01/工具_pytorch/
作者
杨再俨
发布于
2023年3月1日
许可协议