PyTorch 张量数据类型

news2024/11/15 8:51:15
  • 【数据类型】Python 与 PyTorch 常见数据类型对应:
    在这里插入图片描述
    a.type() 获取数据类型,用 isinstance(a, 目标类型) 进行类型合法化检测

    >>> import torch
    >>> a = torch.randn(2,3)
    >>> a
    tensor([[-1.7818, -0.2472, -2.0684],
            [ 0.0117,  1.4698, -0.9359]])
    >>> a.type()  ## 获取数据类型
    'torch.FloatTensor'
    >>> isinstance(a, torch.FloatTensor)  ## 类型合法化检测
    True
    >>> 
    
  • 【什么是张量】标量与张量:用 a.dim(), a.shape 或者 a.size() 查看 dim 为 0 是标量,否则是张量

    >>> import torch
    >>>
    >>> a = torch.tensor(1) 
    >>> a
    tensor(1)
    >>> a.dim()
    >>> 0  ## 标量
    
    >>> a = torch.Tensor([1]) 
    >>> a
    tensor([1.])
    >>> a.dim()
    >>> 1  ## 张量
    
  • 【生成张量】常见方法如下:

    • 常见随机方法:torch.randn(shape), torch.rand(shape), torch.randint(min, max, shape), torch.rand_like(a), torch.normal(mean, std) … 具体示例如下
    • Dim 1 / rank 1: 以 size 2 为例
      >>> a = torch.randn(2)   ## 随机,
      >>> a: tensor([1.4785, 0.6089])
      
      >>> a = torch.Tensor(2)   ## 接收维度, unintialized 不推荐
      >>> a: tensor([5.4086e+26, 4.5907e-41])
      >>> a = torch.Tensor([1,2])   ## 同 torch.tensor([1,2]) 接收具体数据
      >>> a: tensor([1, 2])
      
      >>> a = torch.from_numpy(np_data)  ## 数据维持不变,类型一一对应
      
      >>> a = torch.full([2],7)   ## 全部填充为一样的值   
      >>> a: tensor([7, 7])
      
      >>> a = torch.arange(0,10)   ## arange
      >>> a: tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
      
      >>> a = torch.linspace(0,10, steps=4)   ##  
      >>> a: tensor([ 0.0000,  3.3333,  6.6667, 10.0000])
      >>> a = torch.logspace(0,10, steps=4) 
      >>> a: tensor([1.0000e+00, 2.1544e+03, 4.6416e+06, 1.0000e+10])
      
    • Dim 2 / rank 2: 以 size [2,3] 为例
      >>> a = torch.randn(2, 3)   ## 随机 
      >>> a: tensor([[ 2.0631, -1.7011,  0.6375],
      	    	   [-1.2104, -1.3341, -0.8187]])
      
      >>> a = torch.Tensor(2, 3)   ## 接收维度, unintialized 不推荐   
      >>> a: tensor([[-0.2438, -0.9554, -0.4694],
      			   [ 0.8636,  1.6497, -0.8862]])
      >>> a = torch.Tensor([[1,2,3],[4,5,6]])  ## 同 torch.tensor([[1,2,3],[4,5,6]]) 接收具体数据 
      >>> a: tensor([[1., 2., 3.],
             		   [4., 5., 6.]])
      
      >>> a = torch.from_numpy(np_data)  ## 数据维持不变,类型一一对应
      
      >>> a = torch.full([2,3],7)  ## 全部填充为一样的值
      >>> a: tensor([[7, 7, 7],
                     [7, 7, 7]])
      

  • B站视频参考资料

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

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

相关文章

iOS ------ 对象的本质

一,OC对象本质,用clang编译main.m OC对象结构都是通过基础的C/C结构体实现的,我们通过创建OC文件及对象,将OC对象转化为C文件来探寻OC对象的本质。 代码: interface HTPerson : NSObject property(nonatomic,strong)…

什么是SOLIDWORKS科研版

随着科技的不断进步,工程设计和科学研究变得越来越复杂,需要更强大的工具来满足需求。SOLIDWORKS科研版就是在这样的背景下诞生的,它为科研人员和工程师提供了一套全方面、快捷的解决方案,以应对各种科研和工程挑战。 SOLIDWORKS科…

Surface安装Windows和Ubuntu双系统方法(包括Ubuntu适配触控屏的方法)

这是一个目录0.0 前言让我们从一块砖头开始现在你有了能进入windows系统的surface并且想安装Ubuntu现在Ubuntu也有了再见 前言 之前我的Surface装上Ubuntu了好好的,能用,但是Ubuntu原本的内核是不支持很多Surface的功能的,比如触控屏&#xf…

串口调试助手软件(ATK-XCOM) 版本:v2.0

串口设置 软件启动后,会自动搜索可用的串口,可以显示详细的串口信息,由于兼容性原因某些电脑可能不会显示。 超高波特率接收,在硬件设别支持的情况下,可自定义波特率,点“自定义”即可输入您想要的波特率&…

macOS 15 beta (24A5264n) Boot ISO 原版可引导镜像下载

