自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 记录python读写mysql/clickhouse/odps等常见数据库

记录读写常用数据库

2022-05-23 15:17:41 1765 1

原创 pytorch实现transformer添加位置信息构建分类模型

transformer模型现在已经广泛应用于NLP、CV等各种场景并且取得很好的效果,在此记录一下如何使用pytorch来构建Transformer模型进行分类,具体代码如下:import torchimport numpy as npimport torch.nn as nnfrom configs.config import optclass trans_model(nn.Module): def __init__(self, d_model,nhead,num_layers):

2022-05-01 15:18:33 709

原创 数据增强算法SMOTE的实验结果分析

有一份类别不平衡的数据集,正负类数据量分别为3W和50W,想要使用smote算法对正类数据进行增强看一下实际效果,具体实验结果如下:1、原始数据结果:2、正类数据增强1W条3、正类数据增加一倍即3W条4、正类数据增加5W条5、增加至正负类比例为1:1指标梳理如下:––––––––––...

2022-04-29 18:08:13 1779

原创 python的retry重试机制

在读取数据库等场景中有时候会遇到连接失败等情况,如果不加处理就会导致程序直接报错停止运行,为了避免程序停止运行,我们可以使用python的retry包来帮助我们很好的实现重试机制,也就是当程序报错时可以重复执行代码,具体代码如下from retrying import retry@retry(stop_max_attempt_number=5, wait_fixed=20)def read_data(): pass其中stop_max_attempt_number是指重复运行的次数;wait

2022-04-26 17:27:33 2229

原创 softmax锐化操作

有时会遇到数据特别集中的分布在某一个区间,如果要在这个区间内选取一个值作为阈值时,选取的阈值稍微有些变动就会导致数据量变化很大,因此需要将密集分布的数据分散开来,此时可以用到softmax的锐化操作,代码如下:import numpy as npdef softmax(x,t): x = x/t # 对输入进行锐化操作,其中t是系数 x = np.exp(x) # 对所有元素求指数 tmp = np.sum(x) # 求元素和 x /= tmp # 求so

2022-04-25 14:30:11 427

原创 python对list中的元素进行固定分组

在某些场景中需要对list中的元素进行分组,并且在多次分组过程中同一个元素需要固定分配在某一个组中,通常的想法是固定随机数种子以后使用random进行随机抽取,但是当list中的元素的数量或者位置发生改变时同一个元素的组别就会发生变化,示例如下:import randomrandom.seed(2022)test1 = [1,2,3,4,5,6,7,8,9,10]res1 = random.sample(test1,3)print(res1)print('---分割线---')test2

2022-04-12 17:32:27 2376

原创 python统计每个区间的数值数量

在日常工作生活中经常会遇到统计一个列表中不同区间的数值数量的问题,在此记录一下如何使用python进行统计import randomimport pandas as pdscore = [random.randint(0,10) for i in range(100)] # 此处随机生成一个数值列表score = pd.Series(score)se1 = pd.cut(score, [0,1,2,5,8,10]) # 统计0-1,1-2依次类推各个区间的数值数量print(se1.value_

2022-04-07 18:20:53 10732 3

原创 python+selenium+webdriver

最近需要实现一个爬虫来获取网页数据,先对内容进行梳理。大概思路:使用selenium+webdriver可以模仿人工打开浏览器,之后获取浏览器的html代码,再对html代码进行解析便可获得所需数据一、下载所需安装包所需安装包如下1)webdriver(下载地址)2)chrome浏览器下载地址webdriver和chrome浏览器的版本必须对应!!二、少量打开关闭浏览器的情况from selenium import webdriver# 存放下载的hromedriver的路径chrom

2022-03-07 18:01:05 2986

原创 简单梳理hadoop、spark、storm、flink等大数据组件之间的关系

在讨论项目架构时经常会提到spark、flink等大数据组件,作为小白的我对这些组件的功能总是有些模糊,趁年底工作量不大找了些资料学习一下,在此处对所理解的内容进行大概梳理,不对的地方请大家指正。1、hadoop/spark/storm/flink1)hadoop和spark是更偏向于对大量离线数据进行批量计算,提高计算速度2)storm和flink适用于实时在线数据,即针对源源不断产生的数据进行实时处理。至于storm和flink之间的区别在于flink的实时性和吞吐量等要比storm高。上述四

