【深度学习】数据操作入门

数据操作

为了能够完成各种数据操作,我们需要某种方法来存储和操作数据。

通常,我们需要做两件重要的事:(1)获取数据;(2)将数据读入计算机后对其进行处理。

如果没有某种方法来存储数据,那么获取数据是没有意义的。

首先,我们介绍 n n n维数组,也称为张量(tensor)。

无论使用哪个深度学习框架,它的张量类 (在MXNet中为ndarray,在PyTorch和TensorFlow中为Tensor)都与Numpy的ndarray类似。

但深度学习框架又比Numpy的ndarray多一些重要功能:

首先,GPU很好地支持加速计算,而NumPy仅支持CPU计算;

其次,张量类支持自动微分。

这些功能使得张量类更适合深度学习。

入门

下面介绍并了解一些在阅读本书的过程中会用到的基本数值计算工具。

**首先,我们导入torch

请注意,虽然它被称为PyTorch,但是代码中使用torch而不是pytorch**

import torch

张量表示一个由数值组成的数组,这个数组可能有多个维度。

具有一个轴的张量对应数学上的向量(vector);具有两个轴的张量对应数学上的矩阵(matrix);具有两个轴以上的张量没有特殊的数学名称。

首先,我们可以使用arange创建一个行向量x 。这个行向量包含以0开始的前12个整数,它们默认创建为整数,也可指定创建类型为浮点数。

张量中的每个值都称为张量的元素(element)。例如,张量x中有12个元素。除非另外指定,新的张量将存储在内存中,并采用基于CPU的计算。

x = torch.arange(12)


可以通过张量的shape属性来访问张量(沿每个轴的长度)的形状(和张量中元素的总数)

x.shape

如果只想知道张量中元素的总数 ,即形状的所有元素乘积,可以检查它的大小(size)。因为这里在处理的是一个向量,所以它的shape与它的size相同。

x.numel()

要想改变一个张量的形状而不改变元素数量和元素值,可以调用reshape函数

例如,可以把张量x从形状为(12,)的行向量转换为形状为(3,4)的矩阵。

这个新的张量包含与转换前相同的值,但是它被看成一个3行4列的矩阵。需要重点说明一下,虽然张量的形状发生了改变,但其元素值并没有改变。注意,通过改变张量的形状,张量的大小不会改变。

X = x.reshape(3, 4)

我们不需要通过手动指定每个维度来改变形状。也就是说,如果我们的目标形状是(高度,宽度),那么在知道宽度后,高度会被自动计算得出,不必我们自己做除法。在上面的例子中,为了获得x的矩阵,我们手动指定了它有3行和4列。

幸运的是,我们可以通过-1来调用此自动计算出维度的功能。

即我们可以用x.reshape(-1,4)x.reshape(3,-1)来获得一个3行4列的矩阵。

有时,我们希望使用全0、全1、其他常量,或者从特定分布中随机采样的数字来初始化矩阵

我们可以创建一个形状为(2,3,4)的张量,其中所有元素都设置为0,代码如下:

torch.zeros((2, 3, 4))

同样,我们可以创建一个形状为(2,3,4)的张量,其中所有元素都设置为1,代码如下:

torch.ones((2, 3, 4))

有时我们想通过从某个特定的概率分布中随机采样来得到张量中每个元素的值。例如,当我们构造数组来作为神经网络中的参数时,我们通常会随机初始化参数的值。以下代码创建一个形状为(3,4)的张量,其中的每个元素都从均值为0、标准差为1的标准高斯分布(正态分布)中随机采样。

torch.randn(3, 4)

我们还可以通过提供包含数值的Python列表(或嵌套列表),来为所需张量中的每个元素赋予确定值。在这里,最外层的列表对应于轴0,内层的列表对应于轴1。

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

我们还可以[通过提供包含数值的Python列表(或嵌套列表),来为所需张量中的每个元素赋予确定值 ]。

在这里,最外层的列表对应于轴0,内层的列表对应于轴1。

torch.tensor([[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])
相关推荐
青松@FasterAI39 分钟前
【NLP高频面题 - 分布式训练篇】PS架构是如何进行梯度同步和更新的?
深度学习
JINGWHALE11 小时前
设计模式 行为型 访问者模式(Visitor Pattern)与 常见技术框架应用 解析
前端·人工智能·后端·设计模式·性能优化·系统架构·访问者模式
羊小猪~~1 小时前
错误修改系列---基于RNN模型的心脏病预测(pytorch实现)
人工智能·pytorch·rnn·深度学习·神经网络·机器学习·tensorflow
金智维科技官方1 小时前
财务自动化管理系统有哪些?
大数据·人工智能·自动化
猫头不能躺2 小时前
【pytorch】注意力机制-1
深度学习
郁大锤2 小时前
Windows 下安装 PyTorch 的常见问题及解决方法
人工智能·python
多用户商城系统2 小时前
AI在零售行业中的应用:提升顾客体验与运营效率
大数据·人工智能·线上线下新零售
沃恩智慧2 小时前
解锁图像处理新姿势!多尺度特征融合带来的视觉革新!
图像处理·人工智能·计算机视觉
MUTA️2 小时前
RT-DETR代码详解(官方pytorch版)——参数配置(1)
人工智能·pytorch·笔记·深度学习·机器学习·计算机视觉
weixin_307779132 小时前
Python的Langchain库的功能及实现代码
人工智能·python·langchain