当前位置: 首页 > 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 给函数的…...

Python基础:函数式编程

一、概述 Python是一门多范式的编程语言,它同时支持过程式、面向对象和函数式的编程范式。因此,在Python中提供了很多符合 函数式编程 风格的特性和工具。 二、lambda表达式(匿名函数) 除了 函数 中介绍的 def语句,P…...

【YBT2023寒假Day14 C】字符串题(SAM)(树链剖分)(线段树)

字符串题 题目链接:YBT2023寒假Day14 C 题目大意 对于一个字符串 S 定义 F(S) 是 fail 树上除了 0 点其它点的深度和。 G(S) 是 S 每个子串 S’ 的 F(S’) 之和。 然后一个空串,每次在后面加一个字符,要你维护这个串的 G 值。 思路 考虑…...

Tailwind CSS 在Vue中的使用

什么是Tailwind CSS? Tailwind CSS 是一个功能类优先的 CSS 框架,它集成了诸如 flex, pt-4, text-center 和 rotate-90 这样的的类,支持 hover 和 focus 样式,它们能直接在脚本标记语言中组合起来,构建出任何设计。 …...

三层楼100人办公网络如何规划设计实施(实战案例)

如何设计组网 1.采用防火墙+三层交换机+二层POE交换机+AP的方案 2.三层交换机作为网络的核心,提供网络的配置、划分和各个VLAN间的数据交换,而每个VLAN由二层交换机组建 3.网络主干设备的选型,建议网络主干设备或核心层设备选择具备第3层交换功能的高性能主干交换机。 4…...

Redis:实现全局唯一ID

Redis:实现全局唯一ID一. 概述二. 实现(1)获取初始时间戳(2)生成全局ID三. 测试为什么可以实现全局唯一?其他唯一ID策略补充:countDownLatch一. 概述 全局ID生成器:是一种在【分布式…...

webpack打包基本原理——实现webpack打包核心功能

webpack打包的基本原理 核心功能就是把我们写的模块化代码转换成浏览器能够识别运行的代码,话不多说我们一起来了解它 首先我们建一个空项目用 npm init -y 创建一个初始化的,在跟目录下创建src文件夹,src下创建index.js,add.js…...

git的使用(终端输入指令) 上

git目录前言1.创建仓库2.创建文件和修改数据状态分区![分区](https://img-blog.csdnimg.cn/d124dec6b2b14769ad20b75490f29cae.png)3 .删除、撤销重置 、和比较前言 今天带大家手把手敲一遍 git 流程: 安装一下git(详细观看我之前发的git文档&#xff0…...

react定义css样式,使用less,css模块化

引入外部 css文件 import ./index.css此时引入的样式是全局样式 使用less 安装 npm i style-loader css-loader sass-loader node-sass -D生成config文件夹 npm run eject配置 以上代码运行完,会在根目录生成config文件夹 进入 config > webpack.config.js 查找…...

基于JavaWeb的学生管理系统

文章目录 项目介绍主要功能截图:登录用户信息管理院系信息管理班级信息管理新增学生课程管理成绩管理部分代码展示设计总结项目获取方式🍅 作者主页:Java韩立 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系�…...

win11右键新建菜单添加选项

需要操作 2 处注册表, 以下以在右键新建菜单中添加 .html 为例 在主键 HKEY_CLASSES_ROOT 中,搜索 .html 找到后 ,右键点击它,选 新建 ->项, 在这里插入图片描述 项目名字是:ShellNew 新建后&#x…...