2022-01-28 15:59:41 5386

原创 简单梳理kafka架构原理

由于最近使用到了kafka,因此在网上找了一些学习资料相要了解kafka的原理,但是看完以后过几天就会忘,在此处简单梳理一下kafka的大概架构便于回忆。1、大概架构如下图,包含主题、分区、副本等几个概念1)其中topic的作用很容易理解,类似于不同数据的分区2)topic下又包含多个分区(partition),分区的作用在于分布式存储和分布式消费以降低负载压力3)分区下又包含多个副本,包括leader副本和follow副本,其中只有leader副本与外界进行交互,follow副本只是对leade

2022-01-27 17:12:55 1280

原创 python多进程使用方法

经常会用到python的多进程来提高脚本的时间性能,在此简单记录一下python多进程的使用方式1、首先记录只有一个参数时的使用方式from multiprocessing import Poolpool = Pool(10) #此处代表开启10个进程def process(nums): result = num + 1 return resultnums = [1,2,3,4,5,6] # nums为一个可遍历的数据类型results = pool.map(process,nums)

2022-01-21 15:01:06 1081

原创 记录Python生产和消费kafka

1、安装kafka的python包pip install kafka-python2、异步发送kafka数据import jsonfrom kafka import KafkaProducer, KafkaConsumerproducer = KafkaProducer(bootstrap_servers=['xx.xx.xx.xx:xxxx']) # 此处传入kafka的地址和端口msg = json.dumps(data).encode() # 必须要编码为字节类型的数据,不可以用utf

2021-12-13 17:23:27 3594

原创 python生成requirement.txt并批量安装

在python代码迁移环境时需要保证各个依赖包版本一致以避免出现一些问题,批量安装依赖包方法如下:1)生成requirement.txt在服务器中切换到项目路径下,执行以下命令:pip freeze > requirement.txt所生成的requirement.txt中包含依赖包名和版本2)批量安装依赖包在另一个机器环境中执行以下命令,就会安装requirement.txt中的依赖包并且版本一致pip install -r requirement.txt...

2021-09-16 11:31:36 1016

原创 Pytorch model.eval()的作用

使用pytorch训练和预测时会分别使用到以下两行代码:model.train()model.eval()后来想了解model.eval()的具体作用,在网上查找资料大都是以下原因:模型中有BatchNormalization和Dropout,在预测时使用model.eval()后会将其关闭以免影响预测结果。没有看到BN和Dropout是具体如何影响预测结果的,直到看到这篇博客中的内容才有所理解,个人理解如下:1)训练过程中BN的变化。在训练过程中BN会不断的计算均值和方差,训练结束后得到最

2021-08-16 20:50:12 16960

原创 记录pycharm中添加gitignore失效的解决方法

使用pycharm远程连接git进行代码更新版本控制时非常方便,但是包含密码的配置文件等敏感文件又不能上传git,因此就需要将其添加到gitignore文件中,以避免将其上传至git,但是有时候会失效,经过查找资料了解到删除其缓存文件即可,在命令行中输入如下代码:git rm -r --cached 'xxxxx' # xxxx代表上传gitignore失效的文件参考:https://www.jianshu.com/p/933c9453bec4...

2021-08-10 20:33:20 527

原创 记录linux系统安装mysql

安装部分参考菜鸟教程.简单易上手,按照上述教程安装后遇到以下两个问题问题一:无法远程连接假设服务器ip地址为:10.20.30.40,使用如下linux命令行:mysql -h 10.20.30.40 -u root -p输入密码后无法连接,但是使用以下命令行却可以连接mysql -h 127.0.0.1 -u root -p针对上述问题经过查找资料可使用以下方案解决:1)登录Mysqlmysql -h 127.0.0.1 -u root -p2)执行以下命令use mysql

2021-08-03 17:28:04 119 2

原创 记录linux系统安装GPU版pytorch

