Pytorch教程

Tensor介绍

  • 张量是一种特殊的数据结构,与数组和矩阵非常相似。在PyTorch中,我们使用张量来编码模型的
  • 输入和输出,以及模型的参数。
  • 张量可以在GPU或其他硬件加速器上运行。
  • 张量和NumPy数组通常可以共享相同的底层内存,从而消除了复制数据的需要
  • 张量也对自动微分进行了优化

1 Tensor构建

张量可以直接从数据中创建。数据类型是自动推断的

import numpy as np
import torch

data = [[1,2],[3,4]]
x_data = torch.tensor(data)
print(x_data)

Pytorch教程

张量可以从NumPy数组中创建

np_arr = np.array(data)
x_np = torch.from_numpy(np_arr)
print(x_np)

Pytorch教程

从另一个tensor创建

#新张量保留参数张量的属性(形状/数据类型)
x_ones= torch.ones_like(x_data) #保留x_data的属性
print(f"Ones Tensor: \n{x_ones}\n")  #print(f" "), f表示在字符串内支持大括号内的python表达式,\n换行

x_rand= torch.randn_like(x_data,dtype=torch.float) #重写x_data数据类型
print(f"Random Tensor:\n{x_rand}\n")

Pytorch教程

torch.rand_like()

该张量由区间[0,1)上均匀分布的随机数填充。
rand_like(input)相当于torch.rand(input.size(), dtype=input.dtype, layout=input.layout, device=input.device)。

随机量或者常量初始化

shape = (2,3,) #决定了输出张量的维数
rand_tensor = torch.rand(shape)
ones_tensor = torch.ones(shape)
zeros_tensor = torch.zeros(shape)

print(f"Random Tensor:\n{rand_tensor}\n")
print(f"Ones Tenser:\n{ones_tensor}\n")
print(f"Zeros Tensor:\n{zeros_tensor}\n")

Pytorch教程

2 Tensor常用操作

张量属性描述它们的形状、数据类型和存储它们的设备

tensor = torch.rand(3,4)

print(f"Shape of tensor:{tensor.shape}")
print(f"Datatype of tensor:{tensor.dtype}")
print(f"Device tensor is stored on:{tensor.device}")

Pytorch教程

将Tensor转到GPU上

we move our tensor to the GPU if available
if torch.cuda.is_available():
    tensor = tensor.to('cuda')

Tensor索引

tensor = torch.ones(4,4)
print('First row:',tensor[0])
print('First colum:',tensor[:,0])
print('Last colum:',tensor[...,-1])
tensor[:,1] = 0 #第一列置为0
print(tensor)

Pytorch教程

Tensor连接concatenate

t1 = torch.cat([tensor,tensor],dim = 1)
print(t1)

Pytorch教程

Tensor与NumPy相互转换

t = torch.ones(5) #1行5列数组
print(f"t:{t}")
n = t.numpy()
print(f"n:{n}")
tt = torch.from_numpy(n)
print(f"t:{tt}")

Pytorch教程

数学运算 矩阵乘法

计算两个张量之间的矩阵乘法 y1 y2 y3 的值是一样的

tensor = torch.ones(2,4)#2行4列全1矩阵
print(tensor)

y1 = tensor @ tensor.T
y2 = tensor.matmul(tensor.T)
y3 = torch.rand_like(tensor)#创建一个tensor.shape的随机张量,用于接收下一行矩阵乘积
torch.matmul(tensor,tensor.T,out = y3)
print(f"y1:{y1}")
print(f"y2:{y2}")
print(f"y3:{y3}")

Pytorch教程

它对应元素的乘积

它对应元素的乘积 z1 z2 z3的值是一样的

它对应元素的乘积 z1 z2 z3的值是一样的
data = [[1,2,3,4],[5,6,7,8]]
tensor2= torch.tensor(data)
print(tensor2)

z1 = tensor * tensor2
z2 = tensor.mul(tensor2)
z3 = torch.rand_like(tensor)#创建一个tensor.shape的随机张量,用于接收下一行的乘积
torch.mul(tensor,tensor2,out = z3)
print(f"\nz1:{z1}")
print(f"z2:{z2}")
print(f"z3:{z3}")

Pytorch教程

