自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mophistoliu的博客

https://github.com/Genie-Liu

  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 vscode debug C++无法输入问题

研究了半天vscode debug c++无法输入的问题,原来vscode的文档里面已经记录了(issue都是2020年提的了,还没解决。), 不过人家也确实给了一个解法:用外部的terminal。不过怎么看都还不是很方便,所以还是推荐直接使用codelldb插件来进行debug吧。

2024-07-23 10:36:27 177

原创 Spacemacs相关配置

正所谓工欲善其事,必先利其器,而作为程序员来说,最重要的工具莫不是编辑器。所有对问题思考而得到的解决方案,最终都会转变成代码,写入文件中。编程语言各异,而IDE也层出不穷。当然,每种语言都有合适的IDE。由于IDE针对特定编程语言做了很多优化,所以往往会变的过于臃肿,导致占用过多资源。所以在做一些简单的开发或者记录的时候,更合适的方式是使用通用的编辑器而不是专业的IDE。对于通用编辑器来说,我觉得只要其满足以下3点即可:具有一套高效的操作指令;包含快速移动光标,编辑操作。轻量化;占用内存少,启动

2020-08-23 14:39:13 758

原创 解决Spacemacs中的clang-format不生效问题

如题:已经配置了c++ layer,也能够用M-x clang-format-buffer命令,但是显示clang-format success,实际上buffer并未格式化原因在于: 路径下面没有.clang-format告诉clang-format如何格式化,只要用clang-format生成格式化配置文件即可。$ clang-format -style=llvm -dump-config > .clang-format...

2020-05-16 11:52:51 895

原创 搜索排序实时个性化中的Embedding调研与实践

万物皆Embedding最近在搜索场景中尝试做个性化召回部分的工作,经历了一番调研和实践之后,希望通过这篇博文来做个阶段性的总结和下一步工作的思考。自从Tomas Mikolov的word2vec出来之后,相信只要做过文本处理的同学们都知道Embedding的概念,后来的Transformer和BERT无不在Embedding和Attention上做文章。近些年来,Embedding不止是在NLP届活跃,现在甚至有人提出“万物皆Embedding的概念”。具体说来就是借鉴NLP的文本上下文概念,构造出真

2020-05-12 10:37:54 491

原创 CTR预估模型之DeepFM

2016年google推出了wide&deep模型之后,基本上就成为了各大推荐系统的标配。该模型既能学习到低阶的记忆性,又能学习到高阶部分的泛化性,所以整体效果来说是比较好的。但是它有个麻烦的地方,那就是wide部分需要较多的特征工程工作。这一点对于人员紧张的小厂来说还是不太方便。而FM具有自动学习交叉特征的能力,同时其使用的隐变量也可以跟Deep部分一起共享。所以也就有了DeepFM这个模型,用FM来代替wide部分。FM详细介绍见FM简介对比FM和Wide&Deep的Wide部分

2020-05-10 19:22:52 418

原创 Factorization Machines简介

在推荐场景中,我们经常面临稀疏的数据样本。SVM这种通用模型在稀疏场景下将失效,故论文提出了FM,这种能够在稀疏场景下有效的通用模型。论文最后也提到了FM与矩阵分解MF、SVD++等其他模型的关系,最后你会惊奇的发现FM模型是有多强大。FM模型把稀疏特征映射为K维的隐变量,并且通过隐变量之间的点积来作为两个特征交叉的权重值.当然FM也可以做高阶的特征交叉,但是绝大部分时候我们还是只用二阶部分,更高阶的部分还是交给深度网络吧。FM模型结构FM把每个稀疏特征作为一个field,每个field可能有多种取值

2020-05-10 16:20:53 531

原创 pandas保存dataframe json格式到S3

虽然pandas能够通过to_csv保存文件到S3,但是to_json报错FileNotFound以下方式能够解决该问题:# save to s3bucket = "bucket"file_path = "path/to/file"jsonBuffer = io.StringIO()df.to_json(jsonBuffer, orient="records", lines=True)session = boto3.Session()s3 = session.resource('s3')

2020-05-09 23:10:33 935

原创 Tensorflow之Java部署方案

最近使用Tensorflow的Estimator高阶API进行模型训练,支持保存成checkpoint和saved model格式。其中saved model可以使用Tensorflow Serving进行部署.但是目前公司内部还是使用tensorflow的Java API进行部署,所以需要把saved model转化成pb格式,并用Java进行部署。希望后续能够转移到Tensorflow ...

2020-05-04 17:24:38 1448

原创 Tensorflow之dataset介绍

