随笔分类 - Python
about Python content
多卡蒸馏模型
摘要:背景 需要对3B模型进行蒸馏,一张4090的卡无法完成实验。完成这个实验的前提是需要两张卡,一张用来加载学生模型,一张用来加载教师模型。 多卡使用 这里的多卡使用并不是像以往的方式,使用dataloaderparallel等方式,这种是数据并行的策略,不适合蒸馏的场景,因为蒸馏是一个模型做推理,一个
阅读全文
模型训练过程中的记录工具
摘要:背景 在模型训练过程中,需要记录很多数据,例如损失值,评价指标,使用的参数等,这里介绍一下可以使用的工具,方便后续使用。 工具 Pandas + openpyxl:pandas 是一个强大的数据处理库,而 openpyxl 是一个用于读写 Excel 文件的库。你可以使用 pandas 来创建和操作
阅读全文
Python一些小错误记录
摘要:append错误 这个错误主要是由于,append是原地添加,并不会返回新的数组,因此,append之后再append,添加的结果为None。错误代码如下: # 这里的tokens_processing.append之后的返回了None,所以在使用processing_result.append时,
阅读全文
Matplotlib调整图例中图形的大小
摘要:一、问题描述 在使用matplotlib画图的时候需要对图例中的图形进行放大缩写的操作,避免图例太小。问题如下: 二、解决方法 由于不同的对象解决方法有差异,这里对散点图和柱形图进行讨论。 2.1 散点图 散点类型的图像可以使用下面的代码进行图形大小的调整。 legend = plt.legend(
阅读全文
matplotlib保存文件的细节
摘要:Matplotlib保存文件 参数名 参数意义 bbox_inches 去掉图片内的空白 pad_inches 去掉图片和文件边界的空白 # 这个指令可以保存成没有外边框,没有内边框的图片格式,也可以是pdf文件。 plt.savefig('merged_images.jpg', bbox_inch
阅读全文
Python导入问题
摘要:一、背景 在Python模块倒入的方法中,存在两个问题,一个是循环导入,一个是模块导入的覆盖。在使用过程中遇到了模块导入覆盖的情况,出现了以下的错误: TypeError: 'module' object is not callable 这个错误是由于不规范的导入覆盖+模块引用冲突引起的,在Pyth
阅读全文
torch使用bool类型做检索
摘要:一、背景 在使用torch的时候,可以通过bool类型对数组进行检索操作。传统的list或者dict都是使用下标和关键字检索。而在torch中可以使用bool类型进行检索,它的的目标主要是以下功能: 替换torch中的某个值 二、使用 torch在bool检索的情况下就是将为检索位置为True的地方
阅读全文
Python从菱形继承到多继承
摘要:目录一、菱形继承与多继承二、多继承可能面临的问题三、多继承实现的方法3.1 类名继承3.2 super继承3.3 super继承和类名继承的性质四、总结参考 一、菱形继承与多继承 Python在继承方面与Java不同,Python可以进行多继承,而Java则不能多继承,替代的是使用的多接口方法。Py
阅读全文
TextAttack的使用功能
摘要:### 一、背景 [TextAttack](https://github.com/QData/TextAttack)是弗吉尼亚大学和MIT开发的一个关于快速实现文本对抗攻击的一个工具包。国内有一个清华开发的工具[OpenAttack](https://github.com/thunlp/OpenAt
阅读全文
einsum方法
摘要:## einsum求矩阵运算 #### einsum是什么 使用chatGPT解读官方的[文档](https://pytorch.org/docs/stable/generated/torch.einsum.html): ``` Einsum允许使用基于Einstein求和约定的简写格式来计算许多常
阅读全文
einops方法
摘要:#### einops方法 该方法可以快速实现矩阵的快速变化。 ``` import torch import torch.nn as nn from einops import rearrange # 快速矩阵变化 class TestAttentionQKV: def __init__(self
阅读全文
TSNE画特征图
摘要:TSNE的可视化特征结果 一、可视化特征或embeddings 1.1 二维的值 对bert输出层的可视化(这是个二维的,batch, hidden_state) codeantenna 1.2 三维的值 对bert的last_state进行可视化(这个是三维的,batch,seq_length,
阅读全文
利用virtualenvwarrper管理虚拟环境
摘要:一、背景 python虚拟环境隔离的方法有很多,包括conda,virtualenv等。在不使用conda的情况下,virtualenv+virtualenvwarrper的方法会比较方便。网上例子有很多,这里记录一下自己遇到的问题和解决方法。 二、方法 2.1 virtualenvwarrper使
阅读全文
BERT的使用
摘要:一、背景 bert是一种基于transformer的结构,也就是比较经典的attention机制,bert的思维导图模型如下所示(其他人总结的): 二、bert使用 使用bert首先需要安装transformers以及bert的模型(可以在安装完bert后使用) pip install transf
阅读全文
conllu版本问题
摘要:错误 textattack的包训练的时候出现下面的错误,更新包到4.4.2就没有出现了,但是allennlp要求这个包为1.3.1,所以这个textattack的使用可以单独开个环境。 ImportError: cannot import name 'Metadata' from 'conllu.m
阅读全文
python安装(3.6.9)
摘要:###### 一、下载工具包 我一般将python包安装到/usr/local/的文件夹下面,这里会存放安装包和安装的结果。也可以再加一个packeage的结果方便管理。 ```shell wget https://www.python.org/ftp/python/3.6.9/Python-3.6
阅读全文
python字典解构高级操作
摘要:一、背景 在进行数据展示的时候,往往需要把一堆数据存入一个字典,然后直接把字典数据输出,就可以对结果进行查看。 二、方法 ####### 2.1 常规方法 def x1(dic: dict, prefix): return dict((f"{prefix}_{key}", val) for key,
阅读全文
allennlp使用时遇到的bug(一)
摘要:一、背景 allennlp是一个对nlp攻击进行封装的工具包,基于pytorch写的,总体来说还可以,但是前后的api和设计差距较大,这里记录一下使用时遇到的下面的问题。 二、问题 2.1 错误 在使用Vocabulary.from_files的时候,从文件读取数据出现了下面的问题 Assertio
阅读全文
matplotlib中的bar图
摘要:一、背景 在最近的实验中需要使用到bar图用于数据的直观展示,这里记录一下内容。首先个人觉得虽然seaborn等工具会对这些工具进行二次封装,又时候使用起来是比较简洁,但是在做细节的设计没有这种原生的程序好,就像pip和conda、kersa和TensorFlow一样。 二、基础用法 bar图就是一
阅读全文
记录配置GPU遇到的问题
摘要:一、安装内容 只有安装了硬件驱动和工具包才可以使用GPU 1. 硬件驱动 安装显卡驱动 安装Cuda 安装cuDNN 2. 工具包 TensorFlow-gpu TensorFlow keras ······ 二、安装方法 1.安装方法和过程 具体的安装过程:可以参考这篇blog写的很详细。 2.p
阅读全文