数据分析-深度学习 Pytorch Day3

本文介绍了PyTorch中张量的创建、基本运算、其他操作及与Numpy的桥梁,包括torch.empty、torch.rand、torch.add、torch.sub、torch.matmul等函数,探讨了如何利用GPU加速计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Pytorch和Numpy

pytorch中的张量就类似于numpy中的n维数组。但是pytorch可以通过.cuda()方法使用GPU加速计算。这篇文章主要介绍pytorch的一些基本操作。这里也贴一下Pytorch的网站,里面也有torch的函数的参数说明以及例子。

1.首先是导入包。

import torch  #导入pytorch包
import numpy #导入numpy包

2.torch中常用的创建张量的方法

创建一个未初始化的2×3的矩阵

声明未初始化的矩阵,但使用前不包含确定的已知值。当创建一个未初始化的矩阵时,无论当时分配的内存中有什么值,都会显示为初始值。

a = torch.tensor([[1,2,3],[4,5,6]])#创建一个tensor([[1,2,3],[4,5,6]])
print(a.size())#获得张量a的形状,是一个元组
print(a)
x = torch.empty(2, 3)#多次运行可以看到,每次的x都是不一样的,因为未初始化
print(x.size())#获得张量x的形状,是一个元组
print(x)#此时的x未初始化,size与a相同。
y = torch.empty(2,3,out = a)
print(y.size())#获得张量y的形状,是一个元组
print(y)#运用a参数后,此时y和a一样了

empty_like = torch.empty_like(y) #创建一个size和y一样的未初始化张量。
print(empty_like.size())#获得张量empty_like的形状,是一个元组
print(empty_like)

关于torch.empty,torch.empty_like:

torch.empty(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False, pin_memory=False) → Tensor
	'''
        返回一个未初始化的张量,张量大小由参数size定义。
	参数说明:
        size(int…):是一个用于定义输出的张量的形状的整形序列,也可以是list或者turple。
        out(Tensor,可选):要求的值为张量,默认为none。也可以令out为一个具体张量a(a的shape与参数size相同),这样输出的张量就会和a一样。上面的例子可以看出。
        dtype(torch.dtype,可选): 要求的值的类型是torch.dtype,默认值是torch.set_default_tensor_type的值。可以通过这个dtype参数来改变输出的张量的数据类型。
        layout(torch.layout,可选):torch.layput表示torch.Tensor内存布局的对象。这个参数表示你希望返回的张量的内存布局类型,默认为torch.strided。torch.strided代表密集型张量,是最常见的内存布局;每个strided张量都关联一个torch.Storage,torch.Storage保存着strided张量的数据。
        device(torch.device,可选):创建的张量存放的device。
        requires_grad(bool,可选):要求的值为bool类型,默认为False。若为False则反向传播时不会对这个节点求导。
        '''

torch.empty_like(input, *, dtype=None, layout=None, device=None, requires_grad=False, memory_format=torch.preserve_format) → Tensor
	'''
        返回一个与input形状一样的使用未初始化值填满的tensor,相当于torch.empty(input.size(), dtype=input.dtype, layout=input.layout,
	参数说明:
        dtype(torch.dtype,可选): 要求的值的类型是torch.dtype,默认值是torch.set_default_tensor_type的值。可以通过这个dtype参数来改变输出的张量的数据类型。
        layout(torch.layout,可选):torch.layput表示torch.Tensor内存布局的对象。这个参数表示你希望返回的张量的内存布局类型,默认为torch.strided。torch.strided代表密集型张量,是最常见的内存布局;每个strided张量都关联一个torch.Storage,torch.Storage保存着strided张量的数据。
        device(torch.device,可选):创建的张量存放的device。
        requires_grad(bool,可选):要求的值为bool类型,默认为False。若为False则反向传播时不会对这个节点求导。
        memory_format(torch.memory_format, 可选): 期望返回张量的保存类型,默认为torch.preserve_format。torch.memory类型用于保存torch.Tensor的储存格式。torch.preserve_format是保留输入张量的内存格式,用在clone这样的函数中。如果输入张量是分配在稠密不重叠的内存中,那么输出张量的stride与输入相同。否则,输出的strides使用torch.contiguous_format。
        '''

创建一个随机的初始化矩阵

x = torch.rand(2,3)
print(x)

关于torch.rand:

torch.rand(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor
	'''
        返回服从均匀分布的初始化后的张量,张量大小由参数size定义。
	参数说明:
        size(int…):是一个用于定义输出的张量的形状的整形序列,也可以是list或者turple。
        out(Tensor,可选):要求的值为张量,默认为none。也可以令out为一个具体张量a(a的shape与参数size相同),这样输出的张量就会和a一样。
        dtype(torch.dtype,可选): 要求的值的类型是torch.dtype,默认值是torch.set_default_tensor_type的值。可以通过这个dtype参数来改变输出的张量的数据类型。
        layout(torch.layout,可选):torch.layput表示torch.Tensor内存布局的对象。这个参数表示你希望返回的张量的内存布局类型,默认为torch.strided。torch.strided代表密集型张量,是最常见的内存布局;每个strided张量都关联一个torch.Storage,torch.Storage保存着strided张量的数据。
        device(torch.device,可选):创建的张量存放的device。
        requires_grad(bool,可选):要求的值为bool类型,默认为False。若为False则反向传播时不会对这个节点求导。
        '''

创建一个全是0的矩阵,并且

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值