虽然搭建模型是算法的主要工作,但在实际应用中我们花在数据处理的时间远比搭建模型的多。而且每次由于数据格式不同,需要重复实现数据加载,构造batch以及shuffle等代码。记得之前接触过的Pytorch、Paddle等框架都有dataset的工具,当然tensorflow也不例外,经过一段时间的了解和实践,准备写下这篇博文来记录一下。TFrecord格式Tensorflow支持多种输入格...

2020-05-04 15:38:55 1283 3

原创 vscode c++ setting

安装插件: 用微软官方的c/c++插件即可由于我用的mac,所以发现在教程的helloworld.cpp文件中,#include <iostream> 会报错includePath, 这时需要修改.vscode/c_cpp_properties.json下的compilerPath为/usr/bin/clang++格式化风格,默认是Visual Studio, 我更偏向Googl...

2020-04-05 12:21:49 1260

原创 如何查看文件变更记录

平时用git主要都是提交新的commit,昨天发现有个文件被异常的修改了,需要查看是哪次commit造成的。这时候重新去看所有pr是不可能的,想必git命令行还是有解决方法。首先查看文件修改的commit记录:$ git log <filename>查到变更的commit记录后,即可针对怀疑的commit查看究竟修改了文件的哪些内容:$ git show <commit_...

2019-12-13 23:47:18 1402

原创 airflow使用macros

起因: 由于公司里面使用airflow进行调度,昨晚一个依赖任务失败了,导致需要重跑我的任务。今天早上同事的依赖任务跑完后,我这边就需要接着重跑自己的任务。这时我发现了,原来我之前的代码是通过datetime来获取日期,然后对hive表进行处理。由于刚好过了一天,这时候如果我重跑的话,处理的是下一天的数据。如果需要重跑还需要修改代码,这让我觉得我的代码还需要优化。一开始,我就想通过Variabl...

2019-12-08 18:27:01 1614

原创 编写规范化的git commit message

昨晚看了一篇关于编写规范化的git commit message的文章,觉得对于多人团队编写项目来说确实很有用,周围同事和自己提交的内容都很随意,没什么太多信息量可言。然后自己也有这方面的困扰,每次提交commit的时候总在想要写点什么东西。所以今天尝试了一把,顺便记录一下。首先关于有哪些规范,以及规范格式参见下面的两篇文章,这里记录一下如何实现。全局安装commitizen & ...

2019-12-05 22:18:13 275

原创 spark写入hive出现数据不一致

记录一下这次遇到的诡异的坑,就是spark写入hive出现数据不一致的问题。问题描述如下:使用spark创建dataframe,通过createOrReplaceTempView创建临时表检查创建的临时表,与DataFrame的数据保持一致执行插入hive分区的sql命令insert overwrite table xxx.xxx partition (pt)s...

2019-11-30 16:55:29 2436

原创 快速搭建Kafka服务

搞流处理的话,无论如何是绕不过Kafka的了,还好Kafka是一个概念比较好理解的架构模型。我觉得官方的这三张图已经很好地把模型结构给阐述清楚了。发布-订阅模型:实现消息写入与消息读取解耦。Kafka相当于是一个消息缓冲池日志文件顺序结构:Kafka的高吞吐量就是依赖顺序写入(当然还包括了一些零拷贝的内容);消息可以写入多个分区来实现并行,但是多分区的主题只能保证一个分区内的消息是有序的...

2019-06-08 12:46:23 1235

原创 使用Structured Streaming消费Kafka数据

由于工作需要,在数据收集上牵扯到多个维度的爬虫数据。之前的流程是:爬虫工程师通过文件方式保存爬取的数据,交付给我们做数据清洗处理,再导入到数据库。为了降低交互过程中的时间成本,提高效率,我们开始引入流处理的方式。之前的模式:使用流处理之后的模式:通过kafka-python包的生产者写入数据首先,需要对爬虫脚本进行改造。原先的写入文件代码部分可以不需要改动,只要对爬取到的数据增加写入k...

2019-06-08 12:43:27 2787 6

原创 MLflow Models 模块解析

通过Tracking和Projects模块,我们可以管理记录参数以及整合不同的项目。最后这些训练出来的模型如何做到在线部署或者是做批处理应用,这个需要使用MLflow Models来解决。同样的,在MLflow Models相关文档中, 对Models模块的定义为:这是一套标准格式来对模型结果进行打包,并可以被下游工具(如在线REST API服务和Apache Spark的批处理)所使用。ML...

2019-06-02 19:32:10 1842

原创 MLflow Projects 模块解析

