PyTorch学习笔记之基础函数篇(四)
文章目录
- 2.8 torch.logspace函数讲解
- 2.9 torch.ones函数
- 2.10 torch.rand函数
- 2.11 torch.randn函数
- 2.12 torch.zeros函数
2.8 torch.logspace函数讲解
torch.logspace 函数在 PyTorch 中用于生成一个在对数尺度上均匀分布的张量(tensor)。这意味着张量中的元素是按照对数间隔排列的,而不是线性间隔。这对于创建在数值上跨越多个数量级的序列特别有用,例如,在机器学习模型的超参数搜索中,我们可能想要测试不同数量级的学习率。
torch.logspace 函数的原型如下:
torch.logspace(start, end, steps=100, base=10.0,
dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor
参数解释:
start:序列的起始值(以底数为底的对数)。
end:序列的结束值(以底数为底的对数)。
steps:生成的样本数量,默认是 100。
base:对数的底数,默认是 10.0。这意味着 start 和 end 是以 10 为底的对数值。
如果是以自然对数(以 e 为底)为间隔,则设置 base=math.e。
dtype:返回张量的数据类型,如果未提供,则推断数据类型。
layout:返回张量的内存布局,默认是 torch.strided。
device:返回张量所在的设备,例如 CPU 或 GPU。
requires_grad:如果设置为 True,则张量将需要梯度,用于反向传播。
使用 torch.logspace 的例子:
import torch# 创建一个从 10^1 到 10^3(即 10 到 1000)之间,包含 5 个元素的张量,底数为 10
tensor = torch.logspace(1.0, 3.0, 5, base=10.0)print(tensor)
输出可能类似于:
tensor([ 10., 32., 100., 316., 1000.])
在这个例子中,start=1.0 对应于底数为 10 的 10(即 10^1),end=3.0 对应于底数为 10 的 1000(即 10^3)。steps=5 表示我们希望生成 5 个元素。结果是一个包含 5 个元素的张量,这些元素在 10 到 1000 之间,按照对数尺度均匀分布。
注意,当 steps 参数很大时,最后一个元素可能会略微超过 end 值,因为对数间隔不是严格的均匀分布。同样,当 steps 参数很小时,第一个元素可能会略微小于 start 值。
2.9 torch.ones函数
在PyTorch中,torch.ones 函数用于创建一个所有元素都设置为1的张量(Tensor)。这个函数接受与 torch.eye 类似的参数,允许你指定张量的形状(即行数和列数)。
下面是如何使用 torch.ones 创建一个全1张量的示例:
import torch# 创建一个3x3的全1矩阵
ones_matrix = torch.ones(3, 3)print(ones_matrix)
输出将是:
tensor([[1., 1., 1.],[1., 1., 1.],[1., 1., 1.]])
在这个例子中,torch.ones(3, 3) 创建了一个3x3的矩阵,其中所有元素都是1。
如果你想要创建一个不是方阵的全1张量,你可以分别指定行数和列数:
# 创建一个2x3的全1矩阵
ones_matrix_non_square = torch.ones(2, 3)print(ones_matrix_non_square)
输出将是:
tensor([[1., 1., 1.],[1., 1., 1.]])
在这个例子中,torch.ones(2, 3) 创建了一个2x3的矩阵,其中所有元素都是1。
同样,你也可以通过 dtype 参数指定张量的数据类型:
# 创建一个3x3的全1矩阵,数据类型为int64
ones_matrix_int = torch.ones(3, 3, dtype=torch.int64)print(ones_matrix_int)
这将输出一个3x3的矩阵,其中所有元素都是1,并且数据类型是torch.int64。
请注意,由于 torch.int64 是整数类型,所有元素将被设置为1,而不是浮点数1.0。如果你想要创建浮点数的全1张量,你应该使用 torch.float32 或 torch.float64(默认为 torch.float32)作为数据类型。
2.10 torch.rand函数
在PyTorch中,torch.rand 函数用于创建一个给定形状的张量(Tensor),其中每个元素都是从均匀分布 U(0, 1) 中随机抽取的。这意味着所有元素的值都在0到1之间(包括0但不包括1)。
下面是如何使用 torch.rand 创建一个随机张量的示例:
import torch# 创建一个3x3的随机张量
random_tensor = torch.rand(3, 3)print(random_tensor)
输出将是一个3x3的矩阵,其中的每个元素都是随机生成的,并且值在0到1之间:
tensor([[0.1234, 0.5678, 0.9101],[0.2345, 0.6789, 0.1230],[0.3456, 0.7890, 0.4567]])
请注意,每次调用 torch.rand 时都会生成一个新的随机张量,即使形状和大小相同。
如果你想要创建一个具有特定数据类型的随机张量,可以使用 dtype 参数。例如,要创建一个浮点数为 torch.float64 类型的随机张量,可以这样做:
random_tensor_double = torch.rand(3, 3, dtype=torch.float64)
print(random_tensor_double)
2.11 torch.randn函数
在PyTorch中,torch.randn 函数用于创建一个给定形状的张量(Tensor),其中每个元素都是从标准正态分布(均值为0,标准差为1)中随机抽取的。这意味着生成的张量中的值将遵循正态分布,并且平均来说,大部分值将接近0,但会有一些正值和负值。
下面是如何使用 torch.randn 创建一个随机张量的示例:
import torch# 创建一个3x3的随机张量,元素来自标准正态分布
random_tensor = torch.randn(3, 3)print(random_tensor)
输出将是一个3x3的矩阵,其中的每个元素都是随机生成的,并且符合标准正态分布:
tensor([[ 0.1234, -0.5678, 0.9101],[-0.2345, 0.6789, -0.1230],[ 0.3456, -0.7890, 0.4567]])
torch.randn 在深度学习和统计建模中特别有用,因为它可以帮助你生成符合正态分布的随机初始权重和偏差,这些权重和偏差在训练神经网络时通常会得到更好的性能。
2.12 torch.zeros函数
在PyTorch中,torch.zeros 函数用于创建一个所有元素都设置为0的张量(Tensor)。这个函数接受一个形状参数,允许你指定张量的维度。
下面是如何使用 torch.zeros 创建一个全0张量的示例:
import torch# 创建一个3x3的全0矩阵
zeros_matrix = torch.zeros(3, 3)print(zeros_matrix)
输出将是:
tensor([[0., 0., 0.],[0., 0., 0.],[0., 0., 0.]])
在这个例子中,torch.zeros(3, 3) 创建了一个3x3的矩阵,其中所有元素都是0。
你可以创建任意维度的全0张量,只需要提供相应的维度参数即可:
# 创建一个2维的全0张量,形状为 (4, 5)
zeros_tensor = torch.zeros(4, 5)print(zeros_tensor)
输出将是:
tensor([[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.],[0., 0., 0., 0., 0.]])
如果你想要指定张量的数据类型,可以使用 dtype 参数:
# 创建一个3x3的全0矩阵,数据类型为float64
zeros_matrix_float64 = torch.zeros(3, 3, dtype=torch.float64)print(zeros_matrix_float64)
输出将是:
tensor([[0., 0., 0.],[0., 0., 0.],[0., 0., 0.]], dtype=torch.float64)相关文章:
PyTorch学习笔记之基础函数篇(四)
文章目录 2.8 torch.logspace函数讲解2.9 torch.ones函数2.10 torch.rand函数2.11 torch.randn函数2.12 torch.zeros函数 2.8 torch.logspace函数讲解 torch.logspace 函数在 PyTorch 中用于生成一个在对数尺度上均匀分布的张量(tensor)。这意味着张量中…...
C++/CLI学习笔记3(快速打通c++与c#相互调用的桥梁)
c/cli变量和操作符 3.1:什么是变里 变量是存储数据以便应用程序临时使用的内存位置,具有名称、类型和值。变量值在应用程序执行期间可能改变,变量名也是。变量使用前必须声明,即指定类型和提供名称。变量的类型决定了值的范围以及能执行的操…...
unity
Unity官方下载_Unity最新版_从Unity Hub下载安装 | Unity中国官网 Unity Remote - Unity 手册 登陆账号,找到一个3d 免费资源 3D Animations & Models | Unity Asset Store unity 里面window->package Manager 里面可以看到自己的asset ,下载后…...
考研复习C语言初阶(3)
目录 一.函数是什么? 二.C语言中函数的分类 2.1库函数 2.2自定义函数 三.函数的参数 3.1实际参数(实参) 3.2 形式参数(形参) 四.函数的调用 4.1 传值调用 4.2 传址调用 五. 函数的嵌套调用和链式访问 5.1 嵌套调用 5…...
CCF 202009-3 点亮数字人生(拓扑排序)
题目背景 土豪大学的计算机系开了一门数字逻辑电路课,第一个实验叫做“点亮数字人生”,要用最基础的逻辑元件组装出实际可用的电路。时间已经是深夜了,尽管实验箱上密密麻麻的连线已经拆装了好几遍,小君同学却依旧没能让她的电路正…...
Docker笔记-进入运行中的镜像,查看日志等操作
docker搭建好后,查看运行的docker镜像: docker ps -a 进入运行的容器,命令如下: docker exec -it <容器ID> /bin/bash # 或者,直接用容器里面的命令,比如mysql镜像 docker exec -it <容器ID>…...
大语言模型(LLM) RAG概念
RAG(Retrieval-Augmented Generation)是一种用于自然语言处理的模型架构,特别是针对生成式任务。RAG模型结合了检索和生成两种方法,以提高生成式任务的性能。它将信息检索(Retrieval)和文本生成(…...
PHP使用AES进行加解密
前言 对接一个第三方平台,其使用AES对称加密 代码 //方式1 //加密 function enAES($originTxt, $keyQ6Mr6rDpn12iZb){return base64_encode(openssl_encrypt($originTxt, AES-128-ECB,$key, OPENSSL_RAW_DATA)); }//解密 function deAES($originTxt, $keyQ6Mr6rD…...
20240313寻找集成联调交付的具体方式
集成联调交付(Integrated Joint Debugging and Delivery)是软件开发过程中的一个阶段,主要涉及将不同的软件模块或组件整合在一起,并进行联合调试和测试,以确保它们能够作为一个整体正常工作。这个过程通常发生在开发周…...
makefile 学习
patsubst 函数 原型$(patsubst 原模式, 目标模式, 文件列表) 如果文件列表中没有匹配的字符串,就会把整个文件列表的值赋值给变量 // 如果当前目录下有 main.cpp test.cpp SRC $(wildcard *.cpp *.c) # 在工作目录下寻找所有c cpp 文件 …...
释放人工智能的力量:GPU服务器托管和高电机柜托管的关键作用
随着人工智能技术的不断发展,GPU服务器托管和高电机柜托管也变得愈发重要。这些技术在人工智能领域发挥着关键作用,为AI算法的训练和推理提供了强大的计算支持。 GPU服务器托管是指将GPU服务器放置在专门的数据中心中,通过云服务提供商提供的…...
70后姐妹上海创业,要IPO了
一种能与消费者高效互动的自动贩卖机,不仅于近日将一家上海公司送到港交所的门前,还让一对70后姐妹的身价超过13亿元。 在殷珏辉和妹妹殷珏莲的带领下,中国营销服务提供商趣致集团坐拥7543台自动贩卖机和超过5000万注册用户。通过为品牌方提…...
React Hooks、useState、useEffect 、react函数状态
Hooks Hooks 概念理解 学习目标: 理解 Hooks 的概念及解决的问题 什么是 hooks hooks 的本质: 一套能够使函数组件更强大、更灵活的(钩子) React 体系里组件分为类组件和函数组件 多年使用发现,函数组件是一个更加匹…...
wsl-oraclelinux 固定ip
wsl-oraclelinux 固定ip 0. 引言1. Windows 创建启动脚本2. 配置 wsl Oracle Linux 0. 引言 工作需要,安装了一个 wsl Oracle Linux 8.9,也想给它一个固定的 ip。 1. Windows 创建启动脚本 删除 PSScheduledJob, notepad $PSHOME\powersh…...
性能测试工具——wrk的安装与使用
前言 想和大家来聊聊性能测试,聊到了性能测试必须要说的是性能测试中的工具,在这些工具中我今天主要给大家介绍wrk。 介绍 wrk是一款开源的性能测试工具 ,简单易用,没有Load Runner那么复杂,他和 apache benchmar…...
使用tui-image-editor 图片编辑 标注图片
需求背景: 鼠标悬浮在图片上 出现编辑按钮 点击编辑 对该图片进行编辑(输入文案、涂鸦、标记、裁剪等) 可以体验一下它线上编辑器 Image-editor | TOAST UI :: Make Your Web Delicious! 使用 首先在你的前端项目中安装: np…...
C++面试题和笔试题(五)
一、 #include <iostream> using namespace std; class Base { public: Base(int j) : i(j) {} virtual ~Base() {} void func1() { i * 10; func2(); } int getvalue() { return i; } protected: virtual void func2() { i; } protected: int i;…...
Mysql:行锁,间隙锁,next-key锁?
注:以下讨论基于InnoDB引擎。 文章目录 问题引入猜想1:只加了一行写锁,锁住要修改的这一行。语义问题数据一致性问题 猜想2:要修改的这一行加写锁,扫描过程中遇到其它行加读锁猜想3:要修改的这一行加写锁&…...
Grass推出Layer 2 Data Rollup
Grass推出Layer 2 Data Rollup Grass邀请链接最新资讯 Grass邀请链接 欢迎使用我的邀请码进行注册: 邀请链接 如果你还不知道注册流程:详见Grass: 出售闲置带宽实现被动收入 最新资讯 简讯:2024年3月13日,Grass宣布正在建立基于Solana的La…...
[Java、Android面试]_04_进程、线程、协程
本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。 整理成了面试系列,由于时间有限,每天整理一点,后续会陆续分享出来,感兴趣的朋友可收藏 文…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
