自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 几种常用的相对位置编码

绝对位置编码绝对位置编码一般形式的带绝对位置编码的Attention形式如下:{qi=(xi+pi)WQki=(xi+ki)WKvi=(xi+vi)WVai,j=softmax(qikjT)oi=∑jai,jvj \left\{\begin{aligned}q_i & = &(x_i+p_i)W_Q \\k_i & = & (x_i+k_i)W_K\\v_i & = & (x_i+v_i)W_V\\a_{i,j} & = & so

2021-11-02 22:47:39 2812

原创 对抗训练及虚拟对抗

从苏神blog整理,记录下加深记忆,原始链接虚拟对抗训练即在模型的训练过程中对输入xxx人为的增加扰动,增加最终模型的鲁棒性。最早的对抗训练可以统一写成如下格式:min⁡θE(x,y) D[max⁡△x∈ΩL(x+△x,y;θ)]\min_\theta E_{(x, y)~D}[\max_{\triangle x \in \Omega}L(x+\triangle x, y; \theta)]θmin​E(x,y) D​[△x∈Ωmax​L(x+△x,y;θ)]其中DDD代表训练集,

2021-11-02 16:36:15 738

原创 nlp subword(BPE、ULM)简介

简介Byte Pair Encoding(BPE)详细内容可参考这里BPE(字节对)编码或二元编码是一种简单的数据压缩形式,其中最常见的一对连续字节数据被替换为该数据中不存在的字节。后期使用时需要一个替换表来重建原始数据。OpenAI GPT-2 与Facebook RoBERTa均采用此方法构建subword vector.算法:准备足够大的训练语料确定期望的subword词表大小将单词拆分为字符序列并在末尾添加后缀“ </ w>”,统计单词频率。本阶段的subword的粒度是

2021-11-02 14:05:27 723

原创 bert-as-service的优化浅析

一、服务部署使用zeroMQ的Python实现PyZMQ,它提供了轻量级和快速的消息传递实现。C/S消息传递的简单使用示例如下:import zmqimport zmq.decorators as zmqd@zmqd.socket(zmq.PUSH)def send(sock): sock.bind('tcp://*:5555') sock.send(b'hello') # in another process @zmqd.socket(zmq.PULL)def re

2021-10-20 17:46:53 356

原创 Matthews相关系数

马休斯相关系数是衡量二分类模型结果的评估指标之一,具体参考Matthews Correlation Coefficient is The Best Classification Metric You’ve Never Heard Of,它能解决不均衡类别数据的指标衡量问题,首先介绍precision、recall及F1-score指标存在的问题。precision、recall及F1定义混淆矩阵的定义如下:positive(true)negative(true)positive(

2021-10-15 11:43:45 2680

原创 使用bert-as-server获取句子embedding

需求场景由于最近一直在处理nlp任务,为了提高模型的泛化性,经常使用bert预训练模型在下游任务微调,但是在实际测试中发现,由于训练数据量不大,bert层参数的固定与否对最终结果的精度影响并不大.为了方便,想着将bert只用作固定的embedding,后续的所有Nlp任务都可基于embedding建模,后面可接全连接接层,cnn,blstm,crf等.最方便的方法就是将Bert作为一个微服务部署在服务器,该服务返回句子embedding后的结果,具体可以为bert最后一层向量,包括cls、及每个字符对

2021-01-16 15:46:33 811

原创 Chinese NER Using Lattice LSTM

一、简介论文地址:https://arxiv.org/pdf/1805.02023.pdf源码地址:https://github.com/jiesutd/LatticeLSTM二、相关模型介绍先介绍训练embedding的经典方法: embedding的训练方法,经典的有word2vec, fasttext有现成的包可以直接训练:gensim, fasttext2.1 基于字符的模型基于纯字符的模型比较简单,模型结构如下:character -> embedding -> (Bi

2020-06-01 21:49:20 347

原创 Improving Named Entity Recognition for Chinese Social Media with Word Segmentation Representation Le

简介文章主要贡献将训练分词的模型(单向LSTM-CRF)与NER的训练合并来试图提高NER模型的性能。论文地址: https://arxiv.org/pdf/1603.00786.pdf代码gitlab地址: https://github.com/hltcoe/golden-horse模型结构模型的总体结构如下:左边是中文分词的模型结构(LSTM+CRF),右边是NER的模型结构,NER模型的CRF前面的最后一层主要使用了三个特征:字符的词性embedding字符的embedding,即

2020-06-01 21:18:12 610

原创 python中的单元测试

一、单元测试(Unit Testing)简介转载自:https://www.cnblogs.com/sweet-jh/p/6142866.html1.1 什么是单元测试单元测试是检测一小段代码的良好实践,典型的单元测试是测试独立的function,要保证这个测试是单独孤立的。如果你写的测试用了外部的资源,比如网络或者数据库,它就不是一个单元测试。1.2 单元测试的好处:单元测试可以很好...

2020-03-28 17:33:41 554

原创 几款好用的python工具

1、PySnooper–调试工具包安装:pip install pysnooper在需要调试的函数上使用PySnooper添加一个装饰器,就能获得运行函数的log,包括执行的代码行、执行时间及局部变量发生的变化的时间示例import pysnooper@pysnooper.snoop()def bug_test(test_num): test_num +=1 p...

2020-02-25 13:19:15 838

原创 python相关知识

python相关知识1、定义自己的异常处理class MyInputError(Exception): """Exception raised when there're errors in input""" def __init__(self, value): # 自定义异常类型的初始化 self.value = value def __str__(...

2020-02-23 10:46:51 187

原创 pyspark官方文档中的pyspark.ml.feature函数中文简介

可以看成对pyspark.ml.feature中的方法的大致中文翻译吧,例子基本都是给予官方文档上的例子,目的就是为了对里面的函数有大致的了解,如果要是看具体的还是看官方文档好,待整理待更新 ,有点乱。 官方文档地址: http://spark.apache.org/docs/latest/api/python/pyspark.ml.html1、Binarizer(threshold=...

2018-04-28 10:49:11 7324

原创 推荐系统中的冷启动问题的解决办法

在推荐系统中的冷启动问题包括: 1)用户冷启动,即如何给新用户做个性化推荐。 2)物品冷启动,如何将新的物品推荐给可能对它感兴趣的用户。 3)系统冷启动,如何在一个新开发的网站上设计个性化推荐系统。 信息量比较少,难以产生有效的推荐,一般的解决办法有: 1)提供非个性化的推荐 最简单的例子是提供热门排行榜。 2)利用用户注册信息 - 人口统计学信息,包括年龄、性别、职业、民族、学...