通过Tracking模块,我们已经能够对参数进行管理。接下来我们通过Projects模块来实现可复用的代码以及为后续生产部署做准备。从文档可以看到Projects模块的定义:这是一种基于约定俗成的规则来对代码进行管理的格式。 提供了api和命令工具来串接项目到一个工作流程中。接下来,我们来探索这个约定俗成的规则以及如何复现其他项目的代码。MLflow Projects 格式管理以mlflo...

2019-06-02 11:23:47 884

原创 MLflow Tracking 模块解析

MLflow Example Github地址 https://github.com/mlflow/mlflow-example大家在试用MLflow的时候可以用上面这个github代码来做演示。MLflow tracking 功能MLflow tracking提供了两大模块的功能:执行记录的api以及进行记录查看的UI界面。记录的内容可以包括:代码版本运行的起始和结束时间源码文件...

2019-06-01 23:25:43 1995

原创 MLflow 项目总览

由于图片放在Github上,需要的同学可以在Github上看该分享:mlflow_overview Github项目地址: https://github.com/mlflow/mlflow官方网站: https://www.mlflow.org/MLflow 组成模块从去年6月份databricks公司开源MLflow项目至今,该项目已经从alpha版本迭代到了0.9版本,而在最近的Sp...

2019-06-01 13:04:11 1257

原创 Paddle 模型保存与加载

前面我们已经通过搭建LeNet模型来识别手写数字MNIST,最终一个epoch训练的模型准确率可以达到97.5%. 接下来我们看如何对模型进行保存以及后续加载模型进行推断。Paddle提供两种方式的保存和加载模型:保存整个模型只保存模型参数整个模型的保存与加载保存模型使用fluid.io.save_inference_model这个API,参数为:保存路径,输入的Variable名,...

2019-04-17 20:50:47 5249

原创 Paddle使用流程

前面讲了paddle在数据上的设计以及Ploter的实时画图功能。接下来就是看看Paddle怎么实现神经网络的训练。首先所有神经网络的实现流程无非是:加载数据 -> 定义网络结构 -> 选择优化器 -> 迭代进行计算优化 -> 保存模型参数以供后续使用。接下在我们用经典的LeNet模型训练MNIST数据集来演示:加载数据关于数据如果还有不太理解的可以参考之前的...

2019-04-14 23:08:41 2964

原创 Paddle的实时画图功能

记得第一次跑Paddle的官方例子时,最让我惊奇的是它能实时地显示train loss和val loss随着训练次数的变化图。之前用Pytorch都是在训练过程中先打印训练过程的loss,并且把他们保存起来。最后等训练完成再作图。所以在训练完成之前只能看着数字的变化,却无法有一个实时的图形化结果。百度的Paddle给了我一个惊喜。所以抱着如何实现的疑问,我去查看了框架源码,才发现,原来只是一个简...

2019-04-14 00:18:03 2622 2

原创 PaddlePaddle 数据集初探

最近开始使用PaddlePaddle深度学习框架,因为之前有使用过Tensorflow和Pytorch,所以整体感觉上手不难。具体官方文档以及Github资料如下,可以说最吸引我的地方在于百度为了推广这个框架,把很多主流的模型都官方实现了,同时相关的数据集和预训练模型也提供方便的下载渠道。官方文档Paddle Github项目Models GitHub项目刚开始接触Paddle的时候...

2019-04-13 21:26:21 3149

原创 Paxos Made Simple 论文解读

最近在看zookeeper相关学习资料,了解到了拜占庭将军问题和Paxos算法都是Leslie Lamport 老爷子提出来的,这两个问题都构造了一个现实场景,让人印象深刻。接下来开始解读Paxos一致性协议算法。Section 1 一致性问题对于一致性算法的要求如下:只有被提议的值才有可能被选中只有一个值能被选中直到提议的值被选中后,进程才能获悉到被选中的值关于活性livene...

2019-04-11 13:58:05 478

原创 在scala编译的jar包中使用hive,通过spark-submit提交spark sql任务

之前一直是在交互式操作hive表,这次使用scala编译成jar包,提交到spark-submit首先由于是用maven来管理scala项目,所以需要增加pom.xml的配置文件,要注意scala版本要跟spark的jar包中的scala版本一致,否则编译出来的jar包会报错java.lang.BootstrapMethodError: java.lang.NoClassDefFoundEr...

2019-03-02 21:22:13 662

原创 Spark读取hive表

Spark读取hive表hive相关安装问题,请参见别的资料由于在hive里面操作表是通过mapreduce的方式,效率较低,本文主要描述如何通过spark读取hive表到内存进行计算。第一步,先把$HIVE_HOME/conf/hive-site.xml放入$SPARK_HOME/conf内,使得spark能够获取hive配置本次主要遇到两个坑Hive在spark2.0.0启动时无...

