超简单!pytorch入门教程:Tensor
超简单!pytorch入门教程:Tensor
一、pytorch安装
安装pytorch之前,需要安装好python(废话),还没安装过python的宝宝请先移步到廖雪峰的python教程,待安装熟悉完之后,再过来这边。
我们接着讲。
打开pytorch官网http://pytorch.org,找到下图所示位置

如图所示,选择好系统,包管理工具,python的版本,是否支持CUDA(Zen君的配置是OSX,包管理工具是pip,版本2.7,不支持CUDA,哭)
选择好相应的配置,然后就可以复制下面“Run this command”的代码,直接打开命令台粘贴运行,即完成pytorch的安装。
二、pytorch的基石–Tensor张量
要介绍Tensor这个数据类型,我觉得有必要扯一下数学。
我们都知道:
标量(Scalar)是只有大小,没有方向的量,如1,2,3等
向量(Vector)是有大小和方向的量,其实就是一串数字,如(1,2)
矩阵(Matrix)是好几个向量拍成一排合并而成的一堆数字,如[1,2;3,4]

如图,我们可以看出,矩阵是二维的,向量是一维的,标量是零维的。
那么张量(Tensor)是什么呢?呵呵呵呵!大家估计也能猜出来!是按照三维排列的一堆数字?
是的。但是也不完全正确。
其实标量,向量,矩阵它们三个也是张量,标量是零维的张量,向量是一维的张量,矩阵是二维的张量。

张量就是按照任意维排列的一堆数字的推广。如图所示,矩阵不过是三维张量下的一个二维切面。要找到三维张量下的一个标量,需要三个维度的坐标来定位。
除此之外,张量还可以是四维的、五维的、。。。等等
数学扯完了,我们撸串代码操练操练 (*ˉ︶ˉ*)
import torch #引用torch包
x = torch.Tensor(2,3) #构造一个2x3的矩阵,没初始化但仍然会有值
x
8.0118e+28 4.5768e-41 8.0118e+28
4.5768e-41 2.9747e-37 1.4013e-45
[torch.FloatTensor of size 2x3] #可以看出数据类型是浮点数的2x3矩阵
看矩阵看不出张量的道道,我们来点刺激的
y=torch.Tensor(4,2,3) #构造一个4x2x3的张量,没初始化
y
(0 ,.,.) =
1.00000e-29 *
0.0000 2.5244 0.0000
2.5244 0.0000 0.0000
(1 ,.,.) =
1.00000e-29 *
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
(2 ,.,.) =
1.00000e-29 *
0.0000 0.0000 0.0000
0.0000 0.0000 0.0000
(3 ,.,.) =
1.00000e-29 *
0.0000 0.0000 0.0000
2.5244 0.0000 2.5244
[torch.FloatTensor of size 4x2x3]
我们从上面的返回值可以看出,4x2x3的张量y由4个2x3的矩阵构成,这符合了我们数学上的定义。
Tensor的加法(四种)
我们先初始化两个张量:

rand()用随机数初始化5x3的矩阵
第一种:
a+b
第二种:
torch.add(a,b)
第三种:
result = torch.Tensor(5,3)
torch.add(a,b,out=result) #把运算结果存储在result上
第四种:
b.add_(a) #把运算结果覆盖掉b
Tensor的部分截取

利用b[:,1]来截取第2列的所有元素(计算机是从0开始数,所以1是第2列)
Tensor的其他操作
除了加法以外,还有上百种张量的操作,比如说转置(transposing),切片(slicing)等,送个链接给少侠,少侠自己在家慢慢操练了🏇。
Tensor与numpy的Array的相互转换
torch的tensor可以与numpy的array进行转换
1.tensor⇒array
b = a.numpy() #a为tensor

如图所示,b和a是共用一块内存,所以当a发生变化时,b也会发生变化。
2.array⇒tensor
b = torch.from_numpy(a) #a为numpy的array

