当前位置: 首页 > news >正文

深度学习常用的python函数(一)

由于我只简单的学过python和pytorch,其中有很多函数的操作都还是一知半解的,其中有些函数经常见到,所以就打算记录下来。

1.zip

zip(*a):针对单个可迭代对象压缩成n个元组,元组数量n等于min(a中元素的最小长度)

a = [(1, 2), (3, 4), (5, 6)]
c, d = zip(*a)
print(c, d)
# (1, 3, 5) (2, 4, 6)

2.view, arange和range

import torch
# torch.arange(1, 3) =[1,3)   前闭后开
# torch.range(1, 3) =[1,3]    前闭后闭
e = torch.arange(1, 3)
e1 = torch.range(1, 3)
e, e1  # (tensor([1, 2]), tensor([1., 2., 3.]))

view的作用就是用来组织Tensor的形状,

import torch
e = torch.arange(1, 19).view(2, 3, 3)
e1 = torch.range(1, 18).view(2, 3, 3)
e,e1,e==e1

输出结果如下
在这里插入图片描述

3.torch.transpose 用来交换维度(重新组织维度)

torch.Size([1, 3, 2])–>transpose(0,1)后 torch.Size变为([3,1,2])
有两种写法 ① b.transpose(0, 1) ② torch.transpose(b, 0, 1),我觉得都可以使用

import torch
#https://pytorch.org/docs/stable/generated/torch.transpose.html#torch.transpose
b = torch.Tensor([[[0, 1], [2, 3], [4, 5]]])
print(b.shape)
print('----------')
b=b.transpose(0, 1)
print(b.shape)
print('----------')
c = torch.transpose(b, 0, 1)
print(c.shape)
# print(b)
# print(c)

在这里插入图片描述

4.torch.cat

torch.cat()是为了把多个tensor进行拼接而存在的(这里仅仅用了相同的元素)

# 3.torch.cat
# dim(整数,可选)– 张量被控制的维度
# m 默认为0  代表在竖向的方向上添加
# [c,
#  c,
#  c]
# m为1代表在横向的方向上添加[c,c,c]
c = torch.Tensor([[0, 1], [2, 3], [4, 5]])
# print(c)
print(c.shape)
print('--------------')
c1 = torch.cat((c, c, c), dim=0)  
# print(c1)
print(c1.shape)
print('--------------')
c2 = torch.cat((c, c), dim=1)  #  [c,c]
# print(c2)
print(c2.shape)
# print(c2.shape[1])

5.数组操作

这部分的操作比较复杂,有的三维数组的操作,就像这样的[:::],大家可以自己复制尝试一下,查看输出

# 4.数组操作
#  enc_hidden[-2,:,:], enc_hidden[-1,:,:]
d = torch.Tensor([[[1, 2, 3], [4, 5, 6], [7, 8, 9]],[[10, 11, 12], [13, 14, 15], [16, 17, 18]]])
print(d.size())  # torch.Size([2, 3, 3])
print(d)
# tensor([[[ 1.,  2.,  3.],
#          [ 4.,  5.,  6.],
#          [ 7.,  8.,  9.]],
#
#         [[10., 11., 12.],
#          [13., 14., 15.],
#          [16., 17., 18.]]])
print('------1---------')
print(d[-1, :, :])print('------2--------')
print(d[:, -1, :])print('------3--------')
print(d[:, :, -1])print('------4--------')
print(d[:, :, -2])print('------5--------')
print(d[-1])
print(d[:, :, -1])
print(d[-1, :, :])
print(d[:, -1, :])

6.squeeze()和unsqueeze()

squeeze在的中文意思压缩,unsqueeze取消压缩,unsqueeze是添加维度的意思

特别的,当unsqueeze()里面参数是0 的时候,该矩阵由(3,4)变成是(3,4,1)

e = torch.arange(1, 19).view(2, 3, 3)
print(e)
print(e.shape)
print('-----unsqueeze:就是在某个位置增加一个维度-------')
ee = e.unsqueeze(3)
print(ee)
print(ee.shape)

在这里插入图片描述在这里插入图片描述

