
Python学习
文章平均质量分 55
郝同学
东南大学 九龙湖与四牌楼的匆匆过客
天津大学 津南郊区逐渐成长的算法人
欢迎各位NLPer互相交流学习!
展开
-
【Pytorch】易忘函数scatter的理解
一、Scatter函数的理解 这个函数是用一个src的源张量或者标量以及索引来修改另一个张量,常用来做one-hot编码。这个函数主要有三个参数 scatter(dim,index,src)dim:沿着哪个维度来进行索引(一会儿举个例子就明白了)index:用来进行索引的张量src:源张量或者标量# 这里是三位矩阵的情况下self[index[i][j][k]][j][k] = src[i][j][k] # if dim == 0self[i][index[i][j][k]][k] =原创 2022-02-24 23:01:54 · 564 阅读 · 0 评论 -
【Python】根据预测结果矩阵与实际结果矩阵计算模型正确率
判断两个数组对应位置相等的个数,然后计算模型预测的正确率一、问题背景二、解决方法一、问题背景 在多分类模型预测的结果中,我想知道预测的结果与实际的答案相比,其正确率是多少,这个时候我们往往是对应比较两个数组list之间对应相等的个数。因此,我大致总结了一些方法来计算此正确率。假设我们此处的预测结果和实际结果分别为:# 假设是三分类任务,存在0,1,2三种结果list1 = [1,2,0,0,1]list2 = [1,0,2,1,1]二、解决方法方法1:我立马能想到的方法就是直接遍历数组直原创 2021-11-28 21:40:22 · 2392 阅读 · 0 评论 -
【Python】易忘的某些函数用法(实时更新)
以此记录自己常忘记的函数用法一、torch.stack vs torch.cat二、python中的 * 和 ** 作用含义三、torch.Tensor.index_add_一、torch.stack vs torch.cathop = []hop.append(torch.randn(2,3))hop.append(torch.randn(2,3))'''[tensor([[ 1.2735, 0.7435, 1.9758], [-0.8915, -1.2238, 1.55原创 2021-11-04 22:01:52 · 516 阅读 · 0 评论 -
【Pytorch】pack_padded_sequence与pad_packed_sequence实战详解
一、问题背景 在NLP的相关任务中,我们使用RNN或LSTM处理文本序列时,通常来说句子的长度是不一致的,我们常常采用的方法使用< PAD >(0)来补全至相同长度的序列。虽然这个时候序列的长度是一致的,但是序列中填充了许多无效值 0 ,这个时候喂给 RNN 进行 forward 计算,不仅1.浪费计算资源,最后得到的值2.可能还会存在误差。 因此,为了解决这样的问题,在将序列送给 RNN 进行处理之前,需要采用 nn.utils.rnn.pack_padded_sequence 进行压原创 2021-10-24 15:46:24 · 2848 阅读 · 1 评论 -
Dropout层的个人理解和具体使用
一、Dropout层的作用 dropout 能够避免过拟合,我们往往会在全连接层这类参数比较多的层中使用dropout;在训练包含dropout层的神经网络中,每个批次的训练数据都是随机选择,实质是训练了多个子神经网络,因为在不同的子网络中随机忽略的权重的位置不同,最后在测试的过程中,将这些小的子网络组合起来,类似一种投票的机制来作预测,有点类似于集成学习的感觉。 关于dropout,有nn.Dropout和nn.functional.dropout两种。推荐使用nn.xxx,因为一般情况下只有训练原创 2021-08-24 23:29:34 · 38587 阅读 · 3 评论 -
【Python】去除字符串中标点符号的多种方法
一、问题背景 由于最近做nlp相关的项目,在进行数据预处理的时候,需要对文本进行分词、去停用词、词性标注、标点去除等预处理方法。 由于标点符号会影响我们分词的效果,这里我着重了解学习了标点去除的方法,总结了有以下几种,欢迎大家补充????二、解决方案以下描述了4种方法:import reimport stringsentence = "+今天=是!2021! 年/8月?1,7日★.---《七夕节@》:让我*们出门(#@)去“感受”夏天的荷尔蒙!"sentenceClean = []原创 2021-08-17 12:33:13 · 25737 阅读 · 7 评论 -
【Python】处理json文件
1. JSON介绍 首先介绍一下JSON文件格式,JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。 它的格式是以大括号区分来存储数据,json和dict非常类似,都是key-value的形式,而且json和dict也可以非常方便的通过dumps和loads互转,但是它们之间还是有区别的:json:是一种数据格式,是纯字符串。可以被解析成python的dict或其他形式。dict:是一个完整的数据结构,是对hash table这一数据结构的实现原创 2021-04-29 15:28:21 · 334 阅读 · 0 评论 -
RuntimeError: Output 0 of SelectBackward is a view and is being modified inplace.
1. 问题背景今天在浏览一些代码的时候,总是出现了以下的错误描述RuntimeError: Output 0 of SelectBackward is a view and is being modified inplace. This view is the output of a function that returns multiple views. Such functions do not allow the output views to be modified inplace. You原创 2021-04-28 14:20:22 · 8857 阅读 · 0 评论 -
【Python】合理使用requirement.txt
一、问题背景有时候我们在网上参考某些项目的时候,通常会给出requirement.txt文件,其中就是包括了本次项目所需要用到的库以及环境,一键配置好这些库函数就显得十分有必要了。还有时候我们自己电脑的环境配置好后,需要在另外的机器上写程序,这个时候一键配置也是十分有用,不然一个一个的pip install/conda install还是挺麻烦的/(ㄒoㄒ)/二、解决方案在使用Python的时候,需要把安装的Package通过requirements.txt导出来,一个命令便可部署新环境。原创 2021-03-26 11:56:46 · 16275 阅读 · 2 评论 -
【Python】jieba中文分词库官方文档总结
文章目录一、特点二、主要功能1.分词2.添加自定义词典3.关键词提取4.词性标注5.并行分词6.Tokenize:返回词语在原文的起止位置一、特点1.四种模式精确模式: 试图将句子最精确地切开,适合文本分析;全模式: 把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;搜索引擎模式: 在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。paddle模式: 利用PaddlePaddle深度学习框架,训练序列标注(双向GRU)网络模型实现分词。同时支持词性标注原创 2021-03-18 21:00:23 · 1336 阅读 · 0 评论 -
【Python】txt文件读写操作模式
python中对txt文件的读写操作模式(追加/覆盖原文件)模式可做操作若文件不存在是否覆盖备注r只能读报错-r+可读可写报错是w只能写创建是w+可读可写创建是a只能写创建否,追加写入一打开文件,文件指针自动移到文件末尾a+可读可写创建否,追加写入b以二进制模式打开文件,而不是以文本模式--python中有多种读写方式,例如:读入read()、readline()、readline原创 2021-03-15 18:55:41 · 703 阅读 · 1 评论 -
常用正则表达式速查表
一、常用正则表达式用法: 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“n"匹配字符"n"。"\n"匹配一个换行符。串行"\\"匹配"\"而"\["则匹配"["。 ^ 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n"或"\r"之后的位置。 $转载 2021-03-12 16:38:05 · 175 阅读 · 0 评论 -
【Python】字符串操作前面的u,r,b,f的作用
一、字符串前边加u:例如: u"我含有中文字符123"作用: 后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。二、字符串前边加r:应用:我们常能在正则表达式中看到,pattern = re.compile(r"吗\n|\?|?|多|哪|怎|什么|啥|么"),这样是指将该字符串表示成一个普通的字符串,没有特殊字符在原先字符串中的含义,比如\n在普通字符串中是换行的含义,而此处将其打印出来依旧是"\n"字符。如下所示:三、字符串原创 2021-03-12 16:35:23 · 361 阅读 · 0 评论 -
【Python】pip版本问题导致 pip无法使用?failed to create process.
1.问题前景 在我使用python中的pip时,提示我需要更新,我使用他提示的安装语句,莫名其妙安装失败,问题如下这也就导致原本的pip也被卸载,之后的pip就不存在了; 然后我被迫在官网下载了最新的pip版本,然后使用python setup.py install,安装了pip。然后又出现了以下问题: 稍微查阅了一下,大多都说是python的版本过多导致的,(可我把我装的另外一个python完全给卸载了,还是这样的问题)。 之后,又查阅了资料发现可以使用python -m pip来运原创 2021-01-31 16:59:33 · 642 阅读 · 6 评论 -
超详细的Vscode快捷指令大全!
以上的图片是来自于vscode官方的快捷指令大全哈哈,大家顺便可以学学英语。原创 2021-01-26 23:30:05 · 752 阅读 · 0 评论 -
python批量导入excle数据到mysql数据库,实操可用!
import xlrdimport pymysql //需要提前装好xlrd和pymysql两个库,直接使用pip install xlrd/pymysql 安装即可,比较简单。import datetimedef open_excel(): try: book = xlrd.open_workbook("C://Users//hp//XXX… …//XXX集.xlsx") #文件名,可以放绝对路径,相对路径也行 print("open excel file原创 2020-12-09 00:08:48 · 717 阅读 · 0 评论 -
import numpy 和 from numpy import * 的区别及random所有常用函数!!
首先假设你使用import numpy,则当你使用numpy库中的的函数/变量都需要在前面加上numpy,例如import numpyX0 = numpy.array([1,2,3,4,5])print(X0)from numpy import *X1 = array([1,2,3,4,5])print(X1)因此这样就存在一个缺点,在使用第二种方法时会造成混淆,就比如在numpy中有random函数,但标准库(import random)中也存在random函数,他们之间的区别如下:1原创 2020-10-15 16:03:51 · 5551 阅读 · 0 评论