python学习11-Pytorch张量与数据处理1

ndarray

首先,我们介绍n维数组,也称为张量(tensor)
使用过Python中NumPy计算包的读者会对本部分很熟悉。
无论使用哪个深度学习框架,它的张量类(在MXNet中为ndarray,
在PyTorch和TensorFlow中为Tensor)都与Numpy的ndarray类似。
但深度学习框架又比Numpy的ndarray多一些重要功能:
首先,GPU很好地支持加速计算,而NumPy仅支持CPU计算;
其次,张量类支持自动微分。
这些功能使得张量类更适合深度学习。

(首先,我们导入torch。请注意,虽然它被称为PyTorch,但是代码中使用torch而不是pytorch。)

import torch

[ 张量表示一个由数值组成的数组,这个数组可能有多个维度]。
具有一个轴的张量对应数学上的向量(vector);
具有两个轴的张量对应数学上的矩阵(matrix);
具有两个轴以上的张量没有特殊的数学名称。

首先,我们可以使用 arange 创建一个行向量 x。这个行向量包含以0开始的前12个整数,它们默认创建为整数。也可指定创建类型为浮点数。张量中的每个值都称为张量的 元素(element)。例如,张量 x 中有 12 个元素。除非额外指定,新的张量将存储在内存中,并采用基于CPU的计算。

x = torch.arange(12)
x
#  tensor([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])

可以通过张量的shape属性来访问张量(沿每个轴的长度)的形状

x.shape
# 12

要想改变一个张量的形状而不改变元素数量和元素值,可以调用reshape函数。
例如,可以把张量x从形状为(12,)的行向量转换为形状为(3,4)的矩阵。
这个新的张量包含与转换前相同的值,但是它被看成一个3行4列的矩阵。
要重点说明一下,虽然张量的形状发生了改变,但其元素值并没有变。
注意,通过改变张量的形状,张量的大小不会改变。

X = x.reshape(3, 4)
X
"""
tensor([[ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  9, 10, 11]])
"""

我们不需要通过手动指定每个维度来改变形状。
也就是说,如果我们的目标形状是(高度,宽度),
那么在知道宽度后,高度会被自动计算得出,不必我们自己做除法。
在上面的例子中,为了获得一个3行的矩阵,我们手动指定了它有3行和4列。
幸运的是,我们可以通过-1来调用此自动计算出维度的功能。
即我们可以用x.reshape(-1,4)或x.reshape(3,-1)来取代x.reshape(3,4)。