记录linux系统安装GPU版pytorch1、确认服务器是否有显卡执行如下命令:lspci | grep -i nvidia1)如果没有任何输出信息则代表服务器中没有显卡2)如果输出NVIDIA相关信息则代表服务器中有显卡2、安装显卡驱动1)在 NVIDIA官网依据自己的显卡型号下载对应的驱动,需要选择对应的CUDA版本,记住自己所选的CUDA版本,后续会使用到。2)下载得到run文件,上传至服务器后执行以下命令安装驱动:./xxxxxx.run #xxxxxx.run为驱动的文件

2021-06-11 17:14:40 579

原创 修复Mysql:ERROR 1030 (HY000): Got error 28 from storage engine

最近遇到mysql数据库报错:ERROR 1030 (HY000): Got error 28 from storage engine的问题,这个问题是由于Mysql临时空间目录下可以空间不足造成的,折腾了好久,现在记录一下完整过程1)查看Mysql临时空间目录命令行连接Mysql后执行以下命令:show variables like '%dir%';出现以下界面:basedir | /usr/local/mysql || binlog_direct_non_transactional_upd

2021-05-31 11:42:40 3391

原创 记录如何删除gitlab中的文件(包括历史提交记录)

当无意间在git中上传了敏感信息后,需要将代码文件(包括历史提交记录)删除,小白折腾了好半天,在此记录。1)首先将Git中的代码clone至本地打开终端# clone代码至本地mkdir gitlab(自己自定义文件夹名字)cd gitlabgit clone xxxxxxx(代表gitlab中的路径)2)切换分支假设gitlab中的工程名字为“project”,将Git中的代码clone至本地后,在本地会存储“project”中的所有内容,切换到“project”目录下切换分支。#切换

2021-05-17 21:00:50 4631

原创 关于多标签分类任务的损失函数和评价指标的一点理解

关于多标签分类任务的损失函数和评价指标的一点理解之前有接触到多标签分类任务,但是主要关注点都放在模型结构中,最近关于多标签分类任务进行了一个讨论,发现其中有些细节不是太清楚,经过查阅资料逐渐理解,现在此记录。多标签分类任务损失函数在二分类、多分类任务中通常使用交叉熵损失函数,即Pytorch中的CrossEntorpy,但是在多标签分类任务中使用的是BCEWithLogitsLoss函数。BCEWithLogitsLoss与CrossEntorpy的不同之处在于计算样本所属类别概率值时使用的计算函数

2021-03-19 17:31:14 3311 3

原创 Pytorch实现seq2seq模型并站在小白的角度进行疑惑记录

之前只学习了seq2seq模型的原理,包括其中的注意力机制,大致原理是了解了,最近想动手实现模型结构,但是在动手落地的时候又遇到一些细节问题,现对疑惑问题的相关理解进行记录。Q1:seq2seq模型中包含编码器和解码器(RNN/LSTM),编码器的的会对输入句子进行编码得到语义向量,并作为解码器的输入,那么编码器的输出是如何作为解码器的输入呢,在哪里输入到解码器?A1:编码器编码得到的语义向量(即源句子的语义向量)是指编码器隐藏层向量,将编码向量输入到解码器是指使用编码器的隐藏层向量来初始化解码器隐藏层

2021-02-23 19:35:14 243

原创 NLP博客论文资料汇总(逐渐更新)

一、文本分类1、训练技巧https://zhuanlan.zhihu.com/p/183852900AINLP公众号文章“深度学习文本分类|模型&代码&技巧”(不知道该怎么放公众号链接→_→)2、标签噪声问题Label Confusion Learning to Enhance Text Classification Models(AAAI2021)An Effective Label Noise Model for DNN Text Classification(NAACL20

2021-02-03 09:23:12 130

原创 简单记录fasttext进行文本分类代码

import fasttextdef train_model(input_path,output_path,dim=100,epoch=5,lr=0.1,loss='softmax'): model = fasttext.train_supervised(input_path,label='__label__',dim=dim,epoch=epoch,lr=lr,wordNgrams=2,loss=loss) model.save_model(output_path) return model#

