pytorch创建和操作tensor

import torch
import numpy as np### 1. 由函数创建
x = torch.zeros(5, 3, dtype=torch.int64) # 指定数据类型
print(x.dtype)
x = torch.zeros(5, 3)   # 默认数据类型为torch.float32
print(x.dtype)x = torch.rand(5, 3)x = torch.torch.ones(10,2,3)
x = torch.empty(5, 3)# Returns a tensor filled with random numbers from a normal distribution
x = torch.randn(2, 3)
# help(torch.randn)
print(x)# Returns a tensor filled with random numbers from a uniform distribution 
# on the interval [0,1)
x = torch.rand(2, 3)
print(x)x = torch.eye(5)
print(x)### 2. 从列表创建
x = torch.tensor([[1., -1.], [1., -1.]]) ## 从 numpy array创建
x = torch.tensor(np.array([[1, 2, 3], [4, 5, 6]]))
print(x)# torch tensor 和 numpy array互换
a = torch.ones(5) 
b = a.numpy()a = np.ones(5) 
b = torch.from_numpy(a)x = torch.randn(1)
print(x)   # 一维tensor
print(x.item()) # Python number
print(x.numpy()) # numpy 一维数组### 3. 通过现有的Tensor来创建
x = torch.ones(2,3)
print(x)
print(x.dtype)
x = x.new_ones(5, 3, dtype=torch.float64) # 返回的tensor默认具有相同的torch.dtype和torch.deviceprint(x) 
x = torch.randn_like(x, dtype=torch.float) # 指定新的数据类型
print(x)### 4. 查看tensor大小和形状
x = torch.randn(5,3,2)
print(x)
print(x.size())
print(x.shape)### 5. 改变tensor形状
a = torch.randn(5,3,2)
print(a.size())
a = a.view(-1, 5)
print(a.size())#b = torch.Tensor([1,2,3]).reshape((3,1))
b = torch.tensor([1,2,3]).reshape((3,1))
print(b)### 6. 查看tensor id
x = torch.tensor([1, 2])
y = torch.tensor([3, 4])id_before = id(y)#y = y + x
#print(id(y) == id_before) # Falsey[:] = y + x
print(id(y) == id_before) # True### 7. tensor运算
x = torch.rand(5, 3)
y = torch.rand(5, 3)print(x + y)print(torch.add(x, y))result = torch.empty(5, 3)
torch.add(x, y, out=result)
print(result)y.add_(x)
print(y)z = x * 3
print(z)# 对应元素相乘,矩阵形状一样
print(torch.mul(x, y))
print(x * y) # 矩阵形成,前一矩阵的列数等于后一矩阵的行数
a = torch.ones(3,4)
b = torch.ones(4,2)
print(torch.mm(a, b))# 批处理,最后两个维度进行torch.mm操作
# batched matrix x batched matrix
tensor1 = torch.randn(10, 3, 4)
tensor2 = torch.randn(10, 4, 5)
print(torch.matmul(tensor1, tensor2).size())### 8. tensor克隆
x = torch.randn(5,3,2)print(x)
x_cp = x.clone()
print(x_cp)print(id(x) == id(x_cp)) # Falseprint(id(x),id(x.view(-1,5))) # False### 9. 指定tensor在CPU或GPU上。device = torch.device('cuda' if torch.cuda.is_available() else
'cpu')
print(device)
x = torch.ones(5,3,device=device)
print(x)x = torch.ones(5,3) 
x = x.to(device) # 转移
print(x)### 10. tensor梯度
x = torch.rand(2, 2, requires_grad=True)
print(x)
print(x.grad_fn)
print(x.grad)# 构建计算图,再求x的梯度
y = 3*x
print(y)
print(y.grad_fn)print(y.view(-1,4))z = y * y
z = z.sum()
print(z.grad_fn)print(x.is_leaf, y.is_leaf, z.is_leaf)z.backward()  # z要求是标量
print(x.grad)

参考:

https://pytorch.org/docs/stable/tensors.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/6278.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matlab的GUI设计

文章目录 AppDesigner各个版本的特点mlapp文件基本格式AppDesigner的回调函数常见控件的属性MVC模式MVC模式设计GUIMVC简单使用 其他让app designer置顶将Guide的GUI导出为m文件将app编译为exe将app中的多个控件组合在一起 AppDesigner 20200328 各个版本的特点 在2017b版本中…

【JavaEE】Spring中注解的方式去获取Bean对象

【JavaEE】Spring的开发要点总结(3) 文章目录 【JavaEE】Spring的开发要点总结(3)1. 属性注入1.1 Autowired注解1.2 依赖查找 VS 依赖注入1.3 配合Qualifier 筛选Bean对象1.4 属性注入的优缺点 2. Setter注入2.1 Autowired注解2.2…

21matlab数据分析牛顿插值(matlab程序)