Original: https://blog.csdn.net/m0_51233386/article/details/127545643
Author: R-G-B
Title: Pytorch教程

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/758116/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 风靡互联网关键词 Web3.0 | 区块链 | 元宇宙……

    💗wei_shuo的个人主页💫wei_shuo的学习社区🌐Hello World ! ; Web web是互联网的总称,全称为World Wide Web,缩写WWW ,即全球广域…

    Python 2023年9月27日
    069
  • pandas 删除空值

    pandas 删除空值 目的: 将该含有过多空值的行/列删除 DataFrame.dropna(axis=0, how=’any’, thresh=None, subset=Non…

    Python 2023年8月6日
    077
  • pygame 文字输入交互_web产品的基本交互方式

    ### 回答1: Python 中的 Three.js 语法和 Web 中的 Three.js 语法有些许区别,主要是在使用 Three.js 库时的引入方式和 API 调用方式上…

    Python 2023年9月24日
    053
  • 2022深圳杯C题思路解析

    题目描述: 继续更新 再更问题三 继续更新第一问、第四问 1.2 问题重述 在制定电动车调度方案时,必须考虑充、换电池的时间成本,从而提出了新 的车辆运输选址及调度问题。 1) 已…

    Python 2023年8月30日
    037
  • pandas数据分析

    1、series数据的生成和访问2、DataFrame数据生成的几种方法3、时间序列的生成和处理4、DataFrame数据的全方位访问5、DataFrame数据的规整化处理6、Da…

    Python 2023年8月6日
    075
  • 数据挖掘作业

    1.数组的创建(创建全0数组,全1数组,随机数数组) import numpy as np arr = np.zeros((5,),dtype=np.int) print(arr)…

    Python 2023年8月25日
    040
  • 单例设计模式

    目标: 单例设计模式 __new__方法 Python中的单例 1.单例设计模式 设计模式: 设计模式 是 前人工作的总结和提炼,通常,被人们广泛流传的设计模式,都是针对 某一特定…

    Python 2023年5月25日
    081
  • 迷宫生成算法(Aldous-Broder algorithm)

    Aldous-Broder算法 算法介绍 * 英文说明原文 本人的翻译 生成的迷宫图 Python代码 演示代码 GIF演示 参考 上一篇:迷宫生成算法(Wilson’…

    Python 2023年9月23日
    072
  • 自动驾驶汽车CAN总线数字孪生建模(二)

    标注:本文来自本实验室单超的研究成果。 整体思路:仿真模型通过python打开并运行之后,会启动Carla, 使用Carla API 获取汽车的相关数据之后,启动matplotli…

    Python 2023年9月21日
    040
  • 基于java Swing编写扫雷游戏设计实现(已调试)

    免费领取源码+参考 【javaswing扫雷游戏0806】 博主介绍: 🚀自媒体 JavaPub 独立维护人,全网粉丝15w+,csdn博客专家、java领域优质创作者,51cto…

    Python 2023年6月10日
    0113
  • 17_Vue列表过滤_js模糊查询

    列表过滤 需求分析 这里呢有张列表,假设这个列表有一百多条数据 当我在这个 搜索框当中 搜索 单个关键字的时候 (冬,周,伦),它能把带了这几个关键字的信息都给我罗列出来 === …

    Python 2023年10月17日
    037
  • mac安装anaconda教程

    随数据分析的发展,大多数企业对数据分析师要求已经不局限与Excel、SQL等工具了,为快速对数据进行处理和可视化,python成了数据分析的一项必备技能。作为入门简单的一个编程语言…

    Python 2023年8月1日
    054
  • 记一次 .NET 某数控机床控制程序 卡死分析

    一:背景 1. 讲故事 前段时间有位朋友微信上找到我,说它的程序出现了卡死,让我帮忙看下是怎么回事? 说来也奇怪,那段时间求助卡死类的dump特别多,被迫训练了一下对这类问题的洞察…

    Python 2023年10月23日
    038
  • Conda使用指南

    Conda使用指南 1.Conda是什么? 2.管理Conda 3.使用conda实现环境管理 4.包管理 5.配置管理 6.查询手册 1.Conda是什么? Conda是Anac…

    Python 2023年9月8日
    055
  • Pandas 中Series , Dataframe相关操作

    1.# 请将”_”处替换成能实现注释中功能的代码。 示例: 设置列表lst中位置3的值为1 lst_根据注释中说明可知,此处”_”应…

    Python 2023年8月18日
    061
  • Linux c编程之gdb

    一、说明 gdb是linux或unix平台的程序调试工具。不同于IDE调试工具,是一个命令行调式工具。一般来说,gdb主要帮助你完成下面四个方面的功能:1、启动你的程序,可以按照你…

    Python 2023年11月6日
    046
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球