Python
文章平均质量分 70
人生苦短,我用python
funNLPer
2 B A NB NLPer
展开
-
训练模型过程中优雅的指定GPU
目前训练模型大部分在单机多卡的环境下,我们通常会指定一个GPU来训练模型。在不指定GPU情况下,默认使用GPU0来训练,但是很不巧GPU0被别人占了一半显存,导致OOM错误。每次跑模型都要去看下哪张卡显存最大,然后再来修改代码,指定GPU,是不是超级烦人呢!😶🌫️,今天就介绍一个每次都由程序自动选择剩余最大的显存的GPU来训练。原创 2024-02-03 23:07:28 · 1505 阅读 · 0 评论 -
优雅的从HuggingFace下载模型
以下都以下载bloom模型为例这种方式下载会显示下载的进度及网速,因此一般推荐使用这种方式下载。如果直接使用方式来下载,不会显示任何下载信息。原创 2024-02-03 21:58:02 · 2118 阅读 · 0 评论 -
快速搭建机器学习demo: gradio教程
gradio是一个能够快速建立机器学习demo web应用的工具,仅需简单的几行代码就能构建机器学习模型的可视化交互demo,并分享给你的朋友使用。与gradio相同功能的竞品有Streamlit,相比Gradio,Streamlit相对复杂,完全熟练使用需要一定时间。原创 2023-07-19 01:11:24 · 1036 阅读 · 0 评论 -
python web开发(三): CSS样式
如下代码,其中style参数就可看成CSS,主要作用是修改对象的样式,使得网页更加美观styleheight100pxstylecolorred原创 2023-06-02 00:45:42 · 1635 阅读 · 0 评论 -
python web开发(二):HTML标签语言
如下展示了一段简单的HTML模板,标签中主要包含一些基本配置,如编码方式,标题等,注意标题的作用如下图所示原创 2023-05-11 00:17:08 · 1631 阅读 · 1 评论 -
python正则表达式
术语介绍模式正向向后查找正向向前查找负向向后查找负向向前查找正向和负向指的分别是 出现则匹配 和 不出现则匹配。原创 2023-05-05 23:53:49 · 512 阅读 · 0 评论 -
python中base64编码
base64编码原理、python使用、应用;将图片保存成字符串原创 2022-12-02 00:32:07 · 8728 阅读 · 0 评论 -
python中StringIO和BytesIO
最常见的io操作是将磁盘中的文件读到内存以及内存内容写入文I件。还有一种内存和内存之间的IO,叫,python中的StringIO和BytesIO就是类文件对象,通俗解释即:像操作文件一样在内存中操作字符串和二进制内容磁盘上的文件,就是将数据持久化到磁盘的一块区域,供后面重复使用。其优点就是持久化稳定不丢失,但是缺点也很明显,就是每次要使用都要从磁盘读入,相对内存而言很缓慢。如果只是短时间的重复利用,并不希望长期持久化,而且对速度的要求比较高,这时候就可以考虑缓存。原创 2022-11-21 23:59:28 · 1259 阅读 · 0 评论 -
python http请求之requests
requests支持HTTP的POST, GET, PUT,DELETE,HEAD 以及 OPTIONS等请求方式所有的请求方式都相同,下面以requers.get的方式为例讲解1. GET方式requests.get(url, params=None, data=None, headers=None, cookies=None, files=None, auth=None, timeout=None, a原创 2021-10-13 01:11:01 · 374 阅读 · 0 评论 -
python切片与三个点
1. 背景在torch和numpy中经常会遇到对tensor进行切片操作,如x[..., :3], [:, :2]等,对于:的操作很好理解,与python列表中操作相同,但是...是什么操作呢2. 示例以torch中的切片为例,如下import torchx = torch.rand((2,3,4))print(x)y = x[..., 2:4]z = x[..., :, -1]k = x[:, :, -1]j = x[1, ...]print("y", y)print("z:",原创 2021-10-09 23:02:15 · 1358 阅读 · 0 评论 -
使用sklear.metrics计算precision等指标
在Precision、Recall、F1-score、Micro-F1、Macro-F1、Recall@K文章中介绍了一些分类指标的理论,计算方式。在本文中将介绍使用sklearn.metrics库来计算这些指标1. accuracysklearn.metrics.accuracy_score(y_true, y_pred, normalize=True, sample_weight=None)y_true: 真实标签y_pred: 预测标签normalize: 若为True结果返回准确率,若为原创 2021-09-25 17:24:04 · 1392 阅读 · 0 评论 -
python魔法函数
Python高级语法:魔法函数原创 2021-09-23 00:28:32 · 85 阅读 · 0 评论 -
字符串转python对象
通常情况下我们会把一些python对像作为字符串保存在excel或csv文件中,而在后期读取数据的时候又想将文件中的字符串转换成原先的python对象,如列表、字典等,方便处理。最长用的方法是使用json.loads和eval两种方法。1. json.loads()在使用json.loads方法将字符串转换成python对象的时候,要注意保存文件时在将python对象转换成字符串时使用json.dumps,不要使用str,否则很容易出错 x = [1,2,3,45] f = open("原创 2021-08-10 15:45:41 · 6798 阅读 · 0 评论 -
使用conda创建虚拟环境
1. 为什么需要虚拟环境在做项目时,有可能会遇到对于python中的A包,项目甲和项目乙所需的A包的版本不同,我们不可能在做项目甲时安装A包的一个版本,在做项目乙时又将A包更新到另一个版本。虚拟环境就是为了解决这样的冲突,我们创建一个虚拟环境env1,在虚拟环境env1中安装A包的一个版本,做项目甲;创建另一个虚拟环境env2,在其中安装A包的另一个版本做项目乙。创建虚拟环境后,进入虚拟环境,系统中的各个文件夹在不同环境中仍然是共享的,只是不同环境中管理不同的包。2.使用conda创建虚拟环境创建虚原创 2021-07-07 00:05:24 · 42348 阅读 · 2 评论 -
python web开发(一):Flask入门
Flask入门1. 概述python的主流web框架有Django,tornado等,前两者功能全,适用于工业,而flask简单易上手。web应用程序最初目的是利用互联网交流工作文档。2. Flask使用2.1 入门路由解析默认是@app.route("/") ,只需输入ip地址和端口即可from flask import Flaskapp = Flask(__name__)# 路由解析: 通过用户访问的路径,匹配相应的函数(浏览器输入最后部分)@app.route("/index"原创 2021-05-26 22:26:51 · 1624 阅读 · 0 评论 -
使用xlwt库将数据写入excel
import xlwt# 1. 创建workbook对象workbook = xlwt.Workbook(encoding="utf-8") # 2. 增加一个sheet # 设置成可以覆盖原先内容worksheet = workbook.add_sheet("sheet1", cell_overwrite_ok=True) # 3. 在单元格中添加内容,第一个参数为行,第二个参数为列,第三个参数为内容 worksheet.write(0,0, "hello")# 4. 保存数据表原创 2021-05-26 17:13:35 · 996 阅读 · 0 评论 -
BeautifulSoup模块的使用
BeautifulSoup模块的使用1. 简介BeautifulSoup可以快速从HTML、XML等文件中提取数据,使用beautiful soup 之前要先使用urllib.request从指定的网址上读取HTML文件,BeautifulSoup(html, "html.parser")需要两个参数,第一参数是需要提取数据的HTML文件,第二个参数指定解析器2. BeautifulSoup的使用使用如下html文件为例展示该模块的作用<!DOCTYPE html><!-- s原创 2021-05-25 21:55:21 · 491 阅读 · 0 评论 -
pycharm 调试
原创 2021-02-24 20:39:16 · 95 阅读 · 2 评论 -
多线程和多进程
1. 概念进程是资源分配的最小单位,线程是CPU调度的最小单位一个应用程序至少包括1个进程,而1个进程包括1个或多个线程,线程的尺度更小每个进程在执行过程中拥有独立的内存单元,而一个进程的多个线程在执行过程中共享内存线程进程区别多进程多线程数据是分开的:共享复杂,需要用IPC;同步简单多线程共享进程数据:共享简单;同步复杂占用内存多,切换复杂,CPU利用率低占用内存少,切换简单,CPU利用率高创建、销毁、切换复杂,速度慢创建、销毁、切换简单,速度快编原创 2020-09-01 16:25:18 · 100 阅读 · 0 评论 -
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
1. 问题描述:已经正确安装各种python包并且命令行中导入包没有问题,环境变量也设置好了,但在Pycharm中就有问题?pycharm种总是出现ImportError:DLL load failed:找不到指定模块的错误2. 解决方法在pycharm种配置环境变量,一定要在pycharm内部配置,外部配好了也没用,具体配置如下:1.run-->EditConfigurations-->Environment variables方法2安装最新版本的pyCharm, 在其他博客上原创 2020-08-12 10:02:56 · 4100 阅读 · 0 评论 -
python中json使用
可以将python中列表,字典等保存成json对象/文件,json对象类型为str1. python对象与json对象互相转化import jsondictionary = {"a":1, "b":2, "c":3}array = [1,2,3,4]# 将python对象保存成json对象json1 = json.dumps(dictionary)json2 = json.dumps(array)print(json1)print(type(json1))print(json1[4原创 2020-07-17 15:01:53 · 172 阅读 · 0 评论 -
python中argparse模块
1. 总体流程总体流程分为以下几个步骤 导入包(1)导包import argparse(2)创建 ArgumentParser() 对象parser = argparse.ArgumentParser()(3)调用 add_argument() 方法添加参数parser.add_argument("--device", type=str, default="cuda" if torch.cuda.is_available() else "cpu", help="Device (cuda o原创 2020-07-08 14:32:29 · 749 阅读 · 0 评论 -
Python中的-m参数
参见:Python中的-m参数原创 2020-07-08 10:45:55 · 741 阅读 · 0 评论 -
python3中sort和sorted
见 python3中sort和sorted原创 2020-06-25 15:50:58 · 114 阅读 · 0 评论 -
python中装饰器@
见 理解 Python 装饰器看这一篇就够了原创 2020-06-01 10:35:28 · 126 阅读 · 0 评论 -
python 多进程和多线程编程
1. 简介多进程(multiprocessing)模块是在 Python 2.6 版本中加入的,和多线程(threading)模块类似,都是用来做并行运算的。不过Python既然有了threading,为什么还要搞一个multiprocessing呢?这是因为Python内部有一个全局解释锁(GIL),任何一个进程任何时候只允许一个线程进行CPU运算,如果一个进程中的某个线程在进行CPU运算时获得GIL,其他线程将无法进行CPU运算只能等待,使得多线程无法利用CPU多核的特性。多进程处理实际上对每个任务都原创 2020-05-30 18:08:34 · 249 阅读 · 0 评论 -
python中 sort() 函数
python2中的sort函数list.sort(cmp=None, key=None, reverse=False)cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。reverse -- 排序规则,reverse = True 降序, ...原创 2020-05-04 01:03:43 · 3045 阅读 · 0 评论 -
pandas
pandas教程1.DataFrame1.1 直接创建df = pd.DataFrame(np.random.randn(4,4), index=list("abcd"), columns=list("ABCD"))print(df)result: A B C D a 0.127592 -0.649874 1.02271...原创 2020-03-18 21:12:55 · 1215 阅读 · 0 评论 -
python中global和nonlocal作用域
1. globalglobal关键字用来在函数或其他局部作用域中使用全局变量。但是如果不修改全局变量也可以不使用global关键字。gcount = 0def global_test(): gcount+=1 print (gcount)global_test()输出Traceback (most recent call last): File "D:\Deskt...原创 2020-02-23 21:40:14 · 469 阅读 · 0 评论 -
python中defaultdict用法
python中defaultdict用法详解简介普通的字典,用法一般是dict={},添加元素的只需要dict[element] =value即,调用的时候也是如此,dict[element] = xxx,但前提是element字典里,如果不在字典里就会报错defaultdict的作用是在于,当字典里的key不存在但被查找时,返回的不是keyError而是一个默认值defaultdict使...原创 2020-02-23 18:25:11 · 390 阅读 · 0 评论 -
python --- *args和**kwargs
*args和**kwargs*args是所有参数的数组;**kwargs参数是字典形式,具体见实例:def test(a,*args,**kwargs): print a print args print kwargstest(1,2,3,d='4',e=5)输出:1(2, 3){'e': 5, 'd': '4'}示例2:def foo(*args, ...原创 2020-01-18 11:13:43 · 108 阅读 · 0 评论 -
python基础---日志logging模块
logging模块使用日志的作用在一般情况下,日志作用相当于print的作用,用显示程序运行当中的一些信息,如当前迭代次数等,但是有时候我们会让程序在后台运行,此时print函数将失去作用,我们需要将程序运行的信息存放在文件中,最长见的是linux中nohup.out文件,事后我们可以从日志文件中查看程序运行的一些信息logging模块的日志等级从低到高为:* DEBUG* INFO...原创 2020-01-10 21:39:14 · 285 阅读 · 0 评论