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

部分库与使用方法总结(自用)

1.tqdm

        tqdm是Python的进度条库,可以在长循环操作中显示进度提示

        tqdm.tqdm:传入数字

from tqdm import tqdm
for i in tqdm(range(1, 5)):print(i)

使用bar_format = "{l_bar}{bar}"可以只显示进度条

from tqdm import tqdm
for i in tqdm(range(1, 5), bar_format="{l_bar}{bar}"):pass

 传入字符串:

from tqdm import tqdm
for i in tqdm(["a", "b", "c"]):print(i)

tqdm.trange:用来省略的表达tqdm(range())

from tqdm import trange
for i in trange(range(1, 5)):print(i)

 set_description:实现实时查看每次处理的数据

from tqdm import tqdm
pbar = tqdm(["a", "b", "c", "d"])
for c in pbar:pbar.set_description("Processing %s" % c)

 上述文字转述自

Python中tqdm模块介绍_python_木南成长之路-DevPress官方社区 (csdn.net)

 2.torch.backends.cudnn

        cuDNN(CUDA Deep Neural NetWork library):是NVIDIA打造的针对神经网络的加速库,是一个用于深度神经网络的GPU加速库,它不是必须使用的库,但是一般会采用这个库。

torch.backends.cudnn.benchmark = True

上述代码会让程序在开始运行时花费一点额外时间为整个网络的每个卷积层搜索最适合它的卷积实现算法,进而实现网络的加速。

该代码的使用仅适用于网络结构固定(非动态变化),网络的输入形状(batch_size、图片的大小,输入的通道)是不变的,否则可能会降低运行效率。

torch.backends.cudnn.deterministic = True

 上述代码的使用是为了避免因为计算的随机性造成的每次网络前馈结果略有差异引起的结果波动。

 上述文字转述自:

(28条消息) torch.backends.cudnn系列用法_猜猜我是谁.+的博客-CSDN博客

torch.backends.cudnn.enabled = True

上述代码的使用在设置使用非确定性算法

 3.argparse.ArgumentParser()的使用

        argument模块用来进行命令行接口的编写,程序定义需要的参数,然后argument解决从sys.argv解析出参数的方式,同时argument还会自动生成帮助和使用手册,并在用户给程序差内无效参数时报出错误信息。

import argparse
paper = argparse.ArgumentParser()

上述代码用来创建解析器

paper.add_srgument(name or flags...[,action][,nargs][,const][,default][.type][,choices][,required][,help][,metavar][,dest])

下面是对上述程序的逐个参数解释:

name or flags : 字符串的名字或者列表

action : 当参数在命令行中出现时使用的动作

nargs : 应该读取的命令行个数

const : 不指定参数时的默认值

type : 命令行参数应该被转换成的类型

choices : 参数可允许的值的另一个容器

required : 可选参数是否可省略

help : 参数的帮助信息

metavar : 在usage说明中的参数名称,对于必选参数默认是参数名称,对于可选参数默认是全大写的参数名称

dest : 解析后的参数名称,默认情况下,对于可选参数选取最长的名称,中划线转换为下划线

default : 表示默认路径

paper.parse_args()

 上述程序用来解析参数

exp_path = paras.exppath

上述程序用来调用参数

 上述文字转述自:

(28条消息) argparse.ArgumentParser()用法解析_开心邮递员的博客-CSDN博客

 4,importlib.import_module()的使用

        这个函数是用来动态导入对应的配置文件运行来适应不同项目的配置需要

import importlib
params = importlib.import_module('b.c.c') #绝对导入
params = importlib.import_module('.c.c',package='b') #相对导入

上述程序为使用方法,分为绝对导入,相对导入两种

#对象中取出需要的对象
params.args #取出变量
params.c    #取出class C
params.C.c  #取出class C 中的c方法

上述程序为提取需要的对象使用的方法

上述文字转述自:

 Python中动态导入对象importlib.import_module()的使用 - 灰信网(软件开发博客聚合) (freesion.com)

 5.datetime模块中strftime/strptime函数的使用

        PYthon中的datetime模块提供了日期格式和字符串格式相互转化的函数strftime/strptime

from datetime import datetime
datetime.datetime.strftime()
datetime.datetime.strptime()

上述程序中:

第一个:由日期格式转化为字符串格式的函数

第二个:由字符串格式转化为日期格式的函数

 上述函数中涉及日期时间的格式化字符串,列举如下:

%a:星期几的简写

%A:星期几的全称

%b:月份的简写

%B:月份的全称

%c:标准的日期的时间串

%C:年份的后两位数字

%d:十进制表示的每月的第几天

%D:月/天/年

%e:在两字符域中,十进制表示的每月的第几天