2019-02-23 18:45:49 3688

原创 spark on yarn 配置

之前一直是在搭建好的集群上使用spark。 这次需要在新的集群上使用spark,但是集群只安装了hdfs和yarn组件。经过别人提醒,可以直接spark on yarn运行,经过收集资料,汇总如下:1. spark on yarn配置有关spark on yarn的配置参考:[https://blog.csdn.net/qq_21439395/article/details/80678372]...

2019-02-23 14:19:14 5409

原创 git 常用命令

配置git config --global user.email "you@example.com"git config --global user.name "Your Name"初始化git init新增缓存区文件git add &lt;file-name&gt;# add allgit add .提交git commit -m "what you do"配置.gi...

2019-01-10 10:32:35 108

原创 Spark ML CrossValidator获取最佳参数

获取所有参数组合以及对应的cv评估结果,zip之后进行排序(按照metric由好往坏),提取出对应的Param:value字典def getBestParam(cvModel): params = cvModel.getEstimatorParamMaps() avgMetrics = cvModel.avgMetrics all_params = list(zip(p...

2019-01-10 09:56:18 2420

原创 SVM支持向量机及SMO算法总结

之所以写这篇文章,主要是因为SVM和SMO的算法看了很多遍才看懂,现在网络上也有很多相关的资料,这篇文章主要是记录自己的学习过程,集中在后面的证明求解过程。初学者建议先看底下的参考资料,把相关概念弄清楚了之后,如果在看论文过程中有疑惑的,可以过来看没看有没有参考的地方。首先对于SVM(support vector machine)的理解为:寻找一个超分类平面,把不同分类的数据分隔开,且两边的最...

2018-04-01 20:42:25 425

原创 Logistic Regression梯度下降使用证明

最近在看机器学习实战,其中有些代码部分容易让人摸不着头脑。主要是代码里面把原理细节的东西隐藏了,为了更好地理解Logistic Regression,在这篇博客记录一下推导过程。首先是Logistic Regression的损失函数(loss function): 其中y为实际值,a为计算值。L(y,a)=−[y∗ln(a)+(1−y)∗ln(1−a)]L(y,a)=−[y∗ln(a)+(...

2018-03-25 19:53:21 204

原创 拉格朗日乘子Lagrange Multiplier

Lagrange multiplier很多时候我们需要求的表达式的最大值,一般我们都是求导,令其等于0. 但在机器学习的过程中,我们经常遇到在有限制的情况下,最大化表达式. 如下例子所示:maximizef(x,y)" role="presentation">maximizef(x,y)maximizef(x,y)maximize f(x,y) subject to g(x,y)=0" r

2018-01-26 21:50:46 3322

原创 Gaussian Mixture Model(GMM) using EM Algorithm 使用EM算法求解高斯混合模型

Gaussian Mixture Model using EM AlgorithmE-M 算法有个典型的应用,就是高斯混合模型,适用于对多个高斯分布的数据进行分类。Gaussian Mixture Model (k-mixture):(14)p(X|θ)=∑i=1kαlN(X|μl,Σl)" role="pres

2018-01-26 00:54:28 499

原创 Expectation Maximization(EM算法)证明过程

Expectation Maximization单个高斯分布假设已知观测到的数据x={x1,x2...,xn}\mathbf{x}=\{x_1, x_2 ..., x_n\}. 若对该数据进行单个高斯分布θ(μ,σ2)\theta(\mu, \sigma^2) 的假设,则可有以下log likelyhood :L(θ|x¯)=log(P(x¯|θ))=∑i=1nlog(P(xi|θ)

2018-01-23 23:33:37 369

原创 机器学习实战之数回归,CART算法

最近在看机械学习实战,发现上面的代码较旧, 在实际码代码的过程中,也发现了一些语法或者逻辑错误。所以把相关的代码放上来以供大家参考。python版本为3.6CART算法:通过不停地对数据集进行数回归分类,降低数据集的总方差。1. 首先需要载入数据:这里需要做一下修改,把map的内容展开成list拼接到输出。def loadDataSet(fileName):

2017-10-25 23:25:43 497

原创 UVA 10361 Automatic Poetry

简单的字符串处理问题, 代码如下:#include #include #include #include #define MAXN 100int n;char l1[MAXN];char l2[MAXN];char c1[MAXN];char c2[MAXN];char ss[MAXN][MAXN];int main(){ int i,j, ps;

2017-06-04 18:24:34 266

空空如也

空空如也

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

TA关注的人

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