有时,我们希望[使用全0、全1、其他常量,或者从特定分布中随机采样的数字来初始化矩阵。
我们可以创建一个形状为(2,3,4)的张量,其中所有元素都设置为0。代码如下:

torch.zeros((2, 3, 4))
"""tensor([[[0., 0., 0., 0.],[0., 0., 0., 0.],[0., 0., 0., 0.]],[[0., 0., 0., 0.],[0., 0., 0., 0.],[0., 0., 0., 0.]]])
"""

同样,我们可以创建一个形状为(2,3,4)的张量,其中所有元素都设置为1。代码如下:

torch.ones((2, 3, 4))
"""
tensor([[[1., 1., 1., 1.],[1., 1., 1., 1.],[1., 1., 1., 1.]],[[1., 1., 1., 1.],[1., 1., 1., 1.],[1., 1., 1., 1.]]])
"""

有时我们想通过从某个特定的概率分布中随机采样来得到张量中每个元素的值。
例如,当我们构造数组来作为神经网络中的参数时,我们通常会随机初始化参数的值。
以下代码创建一个形状为(3,4)的张量。
其中的每个元素都从均值为0、标准差为1的标准高斯分布(正态分布)中随机采样。

torch.randn(3, 4)
"""tensor([[ 0.7277, -1.3848, -0.2607,  0.9701],[-2.3290, -0.3754,  0.2457,  0.0760],[-1.2832, -0.3600, -0.3321,  0.8184]])
"""

我们还可以[通过提供包含数值的Python列表(或嵌套列表),来为所需张量中的每个元素赋予确定值]。
在这里,最外层的列表对应于轴0,内层的列表对应于轴1。

torch.tensor([[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])
"""tensor([[2, 1, 4, 3],[1, 2, 3, 4],[4, 3, 2, 1]])
"""

超详细 LaTex数学公式

LaTex表达式是一种简单的、常见的一种数学公式表达形式,在很多地方都有出现,相信正在看博客的你会深有体会,LaTex表达式不难,甚至说很简单,但是对于没有没有接触过得小伙伴来说,会非常费脑,复杂的表达式到底该如何书写呢?

LaTex表达式一般分为两类:

一类是嵌入到文章中间的: log ⁡ 21 x y \log_{21} {xy} log21xy

另一类是单独成行的表达式:
log ⁡ 21 x y \log_{21} {xy} log21xy

所有的LaTex的书写形式都是在 $$...$$ 之中,只不过对于嵌入在文章中间而言 是单对的$...$,而单独成行的LaTex表达式是双对的 $$...$$

公式加粗、更改颜色、添加序号

对公式加粗需要用 \bm{ …… }加之包含其中即可

$\bm{ .... }$

更改公式字母颜色:
如果只更改个别字母,那个后面的需要用黑色再改下

\color{red}\color{green}\color{back}\color{green}。。。。。\color{back}。。。。

给公式添加序号:在公式最后添加 \tag{…}

$$ ... \tag1$$
$$ ... \tag{1.1}$$        # 多位序号记得用{}扩起来

1、希腊字母
书写表达式,少不了使用希腊字母,但是LaTex 的希腊字母是什么呢?
在这里插入图片描述
在这里插入图片描述
2、运算符 & 空格
普通字符在数学公式中含义一样,除了 # $$ % & ~ _ ^ \ { } 若要在数学环境中表示这些符号# $$ % & _ { },需要分别表示为# $ % & _ { },即在个字符前加上\ 。

在这里插入图片描述
3、上下标
对于上标使用 下划线表示“ _ ” ;对于上标使用 “ ^ ”表示。比如

$x_i^2$

的LaTex表达式为 $$x_i^2$$

LaTex表达式中的上下标可以叠加的,就比如

 ${x^y}^z$ 

的LaTex表达式为 x y z {x^y}^z xyz 或者 x y z x^{y^z} xyz

在此需要注意的是:LaTex表达式默认的是 “ _ ” “ ^ ” 之后的一位才是上下标的内容,对于超过一个字母的上下标需要使用 { } 将它括起来,比如

$x_{2i}^{2+b}$

的LaTex表达式为 x 2 i 2 + b x_{2i}^{2+b} x2i2+b
在这里插入图片描述
4、log
log ⁡ \loglog的表达式会稍微简单点, log ⁡ \log log 就是它的LaTex表达式,同样的对于需要下标的同样使用下划线表示 “ _ ” , 对于多个字符组成的需要添加 { } 将其包括。

在这里插入图片描述
5、括号
LaTex表达式中的 ( ) 、 [ ] 均可以正常使用,但是对于 { } 需要使用转义字符使用,即使用 “{” 和 “}” 表示 { }

在这里插入图片描述

f(x)=\begin{cases} x = \cos(t) \\y = \sin(t) \\ z = \frac xy \end{cases}

f ( x ) = { x = cos ⁡ ( t ) y = sin ⁡ ( t ) z = x y f(x)=\begin{cases} x = \cos(t) \\y = \sin(t) \\ z = \frac xy \end{cases} f(x)= x=cos(t)y=sin(t)z=yx

f(x)=\begin{cases} 0& \text{x=0}\\1& \text{x!=0} \end{cases}

对于个别符号,如 ()、[]等,如果想要变大,可以在 这些符号前面添加即可

\Biggl   \biggl   \Bigl   \bigl   左符号
\Biggr   \biggr   \Bigr   \bigr   右符号

6、矩阵
0 1 1 0 \begin{matrix} 0 & 1 \\ 1 & 0 \end{matrix} 0110

\begin{matrix} 0 & 1 \\ 1 & 0 \end{matrix}

$$\begin{pmatrix} 0 & -i \ i & 0 \end{pmatrix}\$$

\begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix}\\

[ 0 − 1 1 0 ] \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} [0110]

\begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}

