【深度学习】pytorch的基础操作
import torch
import numpy as np
# 1.1 根据已有的数据创建张量
def test01():
# 1.1 创建标量
data = torch.tensor(10)
print(data)
# 1.2 使用numpy数组来创建张量
data = np.random.randn(2,3)
data = torch.tensor(data)
print(data)
# 1.3使用list列表创建张量
data = [[10., 20., 30.], [40., 50., 60.]]
print(data)
test01()
# 2. 创建指定形状的张量
def test02():
# 2.1 创建一个2行3列的张量
data = torch.Tensor(2,3)
print(data)
# 2.2 可以创建指定值得张量
# 注意传递列表
data = torch.Tensor([2, 3])
print(data)
data = torch.Tensor([10])
print(data)
test02()
# 3.创建指定类型的张量
def tensor03():
# 前面创建的张量都是使用默认类型或者元素类型
# 创建一个 int32类型的张量
data = torch.IntTensor(2,3)
print(data)
torch.ShortTensor(2,3) # 表示创建的是int16张量
torch.LongTensor(2,3) # 表示创建int32张量
torch.FloatTensor(2,3) # 表示创建Float32张量
# 注意:如果创建指定类型的张量,但是传递的数据不匹配,会发生类型转换
data = torch.IntTensor([2.5, 3.5])
print(data)
tensor03()
## 创建线性和随机张量
1. torch.arange 和 torch.linspace 创建线性张量
2. torch.random int_seed 和 torch.random.manual_seed 随机种子设置
3. torch.randn 创建随机张量
import torch
# 1. 创建线性空间的张量
def test01():
# 1.在指定区间按照步长生成元素[start, end, step]
data = torch.arange(0,10,2)
print(data)
test01()
# 在指定区间按照元素个数生成
torch.linspace(0,11,10)
# 创建随机张量
torch.randn(2,3)
# 随机数种子设置
torch.random.initial_seed()
# 必须在同一段代码前提下,可以这样使用,能够浮现结果
torch.random.manual_seed(100)
torch.randn(2,3)
torch.randn(2,3)
## 创建01张量
torch.ones, torch.ones_like
torch.zeros, torch.zeros_like
torch.full, torch.full_like
a = torch.ones(3,2)
a
torch.zeros_like(a)
ccc = torch.full((2,3),5)
torch.full_like(ccc,10)
## 张量的指定类型转换
tensor.type(torch.DoubleTensor)
torch.double()
data = torch.full([2,3],10)
data
print(data.dtype)
## 类型转换
data = torch.full([2,3], 10)
data.dtype
data
# 转化后需要承接一下
data = data.type(torch.DoubleTensor)
data.dtype
# 使用具体类型的函数进行转换
data = torch.full([2,3],10)
data.dtype
# 这种方式更加便捷
data = data.double()
data.dtype
data.int(), data.short(), data.long(), data.float()
# int 32 int 16 int 64 float 32
### 张量的基本运算 add, sub, mul, div, neg等函数, 以及这些函数的带下划线的版本 add_ 、 sub_ 、 mul_ 、 div_ 、 neg_, 其中带下划线的版本为修改原数据
import numpy as np
data = torch.randint(0,10,[2,3])
data
# 1. 不修改原数据
new_data = data.add(10)
new_data
new_data = data.add(10)
new_data
data.add_(10)
# 其它函数
data.sub(100)
data.mul(100)
data.div(100)
data.neg()
### 阿达玛积运算
阿达玛积是指矩阵对应位置的元素相乘
data1 = torch.tensor([[1,2],[3,4]])
data2 = torch.tensor([[5,6],[7,8]])
data = torch.mul(data1, data2)
data
data = data1 * data2
data
### 点集运算
(m,n) * (n,p) = (m,p)
1.运算符用 @ 用于进行两矩阵的点乘运算
2. torch.mm 2维度 torch.bmm 3维度 torch.matmul 多维度
data1 = torch.tensor([[1,2],[3,4],[5,6]])
data2 = torch.tensor([[5,6],[7,8]])
# 第一种方法
data = data1 @ data2
data
data = torch.mm(data1,data2)
data
# 第三种方式
data = torch.matmul(data1, data2)
data
data1 = torch.randn(3,4,5)
data2 = torch.randn(3,5,8)
# b = batch
data = torch.bmm(data1, data2)
data
data1 = torch.randn(3,4,5)
data2 = torch.randn(3,5,8)
torch.matmul(data1,data2).shape
## 指定运算设备
Pytorch 默认会将张量创建在CPU控制的内存中.
1. 使用cuda方法
2. 直接将张量创建在指定设备上
3. 使用to方法
data = torch.tensor([10,20,30])
data,data.device
data = data.cuda()
data,data.device
data = data.cpu()
data,data.device
data = torch.tensor([10,20,30], device="cuda:0")
data.device
data = data.cpu()
data
## 张量的类型转换
张量和numpy的相互转换
data_tensor = torch.tensor([2,3,4])
data_tensor
data_numpy = data_tensor.numpy()
data_numpy
type(data_tensor), type(data_numpy)
注意此时data_tensor和data_numpy 共享内存, 修改其中一个,另外一个也会跟着改变,可以使用copy函数避免共享
data_numpy[0] = 100
data_numpy,data_tensor
data_tensor = torch.tensor([2,3,4])
data_numpy = data_tensor.numpy().copy()
data_numpy[0] = 222
data_numpy
data_tensor
### numpy 转换成张量
1. 使用 from_numpy 可以将ndarray数组转换为Tensor, 默认共享内存,使用copy函数避免共享
2. 使用torch.tensor可以将ndarray数组转换为Tensor. 默认不共享内存
data_numpy = np.array([2,3,4])
data_numpy
# 浅拷贝
data_tensor = torch.from_numpy(data_numpy)
data_tensor
data_tensor = torch.from_numpy(data_numpy.copy())
data_tensor
data_numpy[0] = 100
data_numpy, data_tensor
# 2. 使用torch.tensor 函数
data_numpy = np.array([2,3,4])
data_tensor = torch.tensor(data_numpy)
data_numpy,data_tensor
data_numpy[0] = 100
data_numpy,data_tensor
### 标量张量和数字的转换
对于只有一个元素的张量,使用item方法将该值从张量中提取出来
# 当张量只包含一个元素时,可以通过使用item函数提取出该值
data = torch.tensor([30.])
print(data.item(),data)
data = torch.tensor(30)
data,data.item()
t1 = torch.tensor(30)
t2 = torch.tensor([30])
t3 = torch.tensor([[30]])
print(t1, t2, t3, t1.shape, t2.shape, t3.shape)
# t1 是标量, t2 是一维张量, t2 是二维
## 注意:张量中只有一个元素,如果有多个元素的化,使用item函数可能就会报错
t4 = torch.tensor([30,40])
t4
t4[0].item()
t4.item()
相关文章:
【深度学习】pytorch的基础操作
import torch import numpy as np # 1.1 根据已有的数据创建张量 def test01(): # 1.1 创建标量 data torch.tensor(10) print(data) # 1.2 使用numpy数组来创建张量 data np.random.randn(2,3) data torch.tensor(data) print(data) # 1.3使用list…...
MWORKS--同元软控MWORKS介绍、安装与使用
MWORKS--同元软控MWORKS介绍、安装与使用1 同元软控介绍1.1 同元软控简介1.2 同元软控发展历史2 MWORKS介绍2.1 MWORKS简介2.2 MWORKS产品描述3 装备数字化3.1 发展3.2 内涵3.3 系统模型发展成为产品的一部分3.4 MWORKS系统模型数据管理3.4 MWORKS为装备数字化提供的套件4 下载…...
Python 解决dilb和face_recognition第三方包安装失败
目录 dilb和face_recognition第三方包安装失败 亲测有效的解决方法:whl安装方式 dilb和face_recognition第三方包安装失败 场景复现:因为需要用到dlibface_recognition,基于OpenCV做一些人脸识别的项目,在Pycharm中进行pip清华…...
Mac系统Mysql的8.0.22版本安装笔记和密码重置修改密码等问题方法
忘记密码官网教程地址:https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html 5.7数据库安装指南参考:https://jingyan.baidu.com/article/fa4125ac0e3c2928ac709204.html 初次安装8.0.22遇到许多坑,密码修改失败;…...
驱动 | Linux | NVMe 不完全总结
本文主要参考这里 1’ 2 的解析和 linux 源码 3。 此处推荐一个可以便捷查看 linux 源码的网站 bootlin 4。 更新:2022 / 02 / 11 驱动 | Linux | NVMe 不完全总结NVMe 的前世今生从系统角度看 NVMe 驱动NVMe CommandPCI 总线从架构角度看 NVMe 驱动NVMe 驱动的文件…...
一个测试人员,在现阶段的环境下如何在测试行业发展和自我价值。
前言周末和几个测试圈子里的大佬饭局上聊了一些职场和测试职业发展相关的话题,我将聊天的内容做了整理和阐述。。朋友圈有测试同学对这篇文章提了比较深刻的建议,下面是他的评价和建议:评价:据说是大佬饭桌总结,有两点…...
pwn手记录题2
fastbin_reverse_into_tcache(2.34) 本题所使用的libc版本为2.34;(最新版 libc2.34版本已经没有了所谓的hook函数,甚至exit_hook(实际为某个函数指针)也已经不能够使用;能够利用的手法已经很少了; 高版本glibc堆的几…...
CSS ~ 从入门到入坑。
CSS ~ 从入门到入坑。 文章目录CSS ~ 从入门到入坑。what。css 三种实现方式。选择器。id 选择器 > class 选择器 > 标签选择器。标签选择器。类选择器。id 选择器。层次选择器。后代选择器。子选择器。相邻兄弟选择器。通用选择器。结构伪类选择器。属性选择器。字体风格…...
成都哪家机构的Java培训比较好,求一个不坑的?
关于这个问题,相信你会得到很多条答案,以及很多家机构的自荐。既然如此,不如也了解一下老牌IT职业教育机构:有足够丰富的教学经验,丰富的教学产品资源以及成熟的就业保障体系,还有就是承担风险的能力。 很…...
《爆肝整理》保姆级系列教程python接口自动化(十二)--https请求(SSL)(详解)
简介 本来最新的requests库V2.13.0是支持https请求的,但是一般写脚本时候,我们会用抓包工具fiddler,这时候会 报:requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) 小编…...
离线数据仓库
1 数据仓库建模 1.1 建模工具 PowerDesigner/SQLYog/EZDML… 1.2 ODS层 (1)保持数据原貌不做任何修改,起到备份数据的作用。 (2)数据采用压缩,减少磁盘存储空间(例如:压缩采用LZO&…...
【前端】Vue项目:旅游App-(23)detail:房东介绍、热门评论、预定须知组件
文章目录目标过程与代码房东介绍landlord热门评论HotComment预定须知Book效果总代码修改或添加的文件detail.vuedetail-book.vuedetail-hotComment.vuedetail-landlord.vue参考本项目博客总结:【前端】Vue项目:旅游App-博客总结 目标 根据detail页面获…...
JUC并发编程与源码分析
一、本课程前置知识及要求说明 二、线程基础知识复习 三、CompletableFuture 四、说说Java"锁"事 8锁案例原理解释: 五、LockSupport与线程中断 六、 Java内存模型之JMM 七、volatile与JMM 八、CAS 九、原子操作类之18罗汉增强 十、聊聊ThreadLocal 十一、Java对…...
Spark09: Spark之checkpoint
一、checkpoint概述 checkpoint,是Spark提供的一个比较高级的功能。有时候,我们的Spark任务,比较复杂,从初始化RDD开始,到最后整个任务完成,有比较多的步骤,比如超过10个transformation算子。而…...
《剑指offer》:数组部分
一、数组中重复的数字题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1…...
基于微信小程序图书馆座位预约管理系统
开发工具:IDEA、微信小程序服务器:Tomcat9.0, jdk1.8项目构建:maven数据库:mysql5.7前端技术:vue、uniapp服务端技术:springbootmybatis本系统分微信小程序和管理后台两部分,项目采用…...
剑指 Offer Day1——栈与队列(简单)
本专栏将记录《剑指 Offer》的刷题,传送门:https://leetcode.cn/study-plan/lcof/。 目录剑指 Offer 09. 用两个栈实现队列剑指 Offer 30. 包含min函数的栈剑指 Offer 09. 用两个栈实现队列 原题链接:09. 用两个栈实现队列 class CQueue { pu…...
详解Python正则表达式中group与groups的用法
在Python中,正则表达式的group和groups方法是非常有用的函数,用于处理匹配结果的分组信息。 group方法是re.MatchObject类中的一个函数,用于返回匹配对象的整个匹配结果或特定的分组匹配结果。而groups方法同样是re.MatchObject类中的函数&am…...
Spring面试重点(三)——AOP循环依赖
Spring面试重点 AOP 前置通知(Before):在⽬标⽅法运行之前运行;后置通知(After):在⽬标⽅法运行结束之后运行;返回通知(AfterReturning):在⽬标…...
计算机网络之HTTP04ECDHE握手解析
DH算法 离散读对数问题是DH算法的数学基础 (1)计算公钥 (2)交换公钥,并计算 对方公钥^我的私钥 mod p 离散对数的交换幂运算交换律使二者算出来的值一样,都为K k就是对称加密的秘钥 2. DHE算法 E&#…...
【MySQL数据库】主从复制原理和应用
主从复制和读写分离1. 主从复制的原理2. 主从复制的环境配置2.1 准备好数据库服务器2.2 配置master2.3 配置slave2.4 测试3. 主从复制的应用——读写分离3.1 读写分离的背景3.2 Sharding-JDBC介绍3.3 Sharding-JDBC使用步骤1. 主从复制的原理 MySQL主从复制是一个异步的过程&a…...
复现随记~
note(美团2022) 比较简单的越界漏洞,堆本身并没有什么漏洞,而且保护并没全开,所以逆向思维。必然是ROP类而非指针类,故我们着重注意unsigned int等无符号数前后是否不一致 int __fastcall edit(__int64 a1) {int idx; // [rsp14…...
【计组】设计大型DMP系统--《深入浅出计算机组成原理》(十四)
目录 一、DMP:数据管理平台 二、MongoDB 真的万能吗 三、关系型数据库:不得不做的随机读写 (一)Cassandra:顺序写和随机读 1、Cassandra 的数据模型 2、Cassandra 的写操作 3、Cassandra 的读操作 (…...
66 使用注意力机制的seq2seq【动手学深度学习v2】
66 使用注意力机制的seq2seq【动手学深度学习v2】 深度学习学习笔记 学习视频:https://www.bilibili.com/video/BV1v44y1C7Tg/?spm_id_from…top_right_bar_window_history.content.click&vd_source75dce036dc8244310435eaf03de4e330 在机器翻译时,…...
NextJS(ReactSSR)
pre-render: 预渲染 1. 静态化 发生的时间:next build 1). 纯静态化 2). SSG: server static generator getStaticProps: 当渲染组件之前会运行 生成html json //该函数只可能在服务端运行 //该函数运行在组件渲染之前 //该函数只能在build期间运…...
JointBERT代码复现详解【上】
BERT for Joint Intent Classification and Slot Filling代码复现【上】 源码链接:JointBERT源码复现(含注释) 一、准备工作 源码架构 data:存放两个基准数据集;model:JointBert模型的实现;…...
进程间通信(上)
进程间通信(上)背景进程间通信目的进程间通信发展进程间通信分类管道什么是管道匿名管道实例代码简单的匿名管道实现一个父进程控制单个子进程完成指定任务父进程控制一批子进程完成任务(进程池)用fork来共享管道站在文件描述符角…...
【Unity3D】Unity 3D 连接 MySQL 数据库
1.Navicat准备 test 数据库,并在test数据库下创建 user 数据表,预先插入测试数据。 2.启动 Unity Hub 新建一个项目,然后在Unity编辑器的 Project视图 中,右击新建一个 Plugins 文件夹将连接 MySQL的驱动包 导入(附加驱…...
vue通用后台管理系统
用到的js库 遇到的问题 vuex和 localStorage区别 vuex在内存中,localStorage存在本地localStorage只能存储字符串类型数据,存储对象需要JSON.stringify() 和 parse()…读取内存比读取硬盘速度要快刷新页面vuex数据丢失,localStorage不会vuex…...
IDEA设置只格式化本次迭代变更的代码
趁着上海梅雨季节,周末狠狠更新一下。平常工作在CR的时候,经常发现会有新同事出现大量代码变更行..一看原因竟是在格式化代码时把历史代码也格式化掉了这样不仅坑了自己(覆盖率问题等),也可能会影响原始代码责任到人&a…...
网上做问卷报酬不错的网站是/网络广告人社区
最近做了一个webservice应用,发现传输过程中,只要有特殊这符,就会导致出错 于是上网搜了一些方法,先把源WebService输出的内容进行特殊字符转换十六进制,接到收后再进行返转换 ///<summary>///StringExtenstion 的摘要说明///</summary>public static class String…...
美国主机网站建设/百度95099如何转人工
这里使用的是淘宝的接口 public class AddressUtil{ /** * * param content * 请求的参数 格式为:namexxx&pwdxxx * param encodingString * 服务器端请求编码。如GBK,UTF-8等 * return * throws UnsupportedEncodingException */ public static String getAddr…...
都匀住房和城乡建设部网站/搜索引擎营销是指
android默认的视频采集格式是NV21,(属于YUV420) 在onPreviewFrame中传进来的byte[] data即为NV21格式。 旋转算法 对NV21进行顺时针旋转90度,180度和270度算法。 旋转90度 privatebyte[] rotateYUV420Degree90(byte[] data, int i…...
校园网网站分页党群建设/个人微信管理系统
在网上找到了一句得到删除数据库中所有外键约束的语句的sql语句 但是发现这只是一句查询,要执行的话,还得复制出来执行,比较麻烦 于是写了个sp来自动执行,比较方便 代码如下: Sql代码 CREATE PROCEDURE sp_drop_all_f…...
哪个网站可以免费做网页/活动推广朋友圈文案
Android里的C代码经常会看到AutoMutex _l(mLock); AutoMutex其实就是Thread的一种自动的互斥锁,定义在framework/base/include/utils/thread.h中; /* * Automatic mutex. Declare one of these at the top of a function. * When the function return…...
2015年做那些网站能致富/产品推广渠道
1.Jdk Linux(Centos)安装Java JDK及卸载 2.Tomcat (开机自启动) Linux(Centos)安装tomcat并且部署Java Web项目 3.CentOS7.3搭建ApachePHP7web SVNMariaDB Web服务器(2017-10-24) CentOS7.3搭建ApachePHP7web SVNMariaDB Web服务器(2017-10-2…...