pytorch创建和操作tensor

这篇具有很好参考价值的文章主要介绍了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.device

print(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) # False

y[:] = 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)) # False

print(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文章来源地址https://www.toymoban.com/news/detail-599693.html

到了这里,关于pytorch创建和操作tensor的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一文详解Pytorch中的Tensor操作

    Tensor的英文原义是张量,PyTorch官网对其的定义如下: 也就是说,一个Tensor是一个包含单一数据类型的多维矩阵。通常,其多维特性用三维及以上的矩阵来描述,例如下图所示:单个元素为标量(scalar),一个序列为向量(vector),多个序列组成的平面为矩阵(matrix),多个平面组成

    2024年02月05日
    浏览(48)
  • 入门Pytorch:对Tensor的操作

    目录 前言 一、创建 list创建 numpy创建 填充创建 初始化 规律变化 指定类型创建 指定数据类型 转换数据类型 二、索引 直接索引 切片 用...表示多个被省略 三、维度变换 view,reshape维度变换 unsqueeze插入维度 squeeze删除维度 repeat复制维度 维度交换 四、广播机制 五、拼接和拆分

    2024年02月16日
    浏览(43)
  • Pytorch数据类型Tensor张量操作(操作比较全)

    本文只简单介绍pytorch中的对于张量的各种操作,主要列举介绍其大致用法和简单demo。后续更为详细的介绍会进行补充… 1.创建无初始化张量 torch.empty(3, 4) 创建未初始化内存的张量 2.创建随机张量 x = torch.rand(3, 4) 服从0~1间均匀分布 x = torch.randn(3, 4) 服从(0,1)的正态分布

    2024年02月10日
    浏览(47)
  • 【Pytorch】学习记录分享2——Tensor基础,数据类型,及其多种创建方式

    pytorch 官方文档 1. 创建 Creating Tensor: 标量、向量、矩阵、tensor 2. 三种方法可以创建张量,一是通过列表(list),二是通过元组(tuple),三是通过Numpy的数组(array),基本创建代码如下: 张量相关属性查看的基本操作,后期遇到的张量结构都比较复杂,难以用肉眼直接看出,因此

    2024年02月04日
    浏览(54)
  • 1.PyTorch数据结构Tensor常用操作

    从接口的角度来讲,对tensor的操作可分为两类: torch.function ,如 torch.save 等。 另一类是 tensor.function ,如 tensor.view 等。 为方便使用,对tensor的大部分操作同时支持这两类接口,如 torch.sum (torch.sum(a, b)) 与 tensor.sum (a.sum(b)) 功能等价。 而从存储的角度来讲,对tensor的操作又可

    2024年02月04日
    浏览(41)
  • 从 X 入门Pytorch——Tensor的索引,切片,拼接,拆分,Reduction操作

    本文参加新星计划人工智能(Pytorch)赛道: https://bbs.csdn.net/topics/613989052 承接上文:自己深度学习环境搭建和免费环境使用+Tensor构造+Tensor基本操作: 从 X 入门深度学习(Pytorch版本) 汇总: Name Out a[i, j, k, …] = a[i][j][k][…] 获取张量a的具体数据 a[start : end : step, start1 : end1 : step1

    2024年02月03日
    浏览(42)
  • 【Pytorch】学习记录分享1——Tensor张量初始化与基本操作

    1. 基础资料汇总 资料汇总 pytroch中文版本教程 PyTorch入门教程 B站强推!2023公认最通俗易懂的【PyTorch】教程,200集付费课程(附代码)人工智能_机器 视频 1.PyTorch简介 2.PyTorch环境搭建 basic: python numpy pandas pytroch theory: study mlp cnn transform rnn model: AlexNet VGG ResNet Yolo SSD 2. Tensor张量

    2024年02月04日
    浏览(50)
  • PyTorch 人工智能研讨会:6~7

    原文:The Deep Learning with PyTorch Workshop 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关心如何实现目标。——《原则》,生活原则 2.3.c 概述 本章扩展了循环神经网络的概念。 您将

    2023年04月20日
    浏览(67)
  • 人工智能(pytorch)搭建模型9-pytorch搭建一个ELMo模型,实现训练过程

    大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型9-pytorch搭建一个ELMo模型,实现训练过程,本文将介绍如何使用PyTorch搭建ELMo模型,包括ELMo模型的原理、数据样例、模型训练、损失值和准确率的打印以及预测。文章将提供完整的代码实现。 ELMo模型简介 数据

    2024年02月07日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包