# 5.squeeze()和unsqueeze()
#   squeeze在的中文意思压缩,就是降低维度,squeeze()函数只能压缩维度为1的矩阵
#  当unsqueeze()里面参数是0 的时候,该矩阵由(3,4)变成是(3,4,1)
# 对形如(2, 3, 3)的矩阵squeeze不起作用,但不会报错
e = torch.arange(1, 19).view(2, 3, 3)
print(e)
print(e.shape)
print('-----squeeze:就是在某个位置降低一个维度-------')
eee = e.squeeze(0)
print(eee)
print(eee.shape)

在这里插入图片描述

7.torch.bmm 计算两个tensor的矩阵乘法

torch.bmm(input, mat2, *, out=None)
input and mat2 must be 3-D tensors each containing the same number of matrices.

If input is a (b×n×m) tensor, mat2 is a (b×m×p) tensor, out will be a (b×n×p) tensor.

两个tensor的第一维是相等的,然后第一个数组的第三维和第二个数组的第二维度要求一样,对于剩下的则不做要求,输出维度

import torchg1 = torch.arange(1, 7).view(1, 2, 3)
print(g1.shape)
print(g1)
g2 = torch.arange(1, 10).view(1, 3, 3)
print(g2)
print('-------')torch.bmm(g1, g2)

在这里插入图片描述

8.torch.exp(x) 计算e(2.7)的x次方

分别计算e^0(e的0次方), e的1次方,e的log(2)次方

import matha = torch.tensor([0, 1, math.log(2)])
print(torch.exp(a))

在这里插入图片描述

9.torch.max

求最大值

a = torch.randn(4, 4)
print(a)
print(torch.max(a, dim=1))
print('----------')
print(torch.max(a, dim=1, keepdim=True))

在这里插入图片描述

相关文章:

深度学习常用的python函数(一)