macOS 15 beta (24A5264n) Boot ISO 原版可引导镜像下载 iPhone 镜像、Safari 浏览器重大更新、备受瞩目的游戏和 Apple Intelligence 等众多全新功能令 Mac 使用体验再升级 请访问原文链接:https://sysin.org/blog/macOS-Sequoia-boot-iso/,查看最新版…

PR基础常识

Pr主要就是用来做视频后期剪辑的。是一款非线性视频剪辑软件。它可以将原有视频作为素材,导入到软件的时间线轨道面板中,对视频进行重新剪辑编排,并可以添加文字、图片、音频等素材文件,也能预设各种效果,让剪辑的视频…

外卖抢单神器

在现代快节奏的生活中,外卖服务已成为许多人日常生活的一部分,给外卖行业带来前所未有的机遇和挑战。随着市场竞争的加剧,许多外卖员开始寻求方法以提升接单效率。但在此过程中,道德和合规性是业务持续性的关键。 正直的经营不仅…

Apple Intelligence 带来的十大影响:人工智能的iPhone时刻到来

引言 在最近的WWDC大会上,Apple发布了全新的Apple Intelligence,引起了全球的广泛关注。这次发布被誉为“人工智能的iPhone时刻”,标志着我们每个人都将拥有第一个AI助理,并将引领AI Agent进入红海时代。本文将详细分析Apple Int…

Jetpack Compose Navigation 遇上类型安全

Jetpack Compose Navigation 遇上类型安全 引言 随着 Navigation 2.8.0-alpha08 版本的发布,Navigation 组件引入了基于 Kotlin Serialization 的完整类型安全系统,用于在使用 Kotlin DSL 时定义导航图。这一新特性旨在与 Navigation Compose 等集成最…

1.Anaconda-创建虚拟环境的手把手教程

文章目录 介绍(必看)正文版本信息模块安装流程1.创建虚拟环境2.激活环境3.退出虚拟环境4.安装python(激活虚拟环境)5.安装tensorflow(激活虚拟环境)6.安装matplotlib7.protobuf版本太高会有问题(激活虚拟环境) 常用的指令(一定会用到&#xf…

【CSAPP导读】导论

目录 🌈 前言🌈 📁 书籍介绍 📁 阅读路线 📁 总结 🌈 前言🌈 《深入理解计算机系统》书籍是由布赖恩特(Bryant,R.E.)著的一本经典计算机科学教材,常被简称为"CSAPP"&a…

找不到msvcr110.dll怎么办,msvcr110.dll丢失的7个不同能修复的解决方法

msvcr110.dll是一个动态链接库(DLL)文件,由Microsoft Corporation开发,是Visual C Redistributable for Visual Studio 2012的一部分。这个文件包含了运行时库函数,这些函数对于基于Visual C 2012编译的应用程序来说是…

linux笔记8--安装软件

文章目录 1. PMS和软件安装的介绍2. 安装、更新、卸载安装更新ubuntu20.04更新镜像源: 卸载 3. 其他发行版4. 安装第三方软件5. 推荐 1. PMS和软件安装的介绍 PMS(package management system的简称):包管理系统 作用:方便用户进行软件安装(也…

✔️Vue基础++

✔️Vue基础 组件通信 什么是组件通信? 组件通信就是指 组件与组件 之间的 数据传递 组件的数据是独立的,无法直接访问其他组件的数据想使用其他组件的数据,就需要组件通信 组件之间如何通信? 组件关系 父子关系非父子关系 …

leetcode -- 114.二叉树展开为链表

https://leetcode.cn/problems/flatten-binary-tree-to-linked-list/ 题目中要求把链表展开为单链表,并且展开后的链表要跟二叉树的前序遍历顺序相同。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* …

adb shell pm path packageName

在Android命令行中,如果你想要查询某个应用程序的安装位置,可以使用pm命令(Package Manager的缩写)。这个命令提供了很多关于软件包管理的操作,查询应用安装路径,可以使用path选项。 具体命令如下&#xf…

unity 简易异步socket

1.unity 同步socket 改异步 using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Net.Sockets; using UnityEngine.UI; using System.Threading; using System;public class Echo : MonoBehaviour {//定义套接字Socket socket;//UG…

基于STM32开发的智能温室控制系统

目录 引言环境准备智能温室控制系统基础代码实现:实现智能温室控制系统 4.1 温湿度传感器数据读取4.2 风扇与加热器控制4.3 灌溉系统控制4.4 用户界面与数据可视化应用场景:温室环境管理与优化问题解决方案与优化收尾与总结 1. 引言 随着农业技术的发…

插入删除单链表指定结点-偷天换日法

王道说下面的代码有BUG,比如当删除的结点p在最后一个元素时,p->nextNULL; So *q NULL; q->data就是错误的,我认为加个判断就行 加个判断即可 /*看着是删除q了,从结果上看就是把p删除了 偷天换日法*/ bool DeleteNode(LNod…

如何用Vue3打造一个酷炫的音乐播放器

本文由ScriptEcho平台提供技术支持 项目地址:传送门 Spotify音乐卡片组件 应用场景 本代码用于构建一个类似于Spotify音乐播放器中的音乐卡片组件,可展示歌曲信息、控制播放、调节音量等功能。 基本功能 该音乐卡片组件主要包含以下功能&#xff1…