2018-03-21 11:46:25 1094

转载 R语言画交互式图

主要使用的包为scatterD3,其github的链接地址为:https://github.com/juba/scatterD3。scatterD3包可以实现交互式画图,画完图后可以做图进行缩放查看。 安装方式为: install.packages(“scatterD3”) 或者为 devtools::install_github(“juba/scatterD3”)librar...

2018-03-20 20:26:55 3262

原创 R语言安装github包出现的错误,object "XXX" is not exported by "namespace:viridisLite"

最近在安装github上的R语言程序包DiagrammeR时一直出现如下错误:library(devtools)install_github("rich-iannone/DiagrammeR")Error : object 'cividis' is not exported by 'namespace:viridisLite'ERROR: lazy loading failed for...

2018-03-20 20:18:25 4967

原创 R语言代码的调试

1)直接使用browser()函数,会在后面打开浏览器。>browser(s>1)会在当s>1时 打开调试浏览器。 2)使用setBreakpoint()函数>setBreakpoint(filename,linenumber)会在文件filename的第linenumber调用browser()函数 使用untrace(g)可以取消断点。 3)使用traceback()

2018-01-20 20:32:03 1995

原创 R语言中的画图函数

1)plot()函数是一个泛型函数,本身可以看做一个占位符,在使用plot()时,调用的函数依赖于所属的类。 2) plot() 中type=”n”的含义是不向图中添加任何元素,只画坐标轴。plot(c(-3,3),c(-1,5),type="n",xlab="x",ylab="y")3)如果想在新的图形窗口画图,输入 windows()即可 4)locater() 表示定位,可以得

2018-01-20 19:17:12 4813

原创 R语言中可以提高代码性能的小技巧

1) quantmod包中的 Lag()函数 lag() 可以针对时间序列使用 得到延后项,并用NA填补缺失值。比如:> x [1] 1 2 3 4 5 6 7 8 9 10 > Lag(x,k=1) Lag.1 [1,] NA [2,] 1 [3,] 2 [4,] 3 [5,] 4 [6,]

2018-01-17 21:50:18 1057

原创 R语言中矩阵、向量在内存上的区别