{ 1 0 0 − 1 } \begin{Bmatrix} 1 & 0 \\ 0 & -1 \end{Bmatrix} {1001}

\begin{Bmatrix} 1 & 0 \\ 0 & -1 \end{Bmatrix}

∣ a b c d ∣ \begin{vmatrix} a & b \\ c & d \end{vmatrix} acbd

\begin{vmatrix} a & b \\ c & d \end{vmatrix}

7、求和与积分

在这里插入图片描述
8、开方
在这里插入图片描述
9、分数

在这里插入图片描述
10、特殊函数
在这里插入图片描述
11、导数、极限、积分
在这里插入图片描述
12、积分
积分中,需要注意的是,在多重积分内 dx 和 dy 之间 使用一个斜杠加一个逗号 , 来增大稍许间距。同样,在两个积分号之间使用一个斜杠加一个感叹号 ! 来减小稍许间距。使之更美观。

\int_a^b f(x) dx 

∫ a b f ( x ) d x \int_a^b f(x) dx abf(x)dx

\int_0^{+\infty} x^n e^{-x} dx = n! 

∫ 0 + ∞ x n e − x d x = n ! \int_0^{+\infty} x^n e^{-x} dx = n! 0+xnexdx=n!

\int_{x^2 + y^2 \leq R^2}   f(x,y) dx dy = 
\int_{\theta=0}^{2\pi}    \int_{r=0}^R    f(r\cos\theta,r\sin\theta) r dr d\theta

∫ x 2 + y 2 ≤ R 2 f ( x , y ) d x d y = ∫ θ = 0 2 π ∫ r = 0 R f ( r cos ⁡ θ , r sin ⁡ θ ) r d r d θ \int_{x^2 + y^2 \leq R^2} f(x,y) dx dy = \int_{\theta=0}^{2\pi} \int_{r=0}^R f(r\cos\theta,r\sin\theta) r dr d\theta x2+y2R2f(x,y)dxdy=θ=02πr=0Rf(rcosθ,rsinθ)rdrdθ

13、字体

在这里插入图片描述

pythorch实现手写数字识别模型

pip install torchvision

#导入torchvision,用于处理图像和视频,转换成张量
from torchvision.transforms import ToTensor
import torchvision
import torch
import torch.nn as nn# 加载数据集pytorch本身提供了经典的手写数据集
#加载训练集
train_ds = torchvision.datasets.MNIST('data/',#指定加载训练集train=True,#将图像、numpy转换成pytorch张量transform=ToTensor(),download=True
)#加载测试的数据集
test_ds = torchvision.datasets.MNIST('data/',#指定加载训练集train=False,#将图像、numpy转换成pytorch张量transform=ToTensor(),download=True
)#指定训练数据加载器
train_dl = torch.utils.data.DataLoader(train_ds,batch_size=64,#提高模型的泛华能力shuffle=True
)test_dl = torch.utils.data.DataLoader(test_ds,batch_size=256,#提高模型的泛华能力shuffle=True
)imgs,labels = next(iter(train_dl))img = imgs[0]import matplotlib.pyplot as plt
plt.imshow(img)

在这里插入图片描述

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

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

相关文章

华为eNSP:NAT Server(端口映射)

一、拓扑图 二、配置过程 此处省略设备地址以及路由配置过程 1、服务器开启ftp服务 2、路由器配置nat server [r4]int g0/0/2#进入流量出接口 [r4-GigabitEthernet0/0/2]nat server protocol tcp global 192.168.3.11 ftp inside 192.168.2.1 ftp# …