%F:年-月-日

%g:年份的后两位数字,使用基于周的年

%G:年份,使用基于周的年

%h:简写的月份名

%H:24小时制的小时

%I:12小时制的小时

%j:十进制表示的每年的第几天

%m:十进制表示的月份

%M:十进制表示的分钟数

%n:新行符

%p:本地的AM或PM的等价显示

%r:12小时的时间

%R:显示小时和分钟:hh:mm

%S:十进制的秒数

%t:水平制表符

%T:显示时分秒

%u:每周的第几天,星期一为第一天(值从0到6,星期一为0)

%U:一年中的星期数(00-53)星期天为星期的开始

%V:每年的第几周,使用基于周的年

%w:十进制表示的星期几,(值从0到6,星期天为0)

%W:每年的第几周,把星期一作为第一天(值从0到53)

%x:标准的日期串

%X:标准的时间串

%y:不带世纪的十进制年份(值从0到99)

%Y:带世纪部分的十进制年份
%z,%Z:时区名称,如果不能得到时区名称则返回空字符

%%:百分号

 上述文字转自:

python中datetime模块中strftime/strptime函数的使用_python_脚本之家 (jb51.net)

 5.torch.nn.DataParallel用法

        torch.nn.DataParallel函数用来使用多个GPU加速训练

model = model.cuda()
device_ids = [0,1]
model = torch.nn.DataParallel(model,device_ids=device_ids)
device_ids = [0,1]
model = torch.nn.DataParallel(model,device_ids=device_ids).cuda()

上述程序为在实际使用过程中的书写方式

CLASS torch.nn.DataParallel(model,device_ids=None,output_ddevice=None,dim=0)

参数解析:

module : 表示定义的模型

device_ids:表示训练的device

output_device:表示输出结果的device

注:最后一个参数在一般情况下是省略不写的,那么默认就是在device_ids[0],也就是在第一块卡上,如此也就解释了为什么第一块卡的显存会占用的比其他卡要多一些

上述文字转述自:

 【pytorch系列】torch.nn.DataParallel用法详解_大黑山修道-DevPress官方社区 (csdn.net)

6.torch.optim.Adam方法的使用和参数解释 

        Adam本质上是带有动量项的RMSprop,它利用梯度的一阶矩估计和二阶矩估计动态调整每个每个参数的学习率。它的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳

class torch.optim.Adam(params, lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0)

 上述程序为使用格式,具体参数的定义如下:

params(iterable) :                       可用于迭代优化的参数或者定义参数组的dicts

lr(float,optional):                         学习率(默认:1e-3)

betas(Tuple[float,float],optional):用于计算梯度的平均和平方的系数(默认:(0.9,0.999))

eps(float,optional):                     为了提高数值稳定性而添加到分母的一项(默认:1e-8)

weight_decay(float,optional):     权重衰减(如L2惩罚)(默认:0)

step(closure=None)函数:           执行单一的优化步骤

closure(callable,optional):             用于重新评估模型并返回损失的一个闭包

 注:

lr : 同时也可称为学习率或步长因子,它控制了权重的更新比率(如 0.001)  较大的值(如0.3)在学习率更新前会有更快的初始学习,而较小的值(如1.0E-5)会令训练收敛到更好的性能。

betas = (beta1,beta2)

beta1 :一阶矩估计的指数衰减率(如0.9)

beta2:二阶矩估计的指数衰减率(如0.999)。该超参数在稀疏梯度(如在NLP或计算机视觉任务中)中应该设置为接近1的数。

eps:epsilon:该参数是非常小的数,其为了防止在实现中除以零(如10E-8)

Adam的特点有:

1、结合了Adagrad善于处理系数梯度和RMSprop善于处理非平稳目标的优点

2、对内存需求较小

3、为不同的参数计算不同的自适应学习率

4、也适用于大多非凸优化-使用于大数据集和高维空间。

上述文字转述自:

 (28条消息) torch.optim优化算法理解之optim.Adam()_torch.optim.adam_shuaiqidexiaojiejie的博客-CSDN博客

(28条消息) pytorch 中 torch.optim.Adam 方法的使用和参数的解释_Ibelievesunshine的博客-CSDN博客_torch.optim.adam

 7.Python中的filter()函数的使用

        filter()函数用于过滤序列,过滤掉不符合条件的元素,返回符合条件的元素组成的新列表

filter(function,iterable)

 注:

        function 为 判断函数

        iterable  为 可迭代对象

序列中的每个元素作为参数传递给函数进行判断

返回True或者False,最后将返回的True的元素放到新列表中

def is_odd(n):return n%2 == 1
lst1 = filter(is_odd,[1,2,3,4,5,6,7,8,9,10])# lst = [1,3,5,7,9]