由于我只简单的学过python和pytorch,其中有很多函数的操作都还是一知半解的,其中有些函数经常见到,所以就打算记录下来。 1.zip zip(*a):针对单个可迭代对象压缩成n个元组,元组数量n等于min(a中元素的最小长度) a [(1, 2), (3…...

2023年美国大学生数学建模A题:受干旱影响的植物群落建模详解+模型代码(一)

目录 前言 一、题目理解 背景 解析: 要求 二、建模 1.相关性分析 2.相关特征权重 只希望各位以后遇到建模比赛可以艾特认识一下我,我可以提供免费的思路和部分源码,以后的数模比赛只要我还有时间肯定会第一时间写出免费开源思路&…...

PPS文件如何转换成PPT?附两种方法

在工作中,PPS文件的使用还是很广泛的,因为作为幻灯片放映文件,点击后就能直接播放,十分方便。但如果想要修改PPS里的内容,PPS是无法编辑的,我们需要把文件转换成PPT,再进行修改。 那PPS文件如何…...

ParallelsDesktop安装【亲测可行】

我这边安装的是macos最新系统 (Ventura13.2) 本文参考这篇文章安装,但是你完全按照这篇文章会报错,具体可行操作记录如下 一、下载软件和补丁 1、点这里去下载补丁18.0.1 2、点这里去下载对应版本的ParallelsDesktop18.0.1,安装上到试用这里…...

在 Python 中只接受数字作为用户输入

只接受数字作为用户输入: 使用 while True 循环进行循环,直到用户输入一个数字。使用 float() 类尝试将值转换为浮点数。如果用户输入了一个数字,请使用 break 语句跳出循环。 while True:try:# 👇️ use int() instead of floa…...

【集合】JAVA基础篇(二)

目录一、java常用集合1、Java集合接口的作用2、Java集合常用实现类的作用二、Collection 常用的方法三、List 集合接口1、ArrayList类的常用方法2、LinkList类中的方法3、Vector4、ArrayList 类和 LinkedList 类的区别四、Set 集合1、HashSet 类2、TreeSet 类3、HashSet 和 Tre…...

机房意外掉电导致Elasticsearch的部分index无数据的修复过程

环境 :华为大数据集群FusionInsight V100R002C800SPC200、Elasticsearch 6.1.3、Kibana问题产生原因:因机房意外掉电导致集群部分机器两次掉电导致Elasticsearch重启,Elasticsearch重启后看似正常但某些index无数据。经排查判断为Elasticsearch的部分ind…...

Spring入门案例三:注解进行引用类型的自动装配

本系列文章将会带领大家进行Spring的全面学习,持续关注我,不断更新中… 一.案例分级 简单解析:配置类替代以前的配置文件,实体类提供对象,业务类中有实体类的引用对象,在业务层中实现引用类的自动装配。 二.各层代码…...

kubernet + kubevirt + ceph 汇总文档

目的 1 创建 kubenetes 集群 2 kubenetes 集群上部署 kubevirt 3 kubernetes 支持 ceph 存储 4 VMI 可以存储在 ceph rbd 存储中并正常使用 参考部署文档 名称连接备注centos8 + kubernetes 1.24 master/node 节点部署文档kubernetes 集群部署kubectl top node 使用方法部署文档…...

软件测试项目实战(附全套实战项目教程+视频+源码)

开通博客以来,我更新了很多实战项目,但一部分小伙伴在搭建环境时遇到了问题。 于是,我收集了一波高频问题,汇成本篇,供大家参考,避免重复踩坑。 如果你还遇到过其他坑和未解决的问题,可在评论区…...

Python seek()和tell()函数详解

在讲解 seek() 函数和 tell() 函数之前,首先来了解一下什么是文件指针。我们知道,使用 open() 函数打开文件并读取文件中的内容时,总是会从文件的第一个字符(字节)开始读起。那么,有没有办法可以自定指定读…...

数据库系统:1. 绪论

更好的阅读体验\huge{\color{red}{更好的阅读体验}}更好的阅读体验 文章目录1.1 数据库系统概述1.1.1 基本概念数据(data)数据库(DataBase, DB)数据库管理系统(DataBase Management System, DBMS)数据库系统…...

Android App开发基础

文章目录一 App的开发特点1.1 App的运行环境1.2 App开发语言1.3 java语言开发1.4 Kotlin语言开发1.5 XML1.6 App连接的数据库二 App的工程结构2.1 App工程目录结构2.2 构建工具Grade2.3 编译配置文件build.gradle2.4 运行配置文件AndroidManifest.xml2.4.1 application2.4.2 ac…...

力扣-分数排名

大家好,我是空空star,本篇带你了解一道简单的力扣sql练习题。 文章目录前言一、题目:178. 分数排名二、解题1.错误示范①提交SQL运行结果2.错误示范②提交SQL运行结果3.正确示范①提交SQL运行结果4.正确示范②提交SQL运行结果5.正确示范③提交…...

图文详解Ansible中的变量及加密

文章目录一、变量命名二、变量级别三、.变量设定和使用方式1.在playbook中直接定义变量2.在文件中定义变量3.使用变量4.设定主机变量和清单变量5.目录设定变量6.用命令覆盖变量7.使用数组设定变量8.注册变量9.事实变量10.魔法变量四、JINJA2模板五、 Ansible的加密控制练习1.用…...

silicon labs平台通过串口升级固件方案

开发环境 windowssimplicity studio 5geck sdk 4.1 一 bootloader 新建BGAPI UART DFU工程 工程新建完成以后看一下linkerfile.ld文件的flash和ram的配置跟自己的application工程是否对应得上 配置串口波特率和引脚 默认使用PB0进入bootloader模式,这里改成Non…...

MySQL 派生表产生关联索引auto_key0导致SQL非常的慢

相同的SQL在maridb运行0.5秒,在MySQL8.0.26中运行要19秒 官方MySQL在处理子查时,优化器有个优化参数derived_merge,MySQL7开启添加,默认on.很多情况可以自动优化派生表,避免创建临时索引auto_key0和生成临时表数据做…...

计算机网络期末复习汇总(附某高校期末真题试卷)

文章目录一、选择题二、填空题三、名词解析四、简答题五、高校期末真题一、选择题 1、传输延迟时间最小的交换方法是( A ) A.电路交换 B.报文交换 C.分组交换 D.信元交换 2、在OSI七层结构模型中,处于数据链路层与运输层之间的是( B) A、物…...

2月,还是不要跳槽

新年已经过去,马上就到金三银四跳槽季了,一些不满现状,被外界的“高薪”“好福利”吸引的人,一般就在这时候毅然决然地跳槽了。 在此展示一套学习笔记 / 面试手册,年后跳槽的朋友可以好好刷一刷,还是挺有必…...

科技爱好者周刊之爱好者记录

前言 平时浏览的内容杂七杂八,说好听一些叫做“内容丰富,涉猎甚广”,实际一些则是受到主流大环境的冲击加之自身的控制力尚且不足。 有过类似经历的人大多知道,碎片化的信息除了填充大脑的冗余空间,在短期时间内就会被…...

5分钟解决经典游戏兼容性问题:DDrawCompat完整使用指南

5分钟解决经典游戏兼容性问题:DDrawCompat完整使用指南 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors/dd/DDraw…...

别再为ImageNet-1k 2012下载发愁了:手把手教你用迅雷+MD5校验搞定训练集和测试集

高效获取ImageNet-1k数据集的完整实践指南 在计算机视觉研究领域,ImageNet-1k数据集堪称是算法开发的"基石"。无论是训练经典的ResNet模型,还是验证最新的Transformer架构,这个包含1000个类别、超过120万张图像的数据集都是不可或缺…...

从热电偶到串口显示:用STM32F103C8T6+MAX6675搭建简易温度监控系统

从零搭建热电偶温度监控系统:STM32F103C8T6与MAX6675实战指南 在工业测量和创客项目中,温度监控是最基础却至关重要的环节。想象一下,当你需要精确控制3D打印机的热床温度、监测烘焙设备的加热曲线,或是记录温室大棚的环境变化时&…...

终极指南:如何用billboard.js实现机器学习预测结果的可视化展示

终极指南:如何用billboard.js实现机器学习预测结果的可视化展示 【免费下载链接】billboard.js 📊 Re-usable, easy interface JavaScript chart library based on D3.js 项目地址: https://gitcode.com/gh_mirrors/bi/billboard.js billboard.j…...

如何设计优雅的RESTful API:Blade框架完整指南

如何设计优雅的RESTful API:Blade框架完整指南 【免费下载链接】blade :rocket: Lightning fast and elegant mvc framework for Java8 项目地址: https://gitcode.com/gh_mirrors/bl/blade 想要在Java 8中快速构建高性能、优雅的RESTful API吗?B…...

OpenClaw隐私保护方案:ollama-QwQ-32B本地化数据处理流程

OpenClaw隐私保护方案:ollama-QwQ-32B本地化数据处理流程 1. 为什么需要本地化隐私保护方案 去年我在处理一份涉及客户隐私的市场分析报告时,遇到了一个棘手问题:当使用云端AI服务进行数据清洗和分析时,不得不将包含敏感字段的原…...

OpenCV处理RTSP流太慢?试试把视频帧存成二进制文件吧!一个提升IO效率的实战技巧

OpenCV处理RTSP流性能优化:二进制帧存储实战指南 在实时视频分析系统中,我们常常遇到这样的困境:OpenCV能够快速解码RTSP流,但后续的处理环节(如算法推理、视频录制)却跟不上节奏。这种"解码快、消费慢…...

实战解析:基于防火墙与三层交换机的企业多业务VLAN安全组网

1. 企业多业务VLAN组网的核心价值 对于200-500人规模的中型企业来说,网络架构就像城市的交通系统。当办公区、研发中心、视频监控、服务器集群等业务单元都挤在同一个"马路"上时,网络拥堵和安全风险就会成为日常噩梦。我去年就遇到过一家制造…...

3分钟快速上手:DouYinBot抖音无水印视频下载终极指南 [特殊字符]

3分钟快速上手:DouYinBot抖音无水印视频下载终极指南 🚀 【免费下载链接】DouYinBot 抖音无水印下载 项目地址: https://gitcode.com/gh_mirrors/do/DouYinBot 在短视频内容创作和分享的时代,如何快速获取无水印的抖音视频成为创作者和…...

ThinkPad 4G/5G 连网不支持 IPv6?一文教你判断与设置

很多用 ThinkPad 内置 4G/5G 模块上网的用户,在使用 IPv6 相关服务、测速或网络诊断时,会发现自己明明设备很新,却始终无法获取 IPv6 地址,甚至误以为电脑硬件不支持。尤其在办公、远程、云服务等场景,IPv6 支持与否直…...