SnapGene 5.3.1下载安装教程百度网盘分享链接地址

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 SnapGene介绍 SnapGene 5.3.1下载安装教程百度网盘分享链接地址,SnapGene 是一款由美国公司开发(后被收购)的分子生物学软件,…

基于YOLO8的图片实例分割系统

文章目录 在线体验快速开始一、项目介绍篇1.1 YOLO81.2 ultralytics1.3 模块介绍1.3.1 scan_task1.3.2 scan_taskflow.py1.3.3 segment_app.py 二、核心代码介绍篇2.1 segment_app.py2.2 scan_taskflow.py 三、结语 代码资源:计算机视觉领域YOLO8技术的图片实例分割…

Java中Json、String、jsonObject、jsonArray格式之间的互相转换 (Fastjson、Gson、String字符串分隔)

1.org中jackson转换json,springboot中内置jackson ObjectMapper onew ObjectMapper();List<>listnew ArrayList();String jonso.writeAsValueString(list); 一、Fastion 使用阿里的fastjson <dependency><groupId>com.alibaba</groupId><artifactId…

使用 JAXB 将内嵌的JAVA对象转换为 xml文件

使用 JAXB 将内嵌的JAVA对象转换为 xml文件 1. 需求2. 实现&#xff08;1&#xff09;FileDesc类&#xff08;2&#xff09;MetaFileXml类&#xff08;3&#xff09;生成对应的xml文件 1. 需求 获取一个目录下所有文件的元数据信息&#xff08;文件名、大小、后缀等&#xff0…

1.2CubeMAX创建FREERTOS入门示例

1.CUBEMAX快速配置 V2改为V1否则编译会报错 2.Freertos各配置选项卡解释 Events &#xff1a;事件相关的创建 Task and Queues &#xff1a; 任务与队列的创建 Timers and Semaphores &#xff1a; 定时器和信号量的创建 Mutexes &#xff1a; 互斥量的创建 FreeRTOS Heap…

临床基础两手抓!这个12+神经网络模型太贪了,免疫治疗预测、通路重要性、基因重要性、通路交互作用性全部拿下!

生信碱移 IRnet介绍 用于预测病人免疫治疗反应类型的生物过程嵌入神经网络&#xff0c;提供通路、通路交互、基因重要性的多重可解释性评估。 临床实践中常常遇到许多复杂的问题&#xff0c;常见的两种是&#xff1a; 二分类或多分类&#xff1a;预测患者对治疗有无耐受(二分类…

如何在3DMAX中实现大规模项目的地形建模?

在房地产开发项目的环境建模过程中&#xff0c;我们对斜坡和不平坦地形进行建模是一项具有挑战性的任务。 我们已经制定了两种方法来纠正这一点。首先&#xff0c;让我告诉你&#xff0c;我们并没有想过如何使用NURBS来实现这一点&#xff0c;我们通常坚持使用多边形&#xff…

英语每日一段 195

Promising economic indicators won’t instantly reverse the lingering impact of hard times for millions of families, workplace culture expert Jessica Kriegel said. “Perception and reality are sometimes aligned and sometimes not,” Kriegel told Newsweek. “…

2024 数学建模高教社杯 国赛(A题)| “板凳龙”舞龙队 | 建模秘籍文章代码思路大全

铛铛&#xff01;小秘籍来咯&#xff01; 小秘籍团队独辟蹊径&#xff0c;运用等距螺线&#xff0c;多目标规划等强大工具&#xff0c;构建了这一题的详细解答哦&#xff01; 为大家量身打造创新解决方案。小秘籍团队&#xff0c;始终引领着建模问题求解的风潮。 抓紧小秘籍&am…

Java JVM 垃圾回收算法详解