上方程序为实例:筛选出序列中为奇数的元素

list_num = [1, 2, 3, 0, 8, 0, 3]
print(list(filter(lambda x: x, list_num)))结果为: 
[1, 2, 3, 8, 3]

 上方程序为实例:过滤掉列表当中的数字0

注:lambda的使用

lambda 是Python预留的关键字,lambda函数是匿名函数,lambda函数有输入和输出,lambda函数一般功能简单

lambda的使用方法固定,即定义一个lambda函数

1、将lambda函数赋值给一个变量,通过这个变量间接调用该lambda函数

栗子:add = lambda x,y:x+y  这条代码定义了加法函数lambda x,y:x+y,并将其赋值给变量add,这样变量add便成为具有加法功能的函数。

2、将lambda函数赋值给其他函数,从而将其他函数用该lambda函数替换

3、将lambda函数作为其他函数的返回值,返回给调用者

4、将lambda函数作为参数传递给其他函数

        栗子:

        filter函数:此时lambda函数用于指定过滤列表元素的条件

        sorted函数:此时lambda函数用于指定对列表中所有元素进行排序的准则

        map函数: 此时lambda函数用于指定对列表中每一个元素的共同操作

        reduce函数:此时lambda函数用于指定列表中两两相邻元素的结合条件

此处文字摘自:

(28条消息) 关于Python中的lambda,这篇阅读量10万+的文章可能是你见过的最完整的讲解_肖哥shelwin的博客-CSDN博客_python lambda

list_word = ['a', 'B', 'c', 'd', 'E']
print(list(filter(lambda x: x.isupper(), list_word)))
print(list(filter(lambda x: x.islower(), list_word)))结果为:
['B', 'E']
['a', 'c', 'd']

上方程序为实例:过滤列表中数字的大小写(针对的是字母全都是大写或者小写的情况)

 上述文字摘选自:

(28条消息) python 中的 filter() 函数——用于过滤序列,过滤掉不符合条件的元素,返回符合条件的元素组成新列表。_python的filter_牛牛来了的博客-CSDN博客

相关文章:

部分库与使用方法总结(自用)

1.tqdm tqdm是Python的进度条库,可以在长循环操作中显示进度提示 tqdm.tqdm:传入数字 from tqdm import tqdm for i in tqdm(range(1, 5)):print(i)使用bar_format "{l_bar}{bar}"可以只显示进度条 from tqdm import tqdm for i in tqdm(range(1, 5), ba…...

C++实现日期类

文章目录前言1.日期类的功能分析1.大致分析2.接口设计2.具体实现1.日期类的成员函数和成员变量2.初始化(构造函数)3.对日期进行天数推算4.比较相关的运算符重载5.前置后置自增或自减6.日期相减与流插入流提取1.日期相减2.重载流插入和流提取3.总结前言 之前介绍了C…...

想成为一名专业黑客,但不知道从哪里学起?我来教你。

成为一名黑客需要学什么? 想成为一名专业黑客,但不知道从哪里学起”很多人在后台问过这个问题,今天就为你介绍成为专业黑客必须学习的十个方面的知识,希望能为迷惘中的你指明方向。 想要成为网络hacker黑客?先来学习…...

VMware ESXi 7.0 U3k Unlocker OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动版)

ESXi 7 U3 标准版集成 Intel 网卡、USB 网卡 和 NVMe 驱动 请访问原文链接:https://sysin.org/blog/vmware-esxi-7-u3-sysin/,查看最新版。原创作品,转载请保留出处。 作者主页:www.sysin.org 本次针对 2023-02-21 发布的 ESXi …...

新的计算方法:预测益生菌在不同生长条件下的相互作用

谷禾健康 益生菌可以产生有益的维生素、消化酶、必需氨基酸、免疫调节和抗菌代谢产物,从而促进人体健康,预防肠道炎症性疾病、自身免疫性疾病和胃肠道感染。其宝贵特性已得到健康行业、医疗专业人士和公众的认可。 比起单菌株益生菌,多菌株益…...

python自学之《21天学通Python》(13)——第16章 数据库编程

数据库指的是以一定方式存储在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。而我们平时所说的数据库实际上是包含了数据库管理系统(DBMS)的,数据库管理系统是为管理数据库而设计的软件系统,它一…...

[架构之路-118]-《软考-系统架构设计师》-软架构设计-11-可靠性相关设计

第11节 可靠性相关设计11.1 可靠性基本概念可靠性工程是研究产品生命周期中故障的发生、发展规律,达到预防故障,消灭故障,提高产品可用性的工程技术。信息系统的可靠性是指系统在满足一定条件的应用环境中能够正常工作的能力,可以…...