如图所示,a和b一样是共用一块内存。
CUDA的神助攻
假如少侠你有一块nvidia的显卡并支持cuda(如GTX 1080),那么恭喜你,你可以使用显卡gpu进行tensor的运算。假如你像Zen君一样没有,考虑买一个吧。。。购买指南:为你的深度学习任务挑选最合适GPU:从性能到价格的全方位指南
torch.cuda.is_available() #看看是否支持cuda
假如返回的是True那么,下面的代码将带你飞。
x = x.cuda()
y = y.cuda()
x+y #这里的x和y都是tensor,使用cuda函数以后,x和y的所有运算均会调用gpu来运算。
相关文章:
超简单!pytorch入门教程:Tensor
超简单!pytorch入门教程:Tensor 一、pytorch安装 安装pytorch之前,需要安装好python(废话),还没安装过python的宝宝请先移步到廖雪峰的python教程,待安装熟悉完之后,再过来这边。 …...
如何使用COCO数据集,注意事项
COCO数据集可用来训练目标检测,分类,实例分割等。 下面简单说下如何使用这个数据集, 数据集下载可用如下的代码进行,以2017为例。 # Download the image data. cd ./images echo "Downloading MSCOCO train images ...&quo…...
金三银四跳槽季,JAVA面试撸题就来【笑小枫】微信小程序吧~
JAVA面试撸题就来【笑小枫】微信小程序啦~ 疫情已过,金三银四即将到来,小伙伴们是否有跳槽的打算呢?不管有没有,技术不能丢,让我们一起来撸题吧。 博主最近整理了一批面试题,包括JAVA基础、多线程与锁、Red…...
分享115个HTML电子商务模板,总有一款适合您
分享115个HTML电子商务模板,总有一款适合您 115个HTML电子商务模板下载链接:https://pan.baidu.com/s/158y3jP0tv7ZikxNOBMKsSg?pwdt970 提取码:t970 Python采集代码下载链接:采集代码.zip - 蓝奏云 import os import shuti…...
Python 字符串
字符串是 Python 中最常用的数据类型。我们可以使用引号 ( 或 " ) 来创建字符串。创建字符串很简单,只要为变量分配一个值即可。例如:var1 Hello World!var2 "Python Runoob"Python 访问字符串中的值Python 不支持单字符类型ÿ…...
总线定义,车载总线:车载etherNet or CAN
总线的定义总线是连接多个设备或者接入点的数据传输通路。这里面的关键词是多个设备或者接入点,所以不要过于局限的看待总线。根据互联的设备/接入点不同,传输的数据带宽,速率,距离不同和应用场景的不同都可能有不同的总线。不同的…...
Python(for和while)循环嵌套及用法
Python 不仅支持 if 语句相互嵌套,while 和 for 循环结构也支持嵌套。 所谓嵌套(Nest),就是一条语句里面还有另一条语句,例如 for 里面还有 for,while 里面还有 while,甚至 while 中有 for 或者…...
6万字电力行业系统解决方案光伏电站综合安防系统解决方案
【版权声明】本资料来源网络,知识分享,仅供个人学习,请勿商用。【侵删致歉】如有侵权请联系小编,将在收到信息后第一时间删除!完整资料领取见文末,部分资料内容: 目录 第 一 章背景与需求 1.1行…...
[Android Studio]Android 数据存储--SQLite数据库存储
🟧🟨🟩🟦🟪 Android Debug🟧🟨🟩🟦🟪 Topic 发布安卓学习过程中遇到问题解决过程,希望我的解决方案可以对小伙伴们有帮助。 📋笔记目…...
学校节能降耗减排方案——能耗监管平台的建设及效果剖析
摘要:作为崭新的校园能耗管理手段,能耗监测平台以传统管理方式无法企及的优势有力地提升了高校能源管理工作的水平.从而受到了相关管理者的青睐。本文梳理总结了高校能耗监测平台的基本组成和优势特点,同时对能耗平台建设和使用中…...
探索IP地址的应用
无论是互联网行业还是传统行业都会用到网络,作为企业如何维护网络安全,保障网站不被攻击,数据不被泄露等。这个时候我们就会通查询IP归属地,辅助企业解决安全问题。下面介绍一下ip归属地在各行业的具体应用。1.网安行业应用一&…...
点赞破万!阿里面试官总结的2022最新1685页Java面试宝典太全了
程序员入职企业的难度也在持续加大,如何顺利通过面试成为了大家所关心的话题。针对这些人群的需求,小编从阿里找来一份让大家在求职过程中旗开得胜!是从什么时候开始准备的?大概的我已经记不清了,可能是 4 月份左右开始…...
项目搭建规范
一. 代码规范 1.1. 集成editorconfig配置 EditorConfig 有助于为不同 IDE 编辑器上处理同一项目的多个开发人员维护一致的编码风格。 # http://editorconfig.org root true [*] # 表示所有文件适用 charset utf-8 # 设置文件字符集为 utf-8 indent_style space # 缩进…...
8.Docker Machine
Docker Machine Docker Machine是Docker官方编排(Orchestration)项目之一,负责在多种平台上快速安装 Docker 环境。 Docker Machine项目基于Go语言实现,目前在Github上进行维护。 Docker Machine是 Docker 官方提供的一个工具&…...
如何配合使用ESLINT 和 PRETTIER
各自的作用 eslint:静态分析语法错误prettier:代码格式化工具(需要在IDE中安装prettier的插件) 使用方法: 安装 npm install eslint --save-dev // 创建 .eslintrc.json 文件 npx eslint --init npm install eslint-…...
学英语的优势已来,抓住这个机会
文 / 冰雪(微信公众号:王不留) ChatGPT大火,国外的商业价值还没找到,咱们这边已经开始变现了。谷雨小姐姐昨天在”一起学英语”微信群发了一张“收割韭菜”的文案截图。 299入社群,服务内容为:免…...
基于微信小程序云开发实现考研题库小程序项目(完整版)
今天手把手的带大家实现一款答题类的题库小程序,如果着急的话,可以直接去看文末源码.下载与项目部署。考研题库小程序云开发实战,完整版提供给大家学习。题库小程序,基于云开发的微信答题小程序,软件架构是微信原生小程…...
AI一点通:使用 ColumnTransformer 转换 Pandas DataFrame 的一个或多个列
在处理表格数据时,常常需要对一个或多个列进行转换以使它们更适合于分析或建模。在许多情况下,可以使用 Pandas 库轻松完成这些转换。然而,在处理大型数据集或构建机器学习管道时,使用 scikit-learn 的 ColumnTransformer 类来将转…...
【C语言】全局变量、局部变量和静态变量的区别
目录一、变量(一)全局变量(二)局部变量(三)静态变量(1)静态全局变量(2)静态局部变量二、常量一、变量 1、变量定义 变量的名称可以由字母、数字和下划线字符…...
血氧仪「上潜」,智能穿戴「下沉」
文|智能相对论作者|沈浪缺货、涨价、一“仪”难求......过去短短的几周,血氧仪市场持续走热,受到前所未有的关注,像鱼跃医疗这样的业内巨头更是赚得盆满钵满,但同时也深陷“发国难财”的舆论泥潭,说来也是唏嘘。尽管目…...
Instagram数据提取完全指南:Toutatis实战揭秘与高效应用
Instagram数据提取完全指南:Toutatis实战揭秘与高效应用 【免费下载链接】toutatis Toutatis is a tool that allows you to extract information from instagrams accounts such as e-mails, phone numbers and more 项目地址: https://gitcode.com/GitHub_Trend…...
Unity WASD移动控制优化:从基础实现到性能调优
1. WASD移动控制的基础实现 在Unity中实现WASD键盘控制角色移动是最基础的游戏开发技能之一。很多新手开发者可能会直接使用Input.GetKey这样的方法来检测按键状态,但这种方法在实际项目中往往会遇到性能问题。特别是在高配电脑上,游戏帧率可能达到上千帧…...
别再折腾网络了!实测用Docker拉取Autoware镜像的几种靠谱方法(附完整代理配置)
高效获取Autoware Docker镜像的实战指南 引言 在自动驾驶开发领域,Autoware作为开源的自动驾驶软件栈,已经成为众多研究者和工程师的首选工具。然而,对于国内开发者而言,获取Autoware的Docker镜像往往成为项目启动的第一道门槛。本…...
如何利用Metabase实现联邦学习驱动的智能数据分析:三步入门指南
如何利用Metabase实现联邦学习驱动的智能数据分析:三步入门指南 【免费下载链接】metabase metabase/metabase: 是一个开源的元数据管理和分析工具,它支持多种数据库,包括 PostgreSQL、 MySQL、 SQL Server 等。适合用于数据库元数据管理和分…...
ADC肺毒性评估新方法:人源肺泡体外模型的实验研究与分析【曼博生物官方代理Epithelix 人原代肺细胞】
一、问题提出:为什么ADC肺毒性难以预测? 抗体药物偶联物(ADC)近年来在肿瘤治疗中发展迅速,其通过“抗体毒素”的组合,实现精准杀伤肿瘤细胞。 但在实际临床应用中,一个关键问题逐渐凸显…...
SDMatte透明物体模式深度解析:为什么玻璃杯开启后边缘断裂明显减少?
SDMatte透明物体模式深度解析:为什么玻璃杯开启后边缘断裂明显减少? 1. 透明物体抠图的挑战 透明物体抠图一直是图像处理领域的难题。当我们尝试用传统方法抠取玻璃杯、薄纱这类半透明物体时,经常会遇到以下问题: 边缘断裂&…...
阿里Qwen3-4B-Instruct-2507新手部署指南:从镜像到网页推理全流程
阿里Qwen3-4B-Instruct-2507新手部署指南:从镜像到网页推理全流程 1. 模型简介与核心能力 1.1 模型概述 Qwen3-4B-Instruct-2507是阿里巴巴通义实验室最新推出的轻量级文本生成大模型,属于Qwen3系列中的指令微调版本。这个40亿参数的模型在保持较低硬…...
东方美学AI绘画神器:Asian Beauty Z-Image Turbo快速入门与参数设置详解
东方美学AI绘画神器:Asian Beauty Z-Image Turbo快速入门与参数设置详解 1. 工具概览与核心优势 Asian Beauty Z-Image Turbo是一款专为东方美学人像生成优化的本地AI绘画工具。它基于通义千问Tongyi-MAI Z-Image底座模型,通过注入Asian-beauty专用权重…...
XZ7004输出电流10mA-2400mA 输入电压4.5-40V
概述XZ7004 是一种带调光功能的低静态电流线性降压 LED 恒流驱动器,外接一个电阻和一个瓷片电容就可以构成一个完整的LED 恒流驱动电路,调节该接电阻可调节输出电流,输出电流范围 10mA~2400mA。XZ7004 内置过热保护功能,可有效保护…...
数据协作新范式:提升团队效率的Teable平台技术指南
数据协作新范式:提升团队效率的Teable平台技术指南 【免费下载链接】teable 项目地址: https://gitcode.com/GitHub_Trending/te/teable 在当今数据驱动的工作环境中,团队常常面临数据孤岛、协作低效和流程僵化的挑战。市场部的销售数据散落在多…...