Java 虚拟机&#xff08;JVM&#xff09;是运行 Java 应用程序的核心&#xff0c;它的垃圾回收&#xff08;Garbage Collection, GC&#xff09;机制是 JVM 中非常重要的一个部分。垃圾回收的主要任务是自动管理内存&#xff0c;回收那些不再被使用的对象&#xff0c;从而释放内…

【A题完整论文已出】2024数模国赛A题完整论文+可运行代码参考(无偿分享)

​​​​​​​ A 题 “板凳龙” 闹元宵 摘要&#xff1a; 随着城市节庆活动和传统文化展示的多样化发展&#xff0c;舞龙队的路径规划与速度控制问题成为传统活动表演中的重要研究课题。本文针对舞龙队在节庆活动中的路径优化、调头设计和行进速度控制问题&#xff0c;基…

2024年【金属非金属矿山(露天矿山)安全管理人员】考试题及金属非金属矿山(露天矿山)安全管理人员最新解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 金属非金属矿山&#xff08;露天矿山&#xff09;安全管理人员考试题参考答案及金属非金属矿山&#xff08;露天矿山&#xff09;安全管理人员考试试题解析是安全生产模拟考试一点通题库老师及金属非金属矿山&#xf…

SQL 数据查询

文章目录 3.4.1 单表查询定义特点单表无条件查询单表带条件查询对查询结果进行排序限制查询结果数量 3.4.2 分组查询定义特点&#xff1a;聚集函数GROUP BY短语HAVING子句分组查询小结 3.4.3 连接查询定义特点&#xff1a;等值连接与非等值连接查询自然连接&#xff08;内连接&…

SQL的高级查询练习知识点(day24)

目录 1 学习目标 2 基础查询 2.1 语法 2.2 例子 3 条件查询 3.1 含义 3.2 语法 3.3 条件表达式 3.3.1 条件运算符 3.3.2 例子 3.4 逻辑表达式 3.4.1 逻辑运算符 3.4.2 例子 3.5 模糊查询 3.5.1 概述 3.5.2 例子 4 DISTINCT关键字 4.1 含义 4.2 例子 5 总结…

2024 年高教社杯全国大学生数学建模竞赛B题第二问详细解题思路(终版)

示例代码&#xff1a; import numpy as np import pandas as pd# 参数设定 params {p1: 0.10, p2: 0.10, c1: 4, c2: 2, d1: 2, d2: 3,pf: 0.10, a: 6, df: 3, s: 56, l: 6, r: 5 }# 决策变量 decisions [0, 1]# 利润计算函数 def calculate_profit(D1, D2, C, R, params):c…

Spring-@Bean的处理流程

Bean前置知识 1 需要再Configuration Class中才能被解析 2 静态Bean也就是标注在static方法上的 实例Bean标注在普通方法上的 所有的Bean在创建之前都会变成BeanDefinition,其中有这样两个属性&#xff1a; setFactoryMethodName&#xff1a;静态方法 setFactoryBeanName&…

Hive SQL基础语法及查询实践

目录 基础语法 1. 官网地址 2. 查询语句语法 基本查询&#xff08;Select…From&#xff09; 数据准备 &#xff08;0&#xff09;原始数据 &#xff08;1&#xff09;创建部门表 &#xff08;2&#xff09;创建员工表 &#xff08;3&#xff09;导入数据 全表和特定列查…

2024年四川省安全员B证证考试题库及四川省安全员B证试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年四川省安全员B证证考试题库及四川省安全员B证试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人员上岗证考试大…

使用 EMQX 开源版的 Webhook 机制处理消息并存储数据

1、前言 EMQX 是一款强大的开源 MQTT 消息代理&#xff0c;它支持大量的连接和高吞吐量&#xff0c;适用于各种物联网应用。Webhook 是 EMQX 提供的扩展功能之一&#xff0c;用于将消息推送到外部的 HTTP 服务。在本文中&#xff0c;我们将介绍如何使用 EMQX 开源版的 Webhook …