pytorch使用-tensor的基本操作解读
作者:大虾飞哥哥 发布时间:2022-05-23 03:15:12
标签:pytorch,tensor
一、tensor加减乘除
加法操作
import torch
x = torch.randn(2, 3)
y = torch.randn(2, 3)
z = x + y
print(z)
z = torch.add(x, y)
print(z)
y.add_(x)
print(y)
其他操作类似:减法:sub(-), 乘法:mul(*), 除法:div(/)
二、tensor矩阵运算
# 二维矩阵相乘
a = torch.full([2, 2], 3, dtype=torch.long)
b = torch.ones(2, 2, dtype=torch.long)
print(a)
print(b)
print(torch.mm(a, b))
# matmul 和 @ 可以用于二维矩阵计算,也可以是多维
# 四维,计算的时候就是前两维不变,后两维进行计算。
a = torch.rand(1, 1, 3, 2)
b = torch.rand(1, 1, 2, 4)
c = torch.matmul(a, b)
print(a)
print(b)
print(c)
pow
a = torch.full([2, 2], 6)
print(a.pow(3))
a = torch.full([2, 2], 6)
print(a**2)
sqrt
: 平方根rsqrt
: 平方根倒数
a = torch.full([2, 2], 1024)
print(a.sqrt())
print(a.rsqrt())
print(a**0.5)
exp log
a = torch.ones(2, 2)
print(torch.exp(a))
print(torch.log(a))
print(torch.log2(a))
.floor()
——往下近似.ceil()
——往上近似.trunc()
——裁剪为整数部分.frac()
——裁剪成小数部分
a = torch.tensor(3.1415926)
print(a.floor())
print(a.ceil())
print(a.trunc())
print(a.frac())
torch.round()——四舍五入
a = torch.tensor(3.1415926)
print(a.round())
.item() 转化为python number
x = torch.randn(1)
print(x)
print(x.item())
四、tensor切片操作
a = torch.randn(4, 3)
print(a)
# 取第二列
print(a[:, 1])
# 取前两列
print(a[:, :2])
五、tensor改变形状
x = torch.randn(4, 4)
y = x.view(16)
# -1, 自动匹配个数
z = x.view(-1, 8)
print(x)
print(y)
print(z)
六、tensor 和 numpy.array相互转换
# 底层内存共享
x = torch.ones(5)
print(x)
y = x.numpy()
print(y)
x.add_(1)
print(y)
import numpy as np
x = np.ones(5)
y = torch.from_numpy(x)
print(y)
七、tensor 转到GPU上
if torch.cuda.is_available():
device = torch.device("cuda")
x = torch.randn(2, 3)
print(x)
y = x.to(device)
print(y)
z = torch.randn(2, 3, device="cuda")
print(z)
# 同时在GPU上才能相加
print(y + z)
# 转换会cpu
print(z.to("cpu"))
来源:https://blog.csdn.net/xu624735206/article/details/123929030


猜你喜欢
- 注:MySQL5.7破解root密码,跳过密码认证登录到数据库,直接修改表中的密码即可,但是MySQL 8.0则不可以这样修改root密码,
- 直接上代码import pygameimport randomdef main(): # 初始化pygame &n
- 首先第一步,打开文件,有两个函数可供选择:open() 和 file()①. f = open('file.txt
- 如何做一个文本搜索? 比较简单,见下:<%Head = "搜索"SearchStri
- 如何用Sleep函数编译一个定时组件?见下: Private Declare Sub Sleep L
- selenium主要是用来做自动化测试,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。模拟浏览器进行网页加载,当reque
- 介绍RANGE分区基于一个给定的连续区间范围,早期版本RANGE主要是基于整数的分区。在5.7版本中DATE、DATETIME列也可以使用R
- 首先了解下session的机制客户端(浏览器中) cookie 作为键值,匹配服务器端的一个数据。然后客户端每次在 HTTP 请求里面带着那
- 一. 打印图片属性、设置图片存储路径代码如下:#打印图片的属性、保存图片位置import cv2 as cvimport nump
- 今天依旧是学算法,前几天在搞bbs项目,界面也很丑,评论功能好像也有BUG。现在不搞了,得学下算法和数据结构,笔试过不了,连面试的机会都没有
- 可以加上时间判断,让程序在固定的时间启动。#coding=utf-8#!/usr/bin/pythonimport osdef open_a
- 因为云服务器的centos是没有图形界面的,所以安装比较麻烦,刚好19c有本地rpm的安装方法,所以推荐用rpm安装。首先到官网下载rpm包
- 删除一条留言信息会级联删除回复信息,这时我们需要用到事务,如下SQLALTER PROCEDURE [dbo].[proc_tb_leave
- 引言之前松哥写过一个 MySQL 系列,但是当时是基于 MySQL5.7 的,最近有空在看 MySQL8 的文档,发现和 MySQL5.7
- 一、字符串类型1)字符串是字符的序列表示,根据字符的内容分为单行字符串和多行字符串。2)单行字符串可以由一对单引号(’)
- Python 字符串描述Python rstrip() 删除 string 字符串末尾的指定字符(默认为空格).语法rstrip()方法语法
- MySQL服务器端的参数有很多,但是对于大多数初学者来说,众多的参数往往使得我们不知所措,但是哪些参数是需要我们调整的,哪些对服务器的性能影
- 系统:ubuntu18.04 x64GitHub:https://github.com/xingjidemimi/DjangoAPI.git
- 马氏距离区别于欧式距离,如百度知道中所言:马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Ma
- 你和用户之间的网站堆栈(简化版)在TXJS大会的最后一天,一个开发者问我:面向对象的CSS没有给你留下一大堆基于表现的class名?网络堆栈