luoyexuge的专栏

私信 关注
旭旭_哥
码龄10年

码农一枚

  • 1,055,673
    被访问量
  • 233
    原创文章
  • 3,366
    作者排名
  • 531
    粉丝数量
  • 目前就职 陆金所
  • 于 2010-12-29 加入CSDN
获得成就
  • 获得209次点赞
  • 内容获得422次评论
  • 获得569次收藏
荣誉勋章
兴趣领域
  • #人工智能
    #神经网络#TensorFlow#NLP#Flink#深度学习#自然语言处理#算法
TA的专栏
  • python编程
    85篇
  • R语言
    13篇
  • 机器学习
    114篇
  • java
    87篇
  • 数据挖掘
    18篇
  • SAS语言
    3篇
  • hadoop
    4篇
  • 统计
    1篇
  • 生活琐事
    2篇
  • leetcode
    4篇
  • apache spark
    10篇
  • apache hadoop
    4篇
  • 数据结构算法
    4篇
  • c++笔记
    25篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

xlnet中文文本分类任务

xlnet中文版本预训练模型终于出来了,见地址https://github.com/ymcui/Chinese-PreTrained-XLNet,出来之后尝试了下中文文本分类模型,xlnet模型相比bert有很多东西做了改变,模型层面的不多说,目前放出来的中文文本分类模型是采用24层的网络结果,和中文版的bert12层的网络大了两倍,之前论文出来时候有很多,主要是中文数据处理的问题,模型采用的s...
原创
5167阅读
6评论
0点赞
发布博客于 2 年前

xlnet模型微调---英文文本分类

每隔一段时间在NLP领域都有个新闻,xx模型全面超越bert,今天也不例外,今天刷屏的是xlnet网络,在bert的基础上做了修改,模型网络是24层,模型大小是中文的bert的4倍左右,看下怎么玩,其中英文分词这里原代码中用的是 sentencepiece,所以在使用时要安装这个包,下面一起来看看怎么使用:首先是要下载模型用于curl -O "https://storage.googleap...
原创
4390阅读
7评论
4点赞
发布博客于 2 年前

利用spark生成tfrecord文件

目前数据越来越多,数据一般存储在hdfs上,但是目前许多深度学习算法是基于TensorFlow、pytorch等框架实现,使用单机python、java做数据转换都比较慢,怎么大规模把hdfs数据直接喂到TensorFlow中,在这里TensorFlow提供了一种解决方案,利用spark生成tfrecord文件,项目名称叫spark-tensorflow-connector,GitHub主页在ht...
原创
7363阅读
2评论
1点赞
发布博客于 2 年前

bert语义相似度计算

