torch.tensor

news/2024/12/29 6:16:56/

torch.tensor

通过复制数据构造一个张量

  • (构造出的张量是一个没有自动微分(autograd )历史的张量,也称为叶张量,参考Autograd mechanics)。

torch.tensor(data, *, dtype=None, device=None, requires_grad=False, pin_memory=False) Tensor

  • data– 用于创建张量的初始数据。可以是列表、元组、NumPyndarray、标量和其他类型。
  • dtype (torch.dtype,可选)– 返回张量的所需数据类型。默认值:如果为 None,则从数据中推断数据类型。pytorch中的数据类型
  • device(torch.device,可选)- 构造的张量的设备。如果 None 且 data 是张量,则使用 data 设备。如果 None 且 data 不是张量,则结果张量在当前设备上构造。
  • requires_grad(bool, 可选)– 是否有autograd。默认值:False(没有)。
  • pin_memory (bool,可选) – 返回的张量将在固定内存中分配。仅适用于 CPU 张量。默认值:False。
python">import torch# 创建一个空张量(大小为0)
tensor_0=torch.tensor([]) 
print("空张量:", tensor_0)# 创建一个一维张量(向量)
tensor_1d = torch.tensor([1, 2, 3, 4, 5])
print("一维张量:", tensor_1d)# 创建一个二维张量(矩阵)
tensor_2d = torch.tensor([[1.1, 2.2], [3.3, 4.4]])
print("二维张量:", tensor_2d)# 创建一个三维张量
tensor_3d = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print("三维张量:", tensor_3d)# 创建一个序列,并将其转换为张量
sequence = [1, 2, 3]
tensor_from_list = torch.tensor(sequence)
print("从列表创建的张量:", tensor_from_list)# 创建一个张量,并指定是否需要梯度
tensor_requires_grad = torch.tensor([1.0, 2.0, 3.0], requires_grad=True)
print("需要梯度的张量:", tensor_requires_grad)# 对需要梯度的张量进行操作,并计算梯度
tensor_requires_grad[0].backward()
print("梯度:", tensor_requires_grad.grad)# 创建一个张量,并指定数据类型和设备
tensor_dtype_device = torch.tensor([0.1, 0.2, 0.3], dtype=torch.float64, device=torch.device('cuda:0'))
print("指定数据类型和设备的张量:", tensor_dtype_device)
'''output
空张量: tensor([])
一维张量: tensor([1, 2, 3, 4, 5])
二维张量: tensor([[1.1000, 2.2000],[3.3000, 4.4000]])
三维张量: tensor([[[1, 2],[3, 4]],[[5, 6],[7, 8]]])
从列表创建的张量: tensor([1, 2, 3])
需要梯度的张量: tensor([1., 2., 3.], requires_grad=True)
梯度: tensor([1., 0., 0.])
指定数据类型和设备的张量: tensor([0.1000, 0.2000, 0.3000], device='cuda:0', dtype=torch.float64)
'''

注意

当使用张量时,为了可读性,更倾向使用torch.Tensor.clone(), torch.Tensor.detach()torch.Tensor.requires_grad_()
设t为张量,torch.tensor(t)等价于t.clone().detach()torch.tensor(t, requires_grad=True)等价于t.clone().detach().requires_grad_(True)


http://www.ppmy.cn/news/1558998.html

相关文章

微软远程桌面APP怎么用

微软远程桌面(Remote Desktop)客户端(RD Client)是一款由微软开发的应用程序,允许用户通过网络连接远程访问和控制另一台计算机。同时,微软远程桌面RD Client支持多种设备和操作系统,包括Window…

使用 Three.js 创建动态卡片动画

介绍 我们将学习如何使用 Three.js 创建一个具有动态卡片动画和粒子效果的 3D 场景。项目包括: 卡片的动态进入与点击旋转动画背景粒子效果通过鼠标交互实现卡片旋转 HTML 和 CSS HTML 文件是项目的基础结构,用于引入相关的依赖和定义渲染 3D 场景的容…

Go主协程如何等其余协程完再操作

在Go语言中,主协程(main goroutine)可以使用多种方式来等待其他协程完成其操作。常见的方法是使用通道(channels)和 sync 包中的工具,比如 sync.WaitGroup。以下是这两种方法的示例: 使用 sync…

Dockerfile运行指令

1.RUN 在build构建时执行命令。 举例:安装vim Shell命令格式 RUN yum install -y vim Exec命令格式 RUN ["yum","install","-y","vim"] 2.CMD 用于设置容器启动时默认执行的命令或参数。 如果Dockerfile中有多个CMD&a…

简单园区网拓扑实验

1.实验拓扑 2.实验要求 1、按照图示的VLAN及IP地址需求,完成相关配置 2、要求SW1为VLAN 2/3的主根及主网关 SW2为vlan 20/30的主根及主网关 SW1和SW2互为备份 3、可以使用super vlan 4、上层通过静态路由协议完成数据通信过程 5、AR1为企业出口路由器 6、要求全网可…

Zookeeper下面的conf目录下面的zoo.cfg

zoo.cfg 是 ZooKeeper 安装目录下 conf 目录中的一个核心配置文件。这个文件包含了启动和运行 ZooKeeper 服务所需的所有配置信息。 zoo.cfg 文件中的内容通常包括以下部分: tickTime:这是 ZooKeeper 中最小的时间单位(以毫秒为单位&#xf…

微信流量主挑战:用户破16!新增文档转换(新纪元3)

朋友们,报告好消息!我的小程序用户数量已经涨到16个了!没错,真没拉朋友圈亲戚好友来撑场子,全靠实力(和一点点运气)吸引了16位陌生小伙伴光临!这波进步,连我自己都感动了…

利用 deepin-IDE 的 AI 能力,我实现了文件加密扩展

经过多轮迭代,deepin 文件管理器(dde-file-manager)的扩展功能已经趋于稳定,看到越来越丰富的文管新功能,作为一名技术爱好者,也想自己动手写个插件扩展一下文管的功能。 我选择的开发工具是 deepin-IDE&a…