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

news/2024/4/27 9:47:54/文章来源:https://blog.csdn.net/weixin_46178977/article/details/129194838

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博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_73728.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

并发编程学习篇从0-1合集

一、synchronized 一、原子性、有序性、可见性 1.1 原子性 数据库的事务:ACID A:原子性-事务是一个最小的执行的单位,一次事务的多次操作要么都成功,要么都失败。 并发编程的原子性:一个或多个指令在CPU执行过程中…

用Python获取弹幕的两种方式(一种简单但量少,另一量大管饱)

前言 弹幕可以给观众一种“实时互动”的错觉,虽然不同弹幕的发送时间有所区别,但是其只会在视频中特定的一个时间点出现,因此在相同时刻发送的弹幕基本上也具有相同的主题,在参与评论时就会有与其他观众同时评论的错觉。 在国内…

怎么从零开始学黑客,黑客零基础怎么自学

很多朋友对成为黑客很感兴趣,很大原因是因为看到电影中黑客的情节觉的特别的酷,看到他们动动手指就能进入任何系统,还有很多走上黑客之路的朋友仅仅是因为自己的qq被盗了,或者游戏里的装备被别人偷了,想要自己盗回来&a…

听车企做开发朋友说,面试Framework 必问~

近期听在车企工作的朋友说,今年去他们公司面试的人比往年增长了30%左右,但实际面试达到标准的人屈指可数,大多都是从 Android 开发方向转过来的。 车企招聘要求有哪些? 每个车企因为业务部门的不同,他们的要求也会有…

Linux操作系统基础知识命令参数详解

Linux操作系统 RAID分组 RAID JBOD RAID JBOD的意思是Just a Bunch Of Disks,是将多块硬盘串联起来组成一个大的存储设备,从某种意义上说这种类型不被算作RAID,在维基百科里JBOD同时也被归入非RAID架构。RAID JBOD将所有的磁盘串联成一个单…

保持超低温环境新方法:功耗降至十分之一!

(图片来源:网络)量子比特是量子计算机的主要构建部分,然而热量会导致量子比特容易出错,因此量子系统通常保存在超低温稀释制冷机内,可以将温度保持在绝对零度(−273.15℃)以上。但是…

如何使评论具有可操作性?取悦客户的指南

永远不要低估承认的力量。 当品牌与客户互动时,认可会带来更好的关系和更好的沟通。与买家和客户建立更多的个人联系意味着品牌需要证明他们支持他们的产品和客户。评论是利用客户分享他们的故事的那些时刻的绝佳机会。 为什么评论在 SaaS 中至关重要 在 B2B 软件的…

【python学习笔记】:如何去除字符串中空格

在输入数据时,很有可能会无意中输入多余的空格,或者在一些场景中,字符串前后不允许出现空格和特殊字符,此时就需要去除字符串中的空格和特殊字符。 【注意:这里的特殊字符,指的是制表符(\t&…

ASEMI高压MOS管ASE65R330参数,ASE65R330图片

编辑-Z ASEMI高压MOS管ASE65R330参数: 型号:ASE65R330 漏极-源极电压(VDS):650V 栅源电压(VGS):20V 漏极电流(ID):12.5A 功耗(P…

57 - 深入解析任务调度

---- 整理自狄泰软件唐佐林老师课程 文章目录1. 问题1.1 思考1.2 实例分析:问题分析及解决2. 深入讨论2.1 任务调度的定义2.2 关于调度算法的分类2.3 什么时候进行任务调度2.4 任务的分类2.5 关于优先级调度2.6 问题2.7 调度算法的终极目标2.8 课后扩展1. 问题 系统…

在windows11上安装openssh服务端并修改端口号

在windows11上安装openssh服务端并修改端口号 目录1.软件下载地址2.修改端口3.启动ssh原文链接:https://blog.csdn.net/qq_62129885/article/details/1268467751.软件下载地址 Release v9.2.0.0p1-Beta PowerShell/Win32-OpenSSH (github.com) https://github.co…

浅谈智能电力运维管理系统在物业小区的应用分析

安科瑞 李亚俊 0引言 由于部分住宅小区存在电力设施纸质档案破损缺失、产权分界不清、查找故障点所在箱变(箱式变电站,下同)位置困难或小区出入口路径不明等情况,影响了抢修效率。为此,国网辽宁沈阳市沈北新区供电公…

Nacos Ignore the empty nacos configuration and get it based on dataId

1.配置错误 dataId问题 启动日志: 使用properties格式的文件: Ignore the empty nacos configuration and get it based on dataId[xxx-server] & group[DEFAULT_GROUP] Ignore the empty nacos configuration and get it based on dataId[xxx-s…

python 自动化测试 pytest 的使用

pytest 是一款以python为开发语言的第三方测试,主要特点如下: 比自带的 unittest 更简洁高效,兼容 unittest框架 支持参数化 可以更精确的控制要测试的测试用例 丰富的插件,已有300多个各种各样的插件,也可自定义扩…

【JDK8新特性之Stream流-Stream结果收集案例实操】

一.JDK8新特性之Stream流-Stream结果收集以及案例实操 二.Stream结果收集(collect函数)-实例实操 2.1 结果收集到集合中 /*** Stream将结果收集到集合中以及具体的实现 collect*/Testpublic void test01(){// 收集到List中 接口List<Integer> list Stream.of(1, 2, 3…

代码随想录【Day23】| 669. 修剪二叉搜索树、108. 将有序数组转换为二叉搜索树、538. 把二叉搜索树转换为累加树

669. 修剪二叉搜索树 题目链接 题目描述&#xff1a; 给定一个二叉搜索树&#xff0c;同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[L, R]中 (R>L) 。你可能需要改变树的根节点&#xff0c;所以结果应当返回修剪好的二叉搜索树的新…

Git ---- GitHub 操作

Git ---- GitHub 操作1. 创建远程仓库2. 远程仓库操作1. 创建爱你远程仓库别名2. 推送本地分支到远程仓库3. 克隆远程仓库到本地4. 邀请加入团队5. 拉取远程库内容3. 跨团队协作4. SSH 免密登录GitHub 网址&#xff1a;https://github.com/ Ps&#xff1a;全球最大同性交友网站…

makdown模版参考

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

RK系列(RK3568) i2s 音频输入 麦克风驱动

平台&#xff1a;Android12SOC&#xff1a;RK3568外围芯片&#xff1a;XS9922i2s简介&#xff1a;从上图看I2s主要的线有&#xff1a;SDO SCLK LRCK MCLK I2S协议只定义三根信号线&#xff1a;串行时钟信号SCLK(BCLK)、数据信号SD和左右声道选择信号WS。&#xff08;1&#xff…

Leetcode力扣秋招刷题路-0103

从0开始的秋招刷题路&#xff0c;记录下所刷每道题的题解&#xff0c;帮助自己回顾总结 103. 二叉树的锯齿形层序遍历 给你二叉树的根节点 root &#xff0c;返回其节点值的 锯齿形层序遍历 。&#xff08;即先从左往右&#xff0c;再从右往左进行下一层遍历&#xff0c;以此…