2020-12-31 15:33:05 523

原创 python简单实现注意力机制

import numpy as npimport torch.nn as nnfrom sklearn.metrics.pairwise import cosine_similaritysoftmax = nn.Softmax()#设置查询向量和待查询向量q = np.array([[1,2,3]])#使用cosine_similarity函数必须为二维向量v = np.array([[1,2,3],[4,5,6]])#计算q和v中每个向量之间的attention得分,此处使用余弦相似度

2020-11-19 17:17:13 4851 3

原创 Pytorch实现模型蒸馏

简单记录一下使用Pytorch进行模型蒸馏的主要代码,,其余数据处理的内容可以另行补充import torchimport torch.nn as nnimport numpy as npfrom torch.nn import CrossEntropyLossfrom torch.utils.data import TensorDataset,DataLoader,SequentialSamplerclass model(nn.Module): def __init__(self,inp

2020-11-18 17:05:35 4080 9

原创 Pytorch实现模型剪枝

最近在看剪枝、蒸馏等模型压缩相关的资料,在此简单记录一下如何使用pytorch进行模型剪枝// An highlighted blockimport torchimport torch.nn as nnimport torch.nn.utils.prune as pruneclass model(nn.Module): def __init__(self.input_dim,hidden_dim,output_dim): super(model,self).__init__() sel

2020-11-17 14:54:05 2762 8

原创 Echarts修改坐标轴字体大小及字体倾斜

最近在工作过程中经常在Echarts官网的实例中进行可视化编辑,但是又只是简单了解一点点点点的前端代码,每次遇到需要修改字体等要求时都需要去查询修改方式,索性在此处记录下便于以后查找使用。以Echarts官网中的柱状图()为例:...

2020-09-02 22:22:07 6941 1

原创 详细记录linux安装neo4j图数据库并导入csv数据

linux安装neo4j图数据库并导入csv数据linux安装neo4j主要包括以下两部分:1)安装相对应版本的JDK2)配置neo4j下文将对上述两部分进行详细描述,在安装过程中使用neo4j的3.5.19版本,其所需的JDK环境是jdk1.8。neo4j下载地址: http://we-yun.com/index.php/blog/releases-56.html.1、安装JDK1)上传并解压将所下载的JDK压缩包上传到服务器指定目录下,例如上传到“/usr/local”目录下,执行以下命

2020-06-27 21:02:46 1290

原创 记录训练神经网络过程中常用的权值共享和不同层赋予不同学习率等方法