电阻串联的作用

电阻串联常见作用 第一个作用是:阻抗匹配: 因为信号源的阻抗很低,跟信号线之间阻抗不匹配,串上一个电阻后,可以改善匹配情况,以减少反射,避免振荡等。 常见的阻抗匹配方法 1、使用变压器来做…...

leetcode 1675. Minimize Deviation in Array(最小化数组偏差)

数组里面有n个正整数,里面的数字可以无限次进行如下操作: 1.偶数可以除以2 2.奇数可以乘以2 数组中任意两元素差的最大值称为偏差。 把数组中的元素进行上面2种操作,使偏差最小。 思路: 数组中现有2种数字,一种是奇数…...

特征向量中心度(eigenvector centrality)算法原理与源码解析

前言 随着图谱应用的普及,图深度学习技术也逐渐被越来越多的数据挖掘团队所青睐。传统机器学习主要是对独立同分布个体的统计学习,而图深度学习则是在此基础上扩展到了非欧式空间的图数据之上,通过借鉴NLP和CV方向的模型思想,衍生…...

Vue3 中组件的使用(上)

目录前言:一、什么是组件二、注册组件1. 全局注册2. 局部注册二、传递数据【父 -> 子】1. 字符串数组的形式2. 对象的形式三、组件事件【子 -> 父】1. 字符串数组式声明自定义事件2. 【子组件】触发组件事件3. 【父组件】监听子组件自定义事件4. 组件事件例子…...

spring-boot、spring-cloud、spring-cloud-alibaba版本对应

一、查询 spring-boot(spring-boot-starter-parent) 版本号 https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent 二、查询 spring-cloud(spring-cloud-dependencies) 版本号 https://mvnrepository.com/artifact/org.springframework…...

【沐风老师】3DMAX一键楼梯脚本插件StairGenerator使用教程

3DMAX一键楼梯插件StairGenerator,不需要花费太多的时间,轻松从2D平面图生成3D楼梯模型,生成的楼梯模型细节丰富真实。 【主要功能】 1.简单:轻松实现2D到3D建模。 2.具有最详细三维结构的台阶平面图。 3.楼梯各部件完全参数化…...

OpenShift 简介

OpenShift 是红帽 Red Hat 公司基于开源的云平台,是平台即服务(PaaS),是一种容器应用平台。允许开发人员构建、测试和部署云应用。该系统是在 K8S 核心之上添加工具,从而实现更快的应用开发、部署及扩展。 在 OpenShi…...

netty自定义封包实现

文章目录说明分享内置编码器和解码器解码器编码器代码实现创建核心类消息实体类自定义编码类自定义解码类服务端ServerHandler入口类客户端ClientHandler入口类测试参考总结说明 netty是java重要的企业级NIO,使用它可以快速实现很多功能通信功能如:http、…...

ORA error集锦

1、oralce 数据客户端需要安装的问题 保存信息为: “无法连接到数据库,因为数据库客户端软件无法加载。确保已正确安装并配置数据库客户端软件” 从百度网盘下载,并安装win32 oracle client 安装包 2、ORA错误 “执行异常,ORA-00911: inval…...

格雷码的实现

格雷码:任意两个相邻的二进制数之间只有一位不同 想必通信专业的学生应该都接触过格雷码,它出现在数电、通信原理等课程里。 如下图所示一个四位格雷码是什么样子的: 格雷码的特点: 其最大的特点是任意上下相邻的两个码值间&am…...

快到金3银4了,准备跳槽的可以看看

前两天跟朋友感慨,今年的铜九铁十、裁员、疫情导致好多人都没拿到offer!现在已经12月了,具体明年的金三银四只剩下两个月。 对于想跳槽的职场人来说,绝对要从现在开始做准备了。这时候,很多高薪技术岗、管理岗的缺口和市场需求也…...

最新BlackArch发布,提供1400款渗透测试工具

近日,BlackArch Linux新版本发布,此版本为白帽子和安全研究人员提供了大约1400款渗透测试工具,如果你是一位白帽子或者安全研究人员,这个消息无疑会让你很感兴趣。BlackArch Linux是一款基于Arch Linux的发行版,主要面…...

重走前端路JS进阶篇:This 指向与箭头函数

JavaScript 高级 This 指向规则 案例 function foo() {console.log(this)}// 1 调用方式1foo();// 2 调用方式2 放入对象中调用var obj {name: "why",foo: foo}obj.foo()// 调用方式三 通过 call/apply 调用foo.call("abc")指向定义 this 是js 给函数的…...

PHP和Node.js哪个更爽?

先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...

深度学习习题2

1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦&#xff0…...