向量在初始创建时,系统就给分配了足够的空间,没有赋值的下标对应的值都用NA代替了,所以向量不存在下标超出的限制比如:> x[1] 1 2> length(x)[1] 2> x[100][1] NA> length(x)[1] 2> x[100]=3> length(x)[1] 100创建x时给了两个数字,所以长度为2。但是取值x[100]时显示的是NA并非下标越界

2018-01-16 13:38:55 929

原创 Linux中的if-then语句

if-then是条件选择语句,及根据if后面的条件的执行情况在决定程序的执行流程。 但是linux中if只能根据条件命令的退出状态码来判断。如果命令成功执行,则状态退出码为0,执行then部分的代码。比如:if pwdthen echo the command is okfitest可以提高if-then的条件判断能力,test命令中列出的条件如果成立,则test命令就会退

2018-01-12 22:38:14 4604

原创 Linux中的数学运算

Linux中的数学运算方式只要以下几种方式: 1)expr 表达式 具体语法为:expr 1 + 5这种方式要求比较严格,空格必须有,且在脚本中容易出问题,比如在脚本中乘号可能被识别为通配符。所以必须加转移字符(反斜杠) 2)使用方括号([])比如:var1=[ ]) 比如: var1=[2 * 3] 这种方式比较方便,必须要加空格,且与expr类似,在将结果赋

2018-01-12 22:11:05 1771

原创 linux中常用的VIM命令

vim编辑器主要分为三个模式: 1. 插入模式 2. 编辑模式 3. 末行模式(也叫命令行模式)在编辑模式下的常用操作有h,j,k,l:分别表示左,下,上,右移动PageDown(Ctrl+F):向下翻一屏PageDown(Ctrl+B):向上翻一屏G: 移动到缓冲区的最后一行num G: 移动到缓冲区的第num行gg: 移动到缓冲区的第一行x: 删除当前光标所

2018-01-12 21:02:07 348

原创 Linux中的启动文件及环境文件

在登录Linux系统时,一般会从以下几个启动文件中读取命令: /ect/profile $HOME/.bash_profile $HOME/.bashrc $HOME/.bash_login $HOME/.profile系统中并不一定有这种的所有文件,可能只含有部分文件。 其中 1)/etc/profile文件是bash shell的主启动文件。系统上每个用户登录时都会执行的

2018-01-12 17:58:55 6899

原创 linux访问字符中特殊分隔符中的每一项

比如linux中的环境变量PATH为:/opt/ros/indigo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games如果要得到其中的每一个目录可以通过以下两种方式实现: 1)首先使用sed命令将冒号转换成制表符、空格或者换行符,然后使用for循环取值

2018-01-12 16:18:06 565

原创 R语言中的RSNNS包

RSNNS包中的函数及功能如下: 1.Analyzeclassification :将连续输出转换成类标签 2.art1:创建并训练一个art1网络 3.assoz: 创建并训练一个auto-associative memory 4.confusionMatrix: 计算混淆矩阵 5.decodeClassLabels : 将类标签转化成二进制矩阵 6.denormalizeData

2018-01-11 15:28:07 6564

原创 R语言中的neuralnet包帮助文档的中文翻译

1.compute 用训练好的NN计算给定向量的值语法:compute(x, covariate, rep = 1)参数: x :神经网络对象 covariate :变量 rep :表示重复的次数2.confidence.interval 计算权重置信区间语法

2018-01-11 14:45:59 8397

原创 Linux中的kill与killall命令

kill命令可以通过进程ID(PID)结束进程。但是不支持通配符。比如?或*。命令格式为:kill 3340. 如果命令无效,可以使用:kill -s 强制结束进程。 killall 通过进程名来结束进程,且支持通配符操作,比如:killall st*结束所有以st开始的进程。

2018-01-11 14:27:42 1394

原创 使用R语言得到向量中所有的最大值或者最小值的下标

使用R语言得到向量中所有的最大值或者最小值的下标。比如向量a:a=c(1,2,4,3,4)代码如下:which(a=max(a),arr.ind=TRUE)输出为:[1] 3 5

2018-01-05 22:37:37 30930 4

原创 使用R语言将向量装换成一个字符串

将向量a,b装换成一个字符串,其中:a=c(1,2,3,4)b=c(2,3,4,5)为了将其转化成一个字符串可以通过引入包stringr,使用str_c实现,使用paste也一样可以达到目的,如下:library(stringr)a_b=str_c(a,b,collapse='')paste(a,b,sep='')输出为:[1] "12233445"在实际的数据

2018-01-05 20:27:16 13007

空空如也

空空如也

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

TA关注的人

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