权值共享import torchimport torch.nn as nnclass model(nn.Module): def __init__(self): super(model,self).__init__() self.lstm = nn.LSTM(input_size = 10,hidden_size = 5) self.linear = nn.Linear(in...

2020-04-05 18:56:32 1353 2

原创 记录pytorch常用的维度转换方法

对于pytorch常用的维度转换方法一直不熟悉,今天在网上查了资料,简单尝试之后汇总记录一下,方便以后查找import torch#**********生成数据**********#***生成固定数据***test1 = torch.tensor([[1,2,3],[4,5,6]])#***生成随机数据***test = torch.rand(2,4)#***生成符合高斯分布的随...

2020-04-02 20:28:11 1466

原创 流水账式对Transformer encoder计算流程的梳理

流水账式对Transformer encoder计算流程的梳理之前看过一些关于Transformer的讲解资料,对self-attention讲解的非常清楚,学习到了self-attention内部的计算过程,但是自己对编码器整体部分的self-attention还有multi head等总是存在一点模糊,没有特别清晰的认知,今天第二次看BERT源码,对编码器的整体部分有了更加深入清晰一点的认...

2020-03-27 14:35:26 368

原创 Python字典排序/序列数据切分/日期变换/正则清洗数据

自己偶尔会用到一些python的语法进行数据处理,用的时候又忘记了,去百度搜索又要搜索半天,干脆自己记录下来,下次再用到直接来copy。以列表中的某个元素为索引进行排序// An highlighted block#test是一个二维数组(列表),以每一个一级元素中的第一个元素进行排序test = [[1,2,3],[9,8,7],[6,5,4]]sort_test = sorted(test,key=lambda x:x[0],reverse = True)#reverse = True时降序排

2020-03-25 19:50:00 325

原创 BERT文本分类论文笔记系列:Improving BERT Fine-Tuning via Self=Ensemble and Self-Distillation

Improving BERT Fine-Tuning via Self=Ensemble and Self-Distillation基本信息机构:复旦大学 华为公司时间:2020下载地址: link.

2020-03-12 19:01:37 1587

原创 样本不均衡分类问题

样本不均衡导致分类结果较差的本质原因样本不均衡包括样本类别不均衡和样本难易程度不均衡,样本不均衡导致的分类效果较差本质上是样本难易程度不均衡导致的[^1]。对本质原因的个人理解个人理解,如果一个样本集中的所有样本都能够被一个模型非常容易的进行分类,即使样本不同类别的数量差距较大,模型也能够达到比较好的分类效果。1、人眼(可以看做一个模型)去区分鲸鱼和狗两种动物,由于两个类别的样本差别较大,...

2020-02-24 21:19:05 956

原创 记录python3生成词云和绘制loss曲线的方式,方便以后查找使用

记录python3生成词云的方式,方便以后查找使用from wordcloud import WordCloudimport matplotlib.pyplot as pltcloud = WordCloud(font_path = '', background_color = 'white', max_words = 200, max_font_size = 40, collocations = False, scale = 4) # scale代表

2020-01-15 16:27:19 395

原创 导数和梯度

突然出现的疑惑阅读神经网络通过梯度下降算法进行反向传播优化参数的相关资料时,突然想到权重更新首先是通过输出函数对权重求偏导,之后在原有权重值得情况下进行更新(减去或者加上偏导值),那难道求到的偏导就是梯度嘛,这样岂不是梯度和偏导是同样的含义,梯度和偏导之间又有什么关系呢?查找资料解惑最初在网上学习梯度下降时,基本上都会看到资料以“下山”为例来讲解梯度,下山方向最快的方向就是梯度方向,最开始只...

2020-01-09 15:52:30 431

原创 深度学习易混淆小知识积累—特征选择/特征抽取/学习率衰减/梯度裁剪

特征选择一个样本会有多个特征,例如西瓜包括纹理、颜色、甜度等特征,特征选择的意义即在于原始特征集合中选择一个子集,使得模型效果最好,例如在西瓜的纹理、颜色、甜度、根蒂等原始特征中选择纹理和颜色两个特征子集,去除冗余信息。一句话总结:在原始特征集合中选取特征子集。特征抽取特征抽取是将原始特征空间映射到新的特征空间,例如从三维空间映射到二维空间,其目的在于使用较少的特征来表示原始特征空间中的绝大...

2020-01-07 10:14:46 547

原创 kmeans DBSCAN LDA聚类 TSNE对聚类效果进行可视化展示

kmeans DBSCAN LDA聚类 TSNE对聚类效果进行可视化展示对代码进行记录,方便以后使用kmeans聚类代码from sklearn.cluster import KMeanskm_cluster = KMeans(n_clusters=3, max_iter=300, n_init=40,init='k-means++', n_jobs=-1)result = km_...

2019-12-19 11:23:17 1933

原创 记录linux(centos7)安装jupyter

1、安装ipython和jupyterpip install ipythonpip install jupyter2、生成配置文件jupyter notebook --generate-config3、生成密码python3In[1]:from notebook.auth import passwdIn[2]:passwd()Enter password:xxx(自己设置密码)...

2019-11-18 11:34:44 475

原创 小白对于BERT细节的一点理解

小白对于BERT细节的一点理解工作以后跟着同事学习NLP相关内容,之前的一些层归一化、归一化等相关知识还不牢固,希望在周末闲暇时间多多弥补,最近看了BERT的相关内容,在此对其进行记录整理,以便于日后复习回顾,记录有不正确的地方,还请指出。初相识最初在博客看过对于BERT的讲解,阅读原始论文,发现BERT主要包括以下三点内容:1、使用Transformer的进行双向训练。2、输入向量包括...

2019-11-10 11:31:36 3538 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除