- 博客(259)
- 资源 (6)
- 收藏
- 关注
原创 xlnet中文文本分类任务
xlnet中文版本预训练模型终于出来了,见地址https://github.com/ymcui/Chinese-PreTrained-XLNet,出来之后尝试了下中文文本分类模型,xlnet模型相比bert有很多东西做了改变,模型层面的不多说,目前放出来的中文文本分类模型是采用24层的网络结果,和中文版的bert12层的网络大了两倍,之前论文出来时候有很多,主要是中文数据处理的问题,模型采用的s...
2019-08-21 10:16:50 6998 6
原创 xlnet模型微调---英文文本分类
每隔一段时间在NLP领域都有个新闻,xx模型全面超越bert,今天也不例外,今天刷屏的是xlnet网络,在bert的基础上做了修改,模型网络是24层,模型大小是中文的bert的4倍左右,看下怎么玩,其中英文分词这里原代码中用的是 sentencepiece,所以在使用时要安装这个包,下面一起来看看怎么使用:首先是要下载模型用于curl -O "https://storage.googleap...
2019-06-20 17:50:46 6154 9
原创 利用spark生成tfrecord文件
目前数据越来越多,数据一般存储在hdfs上,但是目前许多深度学习算法是基于TensorFlow、pytorch等框架实现,使用单机python、java做数据转换都比较慢,怎么大规模把hdfs数据直接喂到TensorFlow中,在这里TensorFlow提供了一种解决方案,利用spark生成tfrecord文件,项目名称叫spark-tensorflow-connector,GitHub主页在ht...
2019-04-24 10:49:28 11719 3
原创 bert语义相似度计算
bert语义相似性计算,这个和上一块的文本分类模型有点类似,但是segment_ids稍微和文本分类不一样,数据集可以参照蚂蚁金服语义相似度计算的文本(可以搜索蚂蚁金服语义相似比赛数据可以多出下载到),两个句子之间通过[SEP]分割,[CLS]的向量作为分类的输入,标签是两个句子是否相似。可以作为排序算法,代码和上面的文本分类情况一样。 度max_length,第一句对应位置(包含[CLS...
2019-01-11 16:18:11 19446 3
原创 bert模型文本分类
bert模型文本分类,实际这个东西google官方已经提供了代码,做文本分类实际是一个最简单的问题,下面用官方代码改了下,可以在低版本的tensorflow上运行,至于数据格式不再做多谈,就是input、inputmask、label,其中segment_ids可以不用做文本分类,看下代码:import tensorflow as tffrom tensorflow.contrib.lay...
2019-01-11 16:12:57 8442 6
原创 tf.decode_csv() error: “Unquoted fields cannot have quotes/CRLFs inside”
今天利用模型预测表中的数据写到另外一个表中爆这个错误,找了一些资料没找到原因,后来查看函数的本身用法,有个参数是use_quote_delim 参数,看原始代码的解释为:se_quote_delim: An optional `bool`. Defaults to `True`. If false, treats double quotation marks as regular...
2018-12-26 15:32:40 2361 2
转载 从0到1开始训练一个bert语言模型
原始地址:https://daiwk.github.io/posts/nlp-bert-code.html 目录pretrained model Sentence (and sentence-pair) classification tasks glue data数据集 运行 pretraining step1. create-pretraining-data st...
2018-12-14 13:13:02 29588 30
原创 bert模型字向量获取---web服务
周末花时间写了个bert子向量获取的web服务,这东西以后完全是要替换word2vec模型,再过些估计会像word2vec那样,每个人都可以玩,下面看看怎么使用把,不难: 中文bert模型下载:https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip下载之后解压 把下面代码中的be...
2018-12-10 14:43:42 10700 15
原创 BERT+BiLSTM-CRF-NER用于做ner识别
本周五快下班的时候看到别人写了个bert语言模型作为输入,用于做ner识别,后面可以是cnn或者直接是crf层,bert在这里作为word2vec模型的替换着,原始地址https://github.com/macanv/BERT-BiLSTM-CRF-NER,在这里需要注意的是TensorFlow版本需要1.9版本:整理逻辑还是比较简单,别看谷歌写了那么多代码,实际就是把bert模型替换了原来...
2018-12-02 22:10:47 59370 49
原创 topk相似度性能比较(kd-tree、kd-ball、faiss、annoy、线性搜索)
目前对向量topk相似度计算算法有许多,如下图:关于向量取topk相似度的应用场景很多,比如推荐系统里面使用item2vec经常离线计算好topk的相似度,搜索领域里面的query2vec使用topk相似度,word2vec领域里面的topk相似度,本文选取了几个经典的算法做性能比较,kd-tree、kd-ball、faiss、线性搜索、annoy几个算法,环境都是mac本地cpu环境,向...
2018-11-19 11:18:54 12945 5
转载 NLP中语言模型预训练方法
最近,在自然语言处理(NLP)领域中,使用语言模型预训练方法在多项NLP任务上都获得了不错的提升,广泛受到了各界的关注。就此,我将最近看的一些相关论文进行总结,选取了几个代表性模型(包括ELMo [1],OpenAI GPT [2]和BERT [3])和大家一起学习分享。1. 引言在介绍论文之前,我将先简单介绍一些相关背景知识。首先是语言模型(Language Model),语言模型简单来...
2018-11-09 13:55:50 7835 1
转载 专题-句向量(Sentence Embedding)
原始地址:https://github.com/imhuay/Algorithm_Interview_Notes-Chinese/blob/master/B-%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/B-%E4%B8%93%E9%A2%98-%E5%8F%A5%E5%B5%8C%E5%85%A5.md Reference...
2018-11-08 11:00:29 14893 2
转载 短文本分类的 ResLCNN 模型
发现一个有意思的模型,也是利用何凯明残差网络的思想,具体网络结构可以看下: 作者看了下各种实验结果: 原始地址:https://blog.csdn.net/gentelyang/article/details/80840585?utm_source=blogxgwz9...
2018-11-07 10:00:06 1960
转载 大规模中文概念图谱CN-Probase正式发布
历时多年的研发,复旦大学知识工场实验室正式推出大规模中文概念图谱——CN-Probase,用于帮助机器更好的理解人类语言。概念图谱中包含实体(比如“刘德华”)、概念(比如“演员”),实体与概念之间的类属关系(又称isA关系,比如 “刘德华 isA 演员”),概念与概念之间的 subclass of 关系(比如 “电影演员”是“演员”的子类)。通常后面两类关系,又统称为 isA 关系。如果 A is...
2018-11-05 19:32:54 356
转载 谷歌最强 NLP 模型 BERT 解读
从elmo-->ULMFiT-->gpt-->bert,大概是这个流程 最近谷歌研究人员通过新的BERT模型在11项NLP任务中夺得STOA结果,这在自然语言处理学界以及工业界都引起了不小的热议。作者通过在33亿文本的语料上训练语言模型,再分别在不同的下游任务上微调,这样的模型在不同的任务均得到了目前为止最好的结果,并且有一些结果相比此前的最佳成绩得到了幅度不小的提升。作...
2018-10-28 21:14:15 4744
转载 elmo相关资料情况
https://blog.csdn.net/jeryjeryjery/article/details/81183433?utm_source=blogxgwz5https://blog.csdn.net/sinat_26917383/article/details/81913790https://blog.csdn.net/jeryjeryjery/article/details/8083...
2018-10-24 11:49:36 512
转载 机器翻译模型Transformer代码详细解析
看到这个博客代码讲的真的是通俗易懂,原理也比较简单了,花时间去看的话,原文地址:http://lib.csdn.net/article/aiframework/68187谷歌一个月前发了一篇论文Attention is all you need,文中提出了一种新的架构叫做Transformer,用以来实现机器翻译。它抛弃了传统用CNN或者RNN的定式,取得了很好的效果,激起了工业界和学术界的广...
2018-10-24 10:03:08 2944 1
原创 c++生成tfrecord文件
步骤和上一篇博客java生成tfrecord文件类似,首先是在tensorflow官网下载protoc后缀文件,利用protoc生成c++代码,把生成feature、example源文件和头文件放到c++项目中,下面看步骤:protoc --cpp_out=cpp/ feature.proto protoc --cpp_out=cpp/ example.proto 这一...
2018-10-14 20:37:11 2177 2
原创 java生成tfrecord文件
最近在做一个ner识别模型,用算法标注了一亿出头的数据,刚刚开始用python生成tfrecord文件,这一步非常的费时间,一亿条数据每一千万生成一个文件差不多要两个半小时的时间才能生成完成,左思右想想找一种快的方法,前几天看到美团公众号发了一篇文章关于ctr模型,其中有一句话印象深刻用spark生成tfrecord文件,虽然一笔带过,受到启发,既然是jvm系的,java一定可以,然后就查了点资料...
2018-10-13 00:06:31 3824 3
原创 c++使用opencv读取图像进tensorflow做预测
接上一篇文章,上一篇文章简单了训练一个101层的残差网络并保持为pb格式,下面在c++中读取图片进行预测,用Mat转化为tensor的形式,opencv接口安装、tensorflow编译在前面的文章都有说到在这里不再累赘,进模型之前图片预处理较简单,只是做了个去均值操作,灰度什么的没做处理,下面看下代码:#include <iostream>#include <openc...
2018-09-26 13:38:48 5057 3
原创 resnet_v2、resnet_v1、inception等网络简单实现及部署
resnet_v2、resnet_v1、inception这些网络在tensorflow中封装的比较死,全部封装在slim模块下,当然一些更高级的网络暂时没看到封装在下面,比如胶囊网络、以及inceptionv4,对应的finetune模型下载地址如下:https://github.com/tensorflow/models/tree/master/research/slim,下面写的博客基本上一...
2018-09-25 21:10:04 1715
原创 LSTM-CNNs-CRF算法用于做ner等nlp任务
原始论文地址:https://arxiv.org/abs/1603.01354仔细看了下论文和相关代码实现,原理大概如下: 利用 word级别和char级别的方式作为输入:word级别的 一个序列长度: input_word=tf.placeholder([None,seqlen]), 就是分完词之后的 “我 在 吃饭”char级别的是 input_char=tf...
2018-09-19 16:04:25 6406 1
原创 crf++模型训练到c++、java调用(接口)
crf模型是个特别好用的模型,做分词、做ner等nlp工作都力离不开,训练crf模型用很多工具,比较出名的就是今天要讲的crf++,其文档清晰,支持各种语言的接口,本篇blog要讲的是c++和java的接口, 这里java的接口是通过jni调用c++实际本质还是c++,不过也有人通过java实现了c++加载crf模型的那套逻辑,比较出名的就是在ansj中分词,就是通过java实现加载模型的逻辑...
2018-08-30 13:17:38 3609 3
转载 时间复杂度O(1)的离散采样算法—— Alias method/别名采样方法
原始博客地址:https://blog.csdn.net/haolexiao/article/details/65157026问题:比如一个随机事件包含四种情况,每种情况发生的概率分别为: 12,13,112,11212,13,112,112,问怎么用产生符合这个概率的采样方法。最容易想到的方法我之前有在【数学】均匀分布生成其他分布的方法中写过均匀分布生成其他分布的方法,这种方法就是产...
2018-08-29 16:51:15 887
原创 kenlm语言模型相关,c++、python相关接口
上周五看了下语言模型相关的工具,之前也打算自己造轮子,发现还是不行,别人开源了就用别人的,其中c++版本比较典型的就是kenlm,这个工具号称单机版训练超级快,经过测试确实很快,支持大规模的语料训练,文件的输入格式一行行以空格隔开的文本,跟word2vev模型训练输入的格式一样,当然c++接口踩过的坑真的是特别多,网上的资料少的可伶,一路摸索,不过python的接口相对来说超级简单。下面看下怎么安...
2018-08-27 11:30:23 3756 6
原创 膨胀卷积+crf模型用于做ner
之前一直都是用bilstmcrf在做ner识别,前两天在GitHub看到一个c++ 分词工具,作者提供两种方式用于做分词,一种是bi-lstm结合crf的形式,一种是膨胀卷积+crf的形式,总体来讲原理还是比较简单,而且思想都来源于15年的一篇论文https://arxiv.org/abs/1511.07122 ,后面人根据这篇论文的扩展到做ner识别,也是一篇比较出名的文章,昨天花时间写了下代码...
2018-08-22 21:14:17 1684 1
翻译 c++ tensorflow图像检测接口
原文:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/multibox_detector这接上面一个例子,用于做图像检测,首先还是下载模型:wget https://storage.googleapis.com/download.tensorflow.org/models/mobile_mu...
2018-08-21 13:43:50 3448 3
翻译 c++调取inceptionv3网络实现图像分类
这个例子是在看tensorflow里面的官网提供的例子里面看到的,总体来说比较简单,首先是模型下载,最好是用wget的方式下载,我用curl下载失败:wget https://storage.googleapis.com/download.tensorflow.org/models/inception_v3_2016_08_28_frozen.pb.tar.gz然后解压,解压之后是goo...
2018-08-21 13:23:57 1663
转载 C++常见问题: 字符串分割函数 split
原文:http://www.cnblogs.com/dfcao/p/cpp-FAQ-split.htmlC++标准库里面没有字符分割函数split ,这可太不方便了,我已经遇到>3次如何对字符串快速分割这个问题了。列几个常用方法以备不时之需。 方法一: 利用STL自己实现split 函数(常用,简单,直观)原型: vector<string> split(cons...
2018-08-21 10:05:51 1878
原创 c++ tensorflow接口GPU使用
c++中tensorflow接口GPU使用情况,通过一个小代码看下:with tf.Session() as sess: x = tf.placeholder(tf.float32, [None, 32], name="x") y = tf.placeholder(tf.float32, [None, 8], name="y") w1 = tf.Variable(t...
2018-08-20 20:14:39 9079 6
原创 c++中加载tensorflow serving模型格式文件
前几篇文章在讲c++中加载pb格式文件,就是单纯的pb,没有变量的情况,下午仔细看了下c++的源码发现是可以直接加载tensorflow serving格式文件,格式文件包括一个pb文件和一些variables变量文件夹,废话不多说,直接看代码:CMakeLists.txt:cmake_minimum_required(VERSION 3.10)project(cppexcise)...
2018-08-20 17:09:44 2898 4
原创 c++和java 创建tensor的情况
c++和java针对tensorflow中的基本类型Tensor创建可谓有很大不同,最近在搞c++得tensorflow接口,总的来说c++中创建 Tensor目前要依赖于vector,目前总结有两种方式,第一种直接用std::initializer_list 具体做法如下:std::initializer_list<float> v_a={1.0,1.0,1.0,1.0,1.0...
2018-08-20 15:29:24 3153 4
原创 c++中启动一个thrift服务加载tensorflow训练的模型
前面有几篇博客已经说明如何编译tensorflow,供c++接口调用,前面博客也已经提到怎么利用thrift搭载一个服务,分为客户端和服务端,实际两个综合到一块来相对还是比较容易,下面看下,简单的实现,首先是tensorflow.thrift编写,写的相对比较简单:service Serv{ i32 getresult(),}然后用thrift -r -gen tensor...
2018-08-20 15:17:16 661
原创 c++中的algorithm库
c++中的algorithm库,包含了所有vector、list、set、map操作能想到的一些函数,如查找,替换、排序、计数等常用的功能全部在里面,在这里虽然不像Java那样完全面向对象,方法全部在类里面,但是熟读algorithm库还是非常有必要,官网的链接http://www.cplusplus.com/reference/algorithm/ 可以非常直接学习,代码也非常清晰易懂,下面自...
2018-08-18 22:36:58 18218
原创 thrift c++接口简单 启动一个简单的server
我使用的是mac下安装的,首先是安装的是thrift,我直接用brew命令安装的,不过可以直接去官网上下载thrift安装,下载thrift之后可以查看 thrift在哪个位置 which thrift, 主要是为了方便后面CMakeLists.txt中配置,先放出来:include_directories(/usr/local/homebrew/include)link_direc...
2018-08-17 23:52:45 1564
转载 C++之enum枚举量声明、定义、使用与枚举类详解
参考: https://blog.csdn.net/bruce_0712/article/details/54984371 众所周知,C/C++语言可以使用#define和const创建符号常量,而使用enum工具不仅能够创建符号常量,还能定义新的数据类型,但是必须按照一定的规则进行,下面我们一起看下enum的使用方法。步骤(一)——枚举量的声明和定义(1)首先,请看下面的语句:...
2018-06-10 19:58:07 6257
原创 java调用c++带返回值
java通过jni调用c++,其中涉及到的基本类型会不大一样,int 、float、double可以强转,但是数组和String类型基本上要用过java String-->jni jstring-->c++ string类型转换,具体详细在这篇博客写的比较清楚https://blog.csdn.net/u011974987/article/details/52743495,看下面...
2018-06-03 13:54:05 2431 4
原创 java通过jni调用c++逻辑
本博客通过一个简单的例子通过用java调c++处理,逻辑不带返回,直接打印hello word级别的,下面来看下,首先写一个java简答的测试类:package com.xx.odps.ainlp;public class HelloWorld { //导入lib文件 static{ System.load("libjnite.dylib"); }...
2018-06-03 12:24:35 716
转载 thrift的使用--python
转载blog:http://www.cnblogs.com/pinking/p/7726478.html在这里要补充一点的就是在在这里python要安装thrift包时候,可以直接在安装好的thrift好的模块中sudo python setup.py install安装就可以,java、c++的我暂时没走通,周末来摸索以下原文,作者在Windows上面,我在linux上面:1、下载thrift,...
2018-05-24 13:33:26 9961 3
原创 tensorflow c++接口,python训练模型,c++调用
参考:参考:https://blog.csdn.net/lovekkss/article/details/77102251https://blog.csdn.net/rockingdingo/article/details/75452711GitHub地址:https://github.com/laMia482/tensorflow_cc-API/blob/master/includehttps:...
2018-05-21 23:04:20 13206 18
Python xgboost windows下安装包(64位,Python3.5包)
2017-02-22
python安装神器easy_install
2015-08-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人