1.简述 一、牛顿插值法原理 1.牛顿插值多项式   定义牛顿插值多项式为: N n ( x ) a 0 a 1 ( x − x 0 ) a 2 ( x − x 0 ) ( x − x 1 ) ⋯ a n ( x − x 0 ) ( x − x 1 ) ⋯ ( x − x n − 1 ) N_n\left(x\right)a_0a_1\left(x-x_0\right)a_2\left(x-x_0\…

NLP masked_tokens[]、token_masks[]是什么?

1、masked_tokens[]、token_masks[]介绍 masked_tokens和token_masks两个列表用于存储mask处理后的token(分词)结果和对应的mask标志。 masked_tokens列表存储经过mask处理后的分词结果。 token_masks列表存储与每个分词结果对应的mask标志。 2、示例…

Electron运行时报错:浏览器报错Uncaught ReferenceError: require is not defined

这个错误通常发生在浏览器环境中使用了Node.js的模块化语法。由于浏览器不支持直接使用require关键字,所以会报错。 解决这个问题的一种方法是使用Webpack等工具将你的代码打包成浏览器可执行的文件。这样可以将require语法转换为浏览器可识别的语法。 另外&#…

SpringBoot 如何使用 EmbeddedDatabaseBuilder 进行数据库集成测试

SpringBoot 如何使用 EmbeddedDatabaseBuilder 进行数据库集成测试 在开发 SpringBoot 应用程序时,我们通常需要与数据库进行交互。为了确保我们的应用程序在生产环境中可以正常工作,我们需要进行数据库集成测试,以测试我们的应用程序是否能…

剑指offer61.扑克牌中的顺子

我的想法非常简单,就是先给数组排序,然后统计里面有几个0,然后遍历数组,如果是0或者比后面一个数小1就直接进入下一次循环,如果比后面一个数小2,就用掉一个0,0的数量减1,如果比后面的…

Pycharm----导入库文件夹不在py文件的目录下

问题描述: 想在不同目录下导入根目录的包,直接写会报错。如下边object_detect.py在function文件夹下,导入包默认在这个文件下,但我想导入根目录models和utils下的包 解决方法: 将根目录设置为源代码根目录&#xff0…

【OC总结 面向对象 + 内存管理 + runtime】

文章目录 前言面向对象1.1 一个NSObject对象占用多少内存?1.2 iOS的继承链 & 对象的指针指向了哪里?1.3 OC的类的信息存放在哪里?-isa指针1.4 isMemberOfClass & isKindOfClass Runtime1.4 讲一下OC的消息机制1.5 消息转发机制流程1.…

【指针和数组笔试题(1)】详解指针、数组笔试题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言整型数组字符数组第一组题第二组题第三组题 总结 前言 在计算之前要了解基本概念: 数组名的理解 数组名是数组首元素的地址 有两个例外 1.sizeof(…

Linux网络基础 — 数据链路层

目录 数据链路层 认识以太网 局域网转发的原理 认识以太网的MAC报头 以太网帧格式 认识MAC地址 对比理解MAC地址和IP地址 基于MAC帧协议再次谈一谈局域网转发的原理 认识MTU MTU对IP协议的影响 MTU对UDP协议的影响 MTU对于TCP协议的影响 ARP协议 ARP协议的作用 …

Xcode 15 beta 4 (15A5195m) - Apple 平台 IDE

Xcode 15 beta 4 (15A5195m) - Apple 平台 IDE IDE for iOS/iPadOS/macOS/watchOS/tvOS/visonOS 请访问原文链接:https://sysin.org/blog/apple-xcode-15/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org visonOS …

SpringBoot整合SpringCloudStream3.1+版本的Kafka死信队列

SpringBoot整合SpringCloudStream3.1版本的Kafka死信队列 上一篇直通车 SpringBoot整合SpringCloudStream3.1版本Kafka 实现死信队列步骤 添加死信队列配置文件,添加对应channel通道绑定配置对应的channel位置添加重试配置 结果 配置文件 Kafka基本配置&#…

C++ deque/queue/stack的底层原理

deque容器的存储结构 和 vector 容器采用连续的线性空间不同,deque 容器存储数据的空间是由一段一段等长的连续空间构成,各段空间之间并不一定是连续的,可以位于在内存的不同区域。 deque采用一块所谓的map数组(注意&#xff0c…

LeetCode 0874. 模拟行走机器人:哈希表模拟

【LetMeFly】874.模拟行走机器人:哈希表模拟 力扣题目链接:https://leetcode.cn/problems/walking-robot-simulation/ 机器人在一个无限大小的 XY 网格平面上行走,从点 (0, 0) 处开始出发,面向北方。该机器人可以接收以下三种类…

rabbitmq模块启动报java.net.SocketException: socket closed的解决方法

问题 最近在接手一个项目时,使用的是spring-cloud微服务构架,mq消息消费模块是单独一个模块,但启动这个模块一直报如下错误: java.net.SocketException: socket closed 这个错误是这个模块注册不到nacos报的错,刚开…

day34-Animated Countdown(动画倒计时)

50 天学习 50 个项目 - HTMLCSS and JavaScript day34-Animated Countdown&#xff08;动画倒计时&#xff09; 效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport&q…

态势标绘专题介绍

介绍 这个专栏是专门针对基于Cesium来实现态势标绘的专题专栏,专栏主要实现了30余种态势几何形状的标绘和编辑、文本的标绘和编辑、图片的标绘和编辑以及简单模型的标绘,同时支持标绘结果的导出以及导入。包括最终编写成的一个完整的Vue3.2+TS+Cesium1.107.2的标绘组件。专栏…

C#仿热血江湖

目录 1 GClass10 1.1 定义属性 1.2 int method 1.3 method 1.4 Byte method GClass0 定义属性private byte[] byte_0; private byte[] byte_1;

线性代数——线性方程组

文章目录 版权声明补充知识求和公式的性质常用希腊字符读音 线性方程组有解判定定理齐次线性方程组的基础解系非齐次线性方程组解的结构 版权声明 本文大部分内容皆来自李永乐老师考研教材和视频课。 补充知识 求和公式的性质 ∑ i 1 n k a i k ∑ i 1 n a i \sum_{i1}^n…