bert语义相似性计算,这个和上一块的文本分类模型有点类似,但是segment_ids稍微和文本分类不一样,数据集可以参照蚂蚁金服语义相似度计算的文本(可以搜索蚂蚁金服语义相似比赛数据可以多出下载到),两个句子之间通过[SEP]分割,[CLS]的向量作为分类的输入,标签是两个句子是否相似。可以作为排序算法,代码和上面的文本分类情况一样。 度max_length,第一句对应位置(包含[CLS...
原创
13011阅读
1评论
4点赞
发布博客于 2 年前

bert模型文本分类

bert模型文本分类,实际这个东西google官方已经提供了代码,做文本分类实际是一个最简单的问题,下面用官方代码改了下,可以在低版本的tensorflow上运行,至于数据格式不再做多谈,就是input、inputmask、label,其中segment_ids可以不用做文本分类,看下代码:import tensorflow as tffrom tensorflow.contrib.lay...
原创
6200阅读
6评论
0点赞
发布博客于 2 年前

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...
原创
1822阅读
2评论
0点赞
发布博客于 3 年前

从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...
转载
23134阅读
26评论
13点赞
发布博客于 3 年前

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...
原创
9501阅读
15评论
7点赞
发布博客于 3 年前

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...
原创
9501阅读
15评论
7点赞
发布博客于 3 年前

BERT+BiLSTM-CRF-NER用于做ner识别

本周五快下班的时候看到别人写了个bert语言模型作为输入,用于做ner识别,后面可以是cnn或者直接是crf层,bert在这里作为word2vec模型的替换着,原始地址https://github.com/macanv/BERT-BiLSTM-CRF-NER,在这里需要注意的是TensorFlow版本需要1.9版本:整理逻辑还是比较简单,别看谷歌写了那么多代码,实际就是把bert模型替换了原来...
原创
46437阅读
44评论
10点赞
发布博客于 3 年前

topk相似度性能比较(kd-tree、kd-ball、faiss、annoy、线性搜索)

目前对向量topk相似度计算算法有许多,如下图:关于向量取topk相似度的应用场景很多,比如推荐系统里面使用item2vec经常离线计算好topk的相似度,搜索领域里面的query2vec使用topk相似度,word2vec领域里面的topk相似度,本文选取了几个经典的算法做性能比较,kd-tree、kd-ball、faiss、线性搜索、annoy几个算法,环境都是mac本地cpu环境,向...
原创
9712阅读
3评论
6点赞
发布博客于 3 年前

NLP中语言模型预训练方法

最近,在自然语言处理(NLP)领域中,使用语言模型预训练方法在多项NLP任务上都获得了不错的提升,广泛受到了各界的关注。就此,我将最近看的一些相关论文进行总结,选取了几个代表性模型(包括ELMo [1],OpenAI GPT [2]和BERT [3])和大家一起学习分享。1. 引言在介绍论文之前,我将先简单介绍一些相关背景知识。首先是语言模型(Language Model),语言模型简单来...
转载
5117阅读
1评论
3点赞
发布博客于 3 年前

专题-句向量(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...
转载
11228阅读
2评论
6点赞
发布博客于 3 年前

短文本分类的 ResLCNN 模型

发现一个有意思的模型,也是利用何凯明残差网络的思想,具体网络结构可以看下: 作者看了下各种实验结果: 原始地址:https://blog.csdn.net/gentelyang/article/details/80840585?utm_source=blogxgwz9...
转载
1789阅读
0评论
0点赞
发布博客于 3 年前

大规模中文概念图谱CN-Probase正式发布

历时多年的研发,复旦大学知识工场实验室正式推出大规模中文概念图谱——CN-Probase,用于帮助机器更好的理解人类语言。概念图谱中包含实体(比如“刘德华”)、概念(比如“演员”),实体与概念之间的类属关系(又称isA关系,比如 “刘德华 isA 演员”),概念与概念之间的 subclass of 关系(比如 “电影演员”是“演员”的子类)。通常后面两类关系,又统称为 isA 关系。如果 A is...
转载
180阅读
0评论
0点赞
发布博客于 3 年前

谷歌最强 NLP 模型 BERT 解读

从elmo-->ULMFiT-->gpt-->bert,大概是这个流程 最近谷歌研究人员通过新的BERT模型在11项NLP任务中夺得STOA结果,这在自然语言处理学界以及工业界都引起了不小的热议。作者通过在33亿文本的语料上训练语言模型,再分别在不同的下游任务上微调,这样的模型在不同的任务均得到了目前为止最好的结果,并且有一些结果相比此前的最佳成绩得到了幅度不小的提升。作...
转载
4192阅读
0评论
1点赞
发布博客于 3 年前

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...
转载
368阅读
0评论
0点赞
发布博客于 3 年前

机器翻译模型Transformer代码详细解析

看到这个博客代码讲的真的是通俗易懂,原理也比较简单了,花时间去看的话,原文地址:http://lib.csdn.net/article/aiframework/68187谷歌一个月前发了一篇论文Attention is all you need,文中提出了一种新的架构叫做Transformer,用以来实现机器翻译。它抛弃了传统用CNN或者RNN的定式,取得了很好的效果,激起了工业界和学术界的广...
转载
1682阅读
1评论
0点赞
发布博客于 3 年前

c++生成tfrecord文件

步骤和上一篇博客java生成tfrecord文件类似,首先是在tensorflow官网下载protoc后缀文件,利用protoc生成c++代码,把生成feature、example源文件和头文件放到c++项目中,下面看步骤:protoc --cpp_out=cpp/ feature.proto protoc --cpp_out=cpp/ example.proto 这一...
原创
1637阅读
2评论
1点赞
发布博客于 3 年前

java生成tfrecord文件

最近在做一个ner识别模型,用算法标注了一亿出头的数据,刚刚开始用python生成tfrecord文件,这一步非常的费时间,一亿条数据每一千万生成一个文件差不多要两个半小时的时间才能生成完成,左思右想想找一种快的方法,前几天看到美团公众号发了一篇文章关于ctr模型,其中有一句话印象深刻用spark生成tfrecord文件,虽然一笔带过,受到启发,既然是jvm系的,java一定可以,然后就查了点资料...
原创
2619阅读
3评论
3点赞
发布博客于 3 年前

c++使用opencv读取图像进tensorflow做预测

接上一篇文章,上一篇文章简单了训练一个101层的残差网络并保持为pb格式,下面在c++中读取图片进行预测,用Mat转化为tensor的形式,opencv接口安装、tensorflow编译在前面的文章都有说到在这里不再累赘,进模型之前图片预处理较简单,只是做了个去均值操作,灰度什么的没做处理,下面看下代码:#include <iostream>#include <openc...
原创
4349阅读
3评论
0点赞
发布博客于 3 年前

resnet_v2、resnet_v1、inception等网络简单实现及部署

resnet_v2、resnet_v1、inception这些网络在tensorflow中封装的比较死,全部封装在slim模块下,当然一些更高级的网络暂时没看到封装在下面,比如胶囊网络、以及inceptionv4,对应的finetune模型下载地址如下:https://github.com/tensorflow/models/tree/master/research/slim,下面写的博客基本上一...
原创
1090阅读
0评论
0点赞
发布博客于 3 年前

LSTM-CNNs-CRF算法用于做ner等nlp任务

原始论文地址:https://arxiv.org/abs/1603.01354仔细看了下论文和相关代码实现,原理大概如下: 利用  word级别和char级别的方式作为输入:word级别的 一个序列长度: input_word=tf.placeholder([None,seqlen]),  就是分完词之后的  “我  在  吃饭”char级别的是   input_char=tf...
原创
4835阅读
1评论
1点赞
发布博客于 3 年前

crf++模型训练到c++、java调用(接口)

crf模型是个特别好用的模型,做分词、做ner等nlp工作都力离不开,训练crf模型用很多工具,比较出名的就是今天要讲的crf++,其文档清晰,支持各种语言的接口,本篇blog要讲的是c++和java的接口,   这里java的接口是通过jni调用c++实际本质还是c++,不过也有人通过java实现了c++加载crf模型的那套逻辑,比较出名的就是在ansj中分词,就是通过java实现加载模型的逻辑...
原创
2808阅读
3评论
2点赞
发布博客于 3 年前

时间复杂度O(1)的离散采样算法—— Alias method/别名采样方法

原始博客地址:https://blog.csdn.net/haolexiao/article/details/65157026问题:比如一个随机事件包含四种情况,每种情况发生的概率分别为: 12,13,112,11212,13,112,112,问怎么用产生符合这个概率的采样方法。最容易想到的方法我之前有在【数学】均匀分布生成其他分布的方法中写过均匀分布生成其他分布的方法,这种方法就是产...
转载
646阅读
0评论
0点赞
发布博客于 3 年前

kenlm语言模型相关,c++、python相关接口

上周五看了下语言模型相关的工具,之前也打算自己造轮子,发现还是不行,别人开源了就用别人的,其中c++版本比较典型的就是kenlm,这个工具号称单机版训练超级快,经过测试确实很快,支持大规模的语料训练,文件的输入格式一行行以空格隔开的文本,跟word2vev模型训练输入的格式一样,当然c++接口踩过的坑真的是特别多,网上的资料少的可伶,一路摸索,不过python的接口相对来说超级简单。下面看下怎么安...
原创
3124阅读
6评论
0点赞
发布博客于 3 年前

膨胀卷积+crf模型用于做ner

之前一直都是用bilstmcrf在做ner识别,前两天在GitHub看到一个c++ 分词工具,作者提供两种方式用于做分词,一种是bi-lstm结合crf的形式,一种是膨胀卷积+crf的形式,总体来讲原理还是比较简单,而且思想都来源于15年的一篇论文https://arxiv.org/abs/1511.07122 ,后面人根据这篇论文的扩展到做ner识别,也是一篇比较出名的文章,昨天花时间写了下代码...
原创
1444阅读
1评论
1点赞
发布博客于 3 年前

c++ tensorflow图像检测接口

原文:https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/multibox_detector这接上面一个例子,用于做图像检测,首先还是下载模型:wget https://storage.googleapis.com/download.tensorflow.org/models/mobile_mu...
翻译
2932阅读
3评论
0点赞
发布博客于 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...
翻译
1340阅读
0评论
0点赞
发布博客于 3 年前

C++常见问题: 字符串分割函数 split

原文:http://www.cnblogs.com/dfcao/p/cpp-FAQ-split.htmlC++标准库里面没有字符分割函数split ,这可太不方便了,我已经遇到>3次如何对字符串快速分割这个问题了。列几个常用方法以备不时之需。 方法一: 利用STL自己实现split 函数(常用,简单,直观)原型: vector<string> split(cons...
转载
1023阅读
0评论
1点赞
发布博客于 3 年前

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...
原创
7115阅读
3评论
3点赞
发布博客于 3 年前

c++中加载tensorflow serving模型格式文件

前几篇文章在讲c++中加载pb格式文件,就是单纯的pb,没有变量的情况,下午仔细看了下c++的源码发现是可以直接加载tensorflow serving格式文件,格式文件包括一个pb文件和一些variables变量文件夹,废话不多说,直接看代码:CMakeLists.txt:cmake_minimum_required(VERSION 3.10)project(cppexcise)...
原创
2073阅读
4评论
0点赞
发布博客于 3 年前

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...
原创
2206阅读
4评论
1点赞
发布博客于 3 年前

c++中启动一个thrift服务加载tensorflow训练的模型

前面有几篇博客已经说明如何编译tensorflow,供c++接口调用,前面博客也已经提到怎么利用thrift搭载一个服务,分为客户端和服务端,实际两个综合到一块来相对还是比较容易,下面看下,简单的实现,首先是tensorflow.thrift编写,写的相对比较简单:service Serv{ i32 getresult(),}然后用thrift -r -gen tensor...
原创
509阅读
0评论
0点赞
发布博客于 3 年前

c++中的algorithm库

c++中的algorithm库,包含了所有vector、list、set、map操作能想到的一些函数,如查找,替换、排序、计数等常用的功能全部在里面,在这里虽然不像Java那样完全面向对象,方法全部在类里面,但是熟读algorithm库还是非常有必要,官网的链接http://www.cplusplus.com/reference/algorithm/  可以非常直接学习,代码也非常清晰易懂,下面自...
原创
9093阅读
0评论
6点赞
发布博客于 3 年前

thrift c++接口简单 启动一个简单的server

我使用的是mac下安装的,首先是安装的是thrift,我直接用brew命令安装的,不过可以直接去官网上下载thrift安装,下载thrift之后可以查看 thrift在哪个位置   which thrift,  主要是为了方便后面CMakeLists.txt中配置,先放出来:include_directories(/usr/local/homebrew/include)link_direc...
原创
1071阅读
0评论
0点赞
发布博客于 3 年前

C++之enum枚举量声明、定义、使用与枚举类详解

参考: https://blog.csdn.net/bruce_0712/article/details/54984371  众所周知,C/C++语言可以使用#define和const创建符号常量,而使用enum工具不仅能够创建符号常量,还能定义新的数据类型,但是必须按照一定的规则进行,下面我们一起看下enum的使用方法。步骤(一)——枚举量的声明和定义(1)首先,请看下面的语句:...
转载
4750阅读
0评论
4点赞
发布博客于 3 年前

java调用c++带返回值

java通过jni调用c++,其中涉及到的基本类型会不大一样,int 、float、double可以强转,但是数组和String类型基本上要用过java  String-->jni  jstring-->c++  string类型转换,具体详细在这篇博客写的比较清楚https://blog.csdn.net/u011974987/article/details/52743495,看下面...
原创
1376阅读
3评论
0点赞
发布博客于 3 年前

java通过jni调用c++逻辑

本博客通过一个简单的例子通过用java调c++处理,逻辑不带返回,直接打印hello word级别的,下面来看下,首先写一个java简答的测试类:package com.xx.odps.ainlp;public class HelloWorld { //导入lib文件 static{ System.load("libjnite.dylib"); }...
原创
591阅读
0评论
0点赞
发布博客于 3 年前

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,...
转载
8938阅读
3评论
2点赞
发布博客于 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:...
原创
11847阅读
18评论
4点赞
发布博客于 3 年前

TensorFlow serving加载的模型格式在java中直接加载

记得上几篇博客有提到用tensorflow 中保存模型,然后用tensorflow serving中启动服务再用java调用,实际这样绕了很多,今天发现在java中也能直接加载调用TensorFlow  serving中调用的格式,实际在java中也可以直接调用pb文件的模型,前面也提到,这也算是另外一种方式吧直接看代码:Python  生成模型代码,可以用在TensorFlow serving ...
原创
3918阅读
4评论
3点赞
发布博客于 3 年前

c++宏相关

转自:http://blog.chinaunix.net/uid-21372424-id-119797.html一、#define的基本用法    #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别...
转载
108阅读
0评论
1点赞
发布博客于 3 年前

c++ 文件io

c++中的文件io,简单的写代码记录下:#include <iostream>#include <string>#include <fstream>using namespace std;//往文本文件中写入数据。void write_content_file() { //如果text.txt文件不存在,系统会自动新建一个text.txt文件...
原创
418阅读
0评论
0点赞
发布博客于 3 年前

c++模板方法和类

先看下方法模板:#include <iostream>#include "ClassTemplate.h"using namespace std;template <typename T> T minxxx(T x,T y){ return (x<y)?x:y;}int main() { std::cout << "Hello, ...
原创
2191阅读
0评论
0点赞
发布博客于 3 年前

c++简单使用boost

准备学习下boost,下午刚刚好把环境装了下,下面通过用thread为例子: boost简单的安装:wget    https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gzcd  boost_1_67_0sh bootstrap.sh./b2cmake安装:sudo tar ...
原创
5495阅读
0评论
0点赞
发布博客于 3 年前

c++指针和引用相关笔记

参考:https://blog.csdn.net/qq_27678917/article/details/702248131.指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:int a=10;int*  p=&a;( 指针)int c=12;  int&a...
原创
80阅读
0评论
0点赞
发布博客于 3 年前

cmake配置引入外部动态dylib or so or dll文件

以前写java的时候,想要引入外部一个jar包,直接在pom.xml配置依赖就可以,写c++也可以在CMakeList.txt进行配置target_link_libraries配置既可以,下面也还是通过一个demo进行说明,把A项目打包成dylib,在B项目中引用:下面直接看A项目逻辑,在A项目中我写一个偶数相加的方法打包,其基本文件见如下:CMakeLists.txt build evenpl...
原创
3322阅读
0评论
0点赞
发布博客于 3 年前

cmake编译一个简单c++项目(demo)

下面通过一个小例子来说明cmake编译一个c++项目,生成可执行文件:整理目录结构:CMakeLists.txt addlib build main.cpp电脑上没有tree命令,也不大敢截图,将就着看看,其中build是cmake编译指定的路径,addlib下面也有一个头文件和源文件  ,还有一个CmakeLists.txt,可以看下:CMakeLists.txt library.cpp l...
原创
7350阅读
1评论
1点赞
发布博客于 3 年前

cmake mac下安装

最近入职新公司压力还是比较大,节奏比较快,项目方面都是用c++写的,还是从头开始学c++,不知道能坚持多久,还是慢慢的记录下,想想一路做算法过来真累,学习各种编程语言,c++还是绕不过,学习也是周末和晚上抽时间来学习下,平时毕竟还有其他工作要做;cmake我理解相当于java里面的maven一样,是一个相当好用的工具,只需要自己写好CMakeLists.txt,其余都是一键打包,生成可执行文件,例...
原创
1541阅读
0评论
1点赞
发布博客于 3 年前

xgboost模型通过pmml存储,在java中调用

xgboost已经提供丰富的java接口,再通过pmml调用显得没多大的意义,java底层用的c++写的预测方法,超级快,不过还是记录下,直接看看python代码,数据还是鸾尾花数据:import pandas as pdfrom xgboost.sklearn import XGBClassifierfrom sklearn2pmml import PMMLPipelinefrom sk...
原创
5455阅读
0评论
0点赞
发布博客于 3 年前

lightgbm模型通过pmml存储,在java中调用

lightgbm模型是微软开源的一个模型,比xgboost快个10倍左右,原始训练使用的是c++,也提供了python接口,晚上摸索了下lightgbm在python中训练,转化为pmml语言,在java中调用,过程碰到不少坑,记录下,首先是  git clone  https://github.com/jpmml/jpmml-lightgbm/tree/master/src/main/java/...
原创
8416阅读
4评论
0点赞
发布博客于 3 年前

模型pmml方式存储跨语言调用

pmml提供了一种轻便的跨语言调用,比如说我用python训练一个模型,想要在java里面调,很多时候还需要重构底层的逻辑,造就诸多不方便,pmml正为此产生,不需要再重构底层逻辑,在python中ligbtgbm、xgboost、tensorflow训练的模型都可以通过这种方式在java或者其他语言里面调,在性能方面可能并不是一种很高效的方式,但是可以作为一种参考。主要参考:https://bl...
原创
2288阅读
2评论
1点赞
发布博客于 3 年前

nmt框架笔记之数据读取

不得不说Google出品,必属精品,这几天读了nmt模型的代码开源实现,对数据读取又有一番了解,之前的一些demo或者一些个人开源的作品,读数据进模型无非是使用placeholder和tfrecord,但是在nmt模型中提供了tf.data的形式,下面做一些笔记记录一下读后感首先是utils下面的vocab_utils.py文件,这个文件提供了load_vocab、check_vocab、crea...
原创
1322阅读
0评论
0点赞
发布博客于 3 年前

多gup训练模型、模型保存cpu预测

周末折腾了一些,模型在多gpu上训练,在训练过程做checkpoint,然后restore保存为pb格式模型文件,后面把模型放cpu上预测,结果报错,报错原因大概上有些op在gpu上操作,但是预测在cpu上面,上午折腾了下原来保存模型时候要指定cpu和gpu,但是google的模型是把一些namescope名称给弄下来,写了个方法来保存,在cpu上和gpu上预测具有普适性,先看我实现的方法把。首先...
原创
2241阅读
2评论
0点赞
发布博客于 3 年前

tensorfow实现DeepFM,模型保存、部署并java请求调用(ctr预测)

前段时间看到知乎上推了一篇文章https://zhuanlan.zhihu.com/p/33699909 ,上面是实现wider&&deep、deepfm、pnn之类的深度学习在ctr上的应用,模型原理都比较简单;数据来源于kaggle比赛的ctr模型,我具体没细看,这里我使用随机生成的数据做test,原githup博客代码全部用python2.7版本来写,切换到3有一些bug要稍...
原创
4108阅读
7评论
2点赞
发布博客于 3 年前

使用tfrecord喂数据到graph到模型训练到模型Saver到存储为pb格式文件

我看现在网络上大多数据教程或者demo用tensorflow训练一个模型,喂数据使用tf.placeholder,但是在大型的文本或者图像数据里面使用placeholder就不wok,性能和内存都是瓶颈。还有大多数代码模型保存什么都没有,更别说模型部署,本篇博客从原始数据转化为tfrecord  ,再把tfrecord数据丢给模型训练,再到模型保存,这里把保存好的模型再转化为pb格式文件模型,模型...
原创
2718阅读
4评论
0点赞
发布博客于 3 年前

java请求tensorflow-serving服务,返回模型结果

模型是前面训练一个简单的模型,用java调有个前提要是1.8的版本,有个jar包是1.8编译的,低版本会报错,先看下maven依赖,参考https://blog.csdn.net/shin627077/article/details/78592729<dependency> <groupId>com.yesup.oss</groupId>...
原创
5393阅读
5评论
0点赞
发布博客于 3 年前

利用flask来访问tensorflow-serving服务

参考githup地址:https://github.com/aaxwaz/Serving-TensorFlow-Model 启动服务:bazel build //tensorflow_serving/model_servers:tensorflow_model_servernohup bazel-bin/tensorflow_serving/model_servers/tensorflow_...
原创
4226阅读
0评论
1点赞
发布博客于 3 年前

mac下安装tensorflow serving步骤及踩的坑

参考:https://weiminwang.blog/2017/09/12/introductory-guide-to-tensorflow-serving/ https://blog.csdn.net/bingningning/article/details/72933932https://blog.csdn.net/wc781708249/article/details/78596459...
原创
3911阅读
0评论
0点赞
发布博客于 3 年前

深度强化学习:入门(Deep Reinforcement Learning: Scratching the surface)

原文链接:https://blog.csdn.net/qq_32690999/article/details/78594220本博客是对学习李宏毅教授在youtube上传的课程视频《Deep Reinforcement Learning: Scratching the surface》所做的笔记,供大家学习参考。需要翻墙:课程视频链接热度起源RL的方案学习Go监督学习与增强学习更多应用RL的难点后...
转载
960阅读
0评论
0点赞
发布博客于 3 年前

catboost算法python接口简单使用

早上看到一篇公众号在推xgboost、lightgbm、catboost原理比较,网上大概查了下原理及接口使用,目前只提供python、R、C/C++接口,并没有看到java接口,这个算法还算比较新颖,下面简单的用python调用去接口看看,没太多的技术含量,模型训练、保存、加载都可以看到,好像也提供service服务:关于接口参数说明可以参考这篇文章: http://blog.csdn.net/...
原创
7854阅读
0评论
4点赞
发布博客于 3 年前

关于L1正则在某些点不可导说明

首先一个函数连续但是不一定可导,判断一个函数是否连续是在某个点左极限=右极限=改点的函数值,判断一个函数是否可导,左导数等于右导数,关于L1正则在0点不可导怎么解决这个问题,为什么在0点不可以导,这个问题从15年毕业到现在,面试过程也被问了,作为一名面试官也问了别人,看看吧:f(x)=|x| 在0处是连续的,但是不可导连续情况:f(x)=|x|lim(x→0-)|x|=lim(x→0-)(-x)=...
原创
3704阅读
0评论
1点赞
发布博客于 3 年前

2017年总结

回家过年刚回来,一下到了2018年,回首2017年还算过得充实,17年算是做了不少事情,生活上的事情该有的有,最惊喜的莫过于了有了个儿子;工作算是一波三折,17年初来到美团,刚刚开始激情慢慢做了不少model,从0到1实现了很多东西,但是工作永远没有这么纯粹,到后面慢慢明白,人在江湖,身不由己,也缺少了刚刚来的那份激情,凉了,不过终归还是学到了不少东西,如深度学习、tensorflow、crf等东...
原创
251阅读
0评论
0点赞
发布博客于 3 年前

给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大 java实现

实现该算法主要思想是,1.两个负数与与一个正数相乘2.全为最大正数相乘得到最大值下面用算法实现,时间复杂度为O(n),下面用java实现,不过有一些为0的情况排除下可以,还有一些整形过大可以变为long型,这边不做累赘。package com.meituan.test;public class Test { public static v
原创
4605阅读
0评论
0点赞
发布博客于 3 年前

EntityNetwork网络 -文本分类

贴代码之前,写下自己最近情况,这篇博客估计是自己最后一篇文本分类的博客,深度学习各种算法都尝试过个遍,以深度学习为代表的模型做垃圾文本识别各种模型最后效果都差不多,如 entitynetwork、Hierarchical Attention Network for Document Classification、dynamic memory network、bi-lstm 、lstm-atten、...
原创
1024阅读
0评论
0点赞
发布博客于 3 年前

Dynamic Memory Networks文本分类及java接口调用

Dynamic Memory Networks记忆网络主要是Facebook开源的算法,主要用用问答系统,但是可以转化为一个文本分类的问题,花了一天时间调试代码,可以用了,核心代码参考的是https://github.com/yongyehuang/zhihu-text-classification,感谢,在Dynamic Memory Networks上面的的基础上稍微改了一些,下面直接看代码情...
原创
497阅读
0评论
0点赞
发布博客于 3 年前

seq2seq模型简单实现

理论参考:https://mp.weixin.qq.com/s/qXMRHxDDRa-_rJZMhXWB4whttp://blog.csdn.net/liuchonge/article/details/78824572http://blog.csdn.net/liuchonge/article/details/78856692代码参考 h
原创
2088阅读
2评论
0点赞
发布博客于 4 年前

加法的attenion简单的实现

一般Attention可以用于seq2seq中,也可以就用于简单的rnn模型中,下面介绍用于简单的rnn模型+attenion机制实现,流程答题可以分为:rnn部分,假如模型输入是一个这样tensor:rnn_outputs=[batch,seq_len,hidden_size]attention初始化3个tensor:w=[hidden
原创
563阅读
0评论
0点赞
发布博客于 4 年前

rnn、lstm,gru中output信息说明

在一般的rnn模型中,rnn一般输出的形式如下[batch,seq_len,hidden_size],如果用做分类,一般是取最后一个状态[batch,hidden_size],如果用于做词性标注和分词则取全部的状态[batch,seq_len,hidden_size],下面介绍下用于文本分类取最后状态的两种方法,一种是直接transpose,取[-1]最后一个状态,大小变为[batch,hidde
原创
624阅读
0评论
0点赞
发布博客于 4 年前

Network-in-Network简单实现,基于tensorflow

Network-in-Network 实际是2014年的提出的论文,深度学习发展这么猛,实际已经算是比较老的论文了,其理论基础是在卷积的基础上不再依赖于全连接层,只依赖于卷积、池化、relu层,后面直接接softmax,改论文作者在多层感知器中采用的激活函数是ReLU。这样的局部多层感知器恰好也可以使用1*1的卷积核来实现。从池化的角度看,增加的多层感知器相当于是一个含参的池化层,通过对多个特征图
原创
1852阅读
1评论
1点赞
发布博客于 4 年前

Hierarchical Attention Network for Document Classification中文文本分类,以及模型部署

这周五写了尝试把attention加入rnn网络中做文本分类,实际这种思想来源于Hierarchical Attention Network for Document Classification,周末整整花了一天半的时间来搞这个网络,终于把模型在tensorflow训练好,并部署在java上面,下面看看吧:首先是把一段中文文本看成一个doc,然后把doc分解成sen,再对se
原创
1771阅读
1评论
0点赞
发布博客于 4 年前

rnn Attention网络的实现

在gru、lstm网络中加入Attention机制,具体看看网络实现:utils方法:#!/usr/bin/python# -*- coding: utf-8 -*-from collections import Counterimport tensorflow.contrib.keras as krimport numpy as npimport osimport c
原创
3274阅读
0评论
2点赞
发布博客于 4 年前

Simple Recurrent Unit For Sentence Classification tensorflow实现

网上看到一篇文章关于SRU的原理以及实现,不过是基于pytorch,地址如下:https://mp.weixin.qq.com/s/2I9_cF3F5MO3l5rE1VY2ng在这里用tensorflow来实现,先看下SRUCell实现:import mathimport numpy as npimport tensorflow as tffrom tensor
原创
1266阅读
2评论
0点赞
发布博客于 4 年前

java读取tensorflow中图像的分类模型

经常在tensorflow中训练的图像模型,实际部署常见的用的是c++,实际java中也可以部署,在图像分类中,图像的预处理较为简单,只要做去均值和方差话(归一化),就可以使用,上午刚刚跟同事跑通了色情模型,先看下依赖吧,其中tensorflow的版本必须是1.4.0以上,我看下1.2.1,1.3.0其中缺失了一个这个类,org.tensorflow.types.Uint8,这个不能运行成功,
原创
5883阅读
19评论
1点赞
发布博客于 4 年前

卷积网络中的VALID与SAME

当padding="SAME"的时候,卷积、池化层计算大小公式为:out_height=ceil(inputheight/stride[1])out_width =ceil(inputweight/stride[2])  跟filter,ksize大小并么有关系,只跟stride有关系当padding="VALID"的时候,卷积、池化层计算大小公式为,跟filter
原创
2988阅读
0评论
1点赞
发布博客于 4 年前

cnn、rnn相结合进行文本分类

主要参考代码思路:https://github.com/jiegzhan/multi-class-text-classification-cnn-rnncnn和rnn结合一起进行文本分类主要思路如下:data--->batch iter-->cnn input-->embedding--->卷积--->池化--->rnn输入--->lst
原创
6551阅读
3评论
0点赞
发布博客于 4 年前

tensorflow模型java部署问碰到了坑,各种坑

吐槽下java部署cnn、rnn、lstm、bi-lstm相关模型的我是碰到了各种坑,相比之前部署xgboost采的坑还要多,记录下吧,这些底层还是要依赖于c++,java说白了只是个壳,没有真正实现Tensor、模型相关业务逻辑,下面看下吧。查看各个版本的gcc版本的信息:strings /lib64/libc.so.6 |grep GLIBC_   查看版本中是否含有2
原创
5445阅读
1评论
0点赞
发布博客于 4 年前

java加载tensorflow训练好的模型部署成service

在上面一章节提到怎么在java中怎么调用tensorflow训练好的模型,这篇主要是部署成service代码,看看吧,还有个东西官方说要用jdk1.8,不过我把部分方法改了,1.7也可以用,看看吧:首先是utils,里面用到的一些方法,把一段文本转化为一个tensorpackage com.dianping.text.classify.util;import jav
原创
4870阅读
0评论
1点赞
发布博客于 4 年前

tensorflow训练好的模型中java调用

最近基于bi-lstm做了一个辱骂识别模型准备部署到线上,之前打算用python 启动一个service 通过http请求来调用,发现公司平台是基于rpc服务的,开发部署起来也较蛋疼,今天下午闲来没事,看到tensorflow中有提供官方例子,通过python中训练好模型,用java来调用,刚刚好摸索了下,动手写了下代码,总算能在java中调用,废话不多说,直接看代码实现情况。
原创
11026阅读
22评论
0点赞
发布博客于 4 年前

tensorflow喂数据进模型小例子

学习深度学习,个人觉得最基础的应该知道怎么喂数据进模型,数据不可能一次性全部进模型,而是选取一个batch的进入,下面写了个小例子模仿来实现,希望能加深理解:import numpy as npx=[[1,1],[1,2],[1,3],[1,4],[1,5],[1,6],[1,7]]y=[[0,1],[1,0],[0,1],[0,1],[0,1],[1,0],[1,0]]"""生成
原创
2983阅读
0评论
0点赞
发布博客于 4 年前

tflearn中使用cnn做分类并做预测

数据情况在上一篇博客中已经提到,直接看代码,定义网络结构比较简单:from __future__ import division, print_function, absolute_importimport tensorflow as tfimport tflearnfrom tflearn.layers.core import input_data, dropout, fully_c
原创
6054阅读
2评论
1点赞
发布博客于 4 年前

tflearn中lstm文本分类相关实现

最近偶然看到tflearn这个东西,相比tensorflow已经是对原始相关接口做了很大的封装,api通俗易懂去源码写的还真是不错,本例子实现一个lstm网络,看看吧,就几十行代码就可以实现,要部署到线上也应该及其简单,对于tensorflow不熟悉的人可以说是个很好的东西:import osimport tflearnprint(os.path.dirname(__file__)
原创
3128阅读
0评论
0点赞
发布博客于 4 年前

将tensorflow训练好的模型部署成sercice服务,并做预测

web框架用的是tornado,模型加载在上一篇博客已经提到,下面写了一个service.py文件:import tornado.webimport loggingimport stringimport osimport sysfrom predict import predictlogger = logging.getLogger('mylogger')logger.setLevel
原创
8919阅读
4评论
0点赞
发布博客于 4 年前

tensorflow中保存模型、加载模型做预测(不需要再定义网络结构)

下面用一个线下回归模型来记载保存模型、加载模型做预测参考文章:http://blog.csdn.net/thriving_fcl/article/details/71423039训练一个线下回归模型并保存看代码:import tensorflow as tfimport numpy as npimport matplotlib.pyp
原创
23930阅读
2评论
5点赞
发布博客于 4 年前

cnn、rnn实现中文文本分类(基于tensorflow)

代码主要参考这位大神的博客,这边说的比较清楚,http://blog.csdn.net/u011439796/article/details/77692621tensorflow版本:In [33]: tf.__version__Out[33]: '1.2.1'首先是数据获取:curl -O "http://thuctc.thun
原创
7778阅读
2评论
0点赞
发布博客于 4 年前

双向LSTM实现实现

本文也就是用于图像分类,数据是minst数据,先看下tensorflow的版本,下面在代码低版本可能运行不了:In [1]: import tensorflow as tfIn [2]: tf.__version__Out[2]: '1.2.1'我用的动态rnn来实现,双向rnn跟一层的rnn实际代码上没有太大的区别,主要要用tf.concat(output
原创
3872阅读
0评论
0点赞
发布博客于 4 年前

static_rnn 和dynamic_rnn的区别

最近在看tensorflow的api接口,发现tensorflow中提供了rnn接口有两种,第一种是静态的rnn,另外一种是动态的rnn,这两种区别查了一些资料其中:https://stackoverflow.com/questions/39734146/whats-the-difference-between-tensorflow-dynamic-rnn-and-rnn说的比较清楚,原文如下
原创
10258阅读
0评论
3点赞
发布博客于 4 年前

tensorflow 实现rnn

本文主要用于讨论官方自带的一个例子,rnn,用于多对一的情况,也就是用于图像分类,先看下tensorflow的版本,下面在代码低版本可能运行不了:In [1]: import tensorflow as tfIn [2]: tf.__version__Out[2]: '1.1.0-rc0'代码:import tensorflow as tff
原创
616阅读
0评论
0点赞
发布博客于 4 年前

tensorflow 批量读取csv文件用于做深度学习算法相关

目前用了tensorflow、deeplearning4j两个深度学习框架,dl相关算法对数据格式要求都是批量的喂进去,deepl4j在前面已经有几个例子说明,tensorflow也可以批量读取数据,不断给dl算法喂数据进去,在网上刚刚看到一个例子,http://www.cnblogs.com/hunttown/p/6844477.html ,首先数据格式如下,鸾尾花数据做机器学习的人应该都知
原创
8309阅读
0评论
3点赞
发布博客于 4 年前

tensorflow实现线下回归、softmax回归、bp神经网络

先入门做简单的线下回归,最小二乘化利用tensorflow来实现,代码原理如下:#encoding:utf-8import sysimport tensorflow as tfimport numpy as npx_data=np.random.rand(100).astype(np.float32)y_data=x_data*0.1+0.55#create tenso
原创
4223阅读
0评论
0点赞
发布博客于 4 年前

tensorflow 卷积神经网络实现

之前用deeplearning4j实现卷积神经网络,实际卷积比较好理解,这里刚刚好有一篇博客写的是比较详细的,我记录下,卷积神经网络在tensorflow下实现情况,主要参考代码是:http://www.jeyzhang.com/tensorflow-learning-notes-2.html 代码如下: # -*- coding: utf-8 -*- import te...
原创
330阅读
0评论
0点赞
发布博客于 4 年前

tensorflow学习相关资料收集

tensorflow学习相关资料整理,先整理下下面的博客情况:http://blog.topspeedsnail.com/archives/10858    https://my.oschina.net/yilian/blog/664632http://blog.csdn.net/lujiandong1/article/category/6526395/1http://
原创
246阅读
0评论
0点赞
发布博客于 4 年前

crf++ 安装

crf++包下载地址:https://drive.google.com/drive/folders/0B4y35FiV1wh7fngteFhHQUN2Y1B5eUJBNHZUemJYQV9VWlBUb3JlX0xBdWVZTWtSbVBneU0python安装:参考:http://blog.csdn.net/nicholas_wong/article
原创
959阅读
0评论
0点赞
发布博客于 4 年前

rnn python实现

早上看到公众号用python代码实现rnn,看了下原地址,rnn原理比较简单,但是有了各种变种如lstm、seq2seq等模型,目前查看的一些资料rnn都是基于一些框架来实现,比如tensorflow、deeplearning4j,caffe等,很少有徒手实现,刚刚看好到一篇记录下:参考文献:https://iamtrask.github.io/2015/11/15/anyone-can-co
原创
1923阅读
0评论
1点赞
发布博客于 4 年前

lstm用于文本分类(gpu实现)--deeplearning4j为例子

先看显卡:root@image-ubuntu:/home/zhoumeixu/credit-textclassify-deeplearning# nvidia-smi Fri Jul 14 08:00:24 2017 +----------------------------------------------------------------------------
原创
3620阅读
1评论
0点赞
发布博客于 4 年前

卷积文本分类(gpu)实现--deeplearning4j

前面介绍用卷积训练文本分类模型,但是算法是cpu上跑的,涉及到大数据,cpu上是跑不动的,代码在之前的博客里面可以看到,本博客主要记录在gpu上跑碰到的坑。报错如下:Exception in thread "main" java.lang.UnsupportedClassVersionError: org/deeplearning4j/parallelism/Par
原创
2255阅读
0评论
0点赞
发布博客于 4 年前

doc2vec用于分类 deeplearning4j实现

1.简概  上一篇简单介绍doc2vec的实现以及原理,这一篇看看用doc2vec用于文本分类情况。2.数据格式跟cnn、lstm输入格式一样1 看头像 加微信1 专业 办理 二手房交易 公积金贷款 商业贷款 租房 需要 请来 店咨询1 奥森 健身 要 砸金蛋 捂脸 砸金蛋 不是 李咏 专利 活动 当天 人人 都是 李咏 奥森 健身 小季 特邀 您 6月 1
原创
3205阅读
0评论
0点赞
发布博客于 4 年前

doc2vec用于训练文本向量-deeplearning4j实现

1.概述        Tomas Mikolov不仅仅提出word2vec,还提出了fasttext、doc2vec、doc2vec  classify等经典 论文,下面用deeplearning4j实现doc2vec,并通过训练好的doc2vec计算文档相似度以及找最相似的文档,理论方面不多做介绍。2.数据格式  和前面提到用于训练word2vec的数据格式
原创
4175阅读
0评论
0点赞
发布博客于 4 年前

cnn文本分类 --deeplearning4j为例子

绪论deeplearning4j提供了一个英文文本分类的例子,虽说是英文,但是中文分词之后,依葫芦画瓢用于训练,首先是利用用word2vec生成词向量模型,参考上面一篇提到的生成代码。然后是构建cnn用于文本分类。训练数据格式:1 小额贷款 要 吗1 商家 @ 回应 十里洋场 江景会 所 订房 经理 电话 ️ 五星级 餐饮 加 五星级 k歌 包房 体验 打 8折 送 酒
原创
5131阅读
2评论
2点赞
发布博客于 4 年前