自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

songbinxu的博客

学无止境,跬步千里

原创 Linux安装Python3.8

Linux下安装Python3.8 一、文件下载 https://www.python.org/downloads/release/python-380/ 下载Python-3.8.0.tgz文件 $ tar -zxvf Python-3.8.0.tgz 二、安装必要环境 首先安装一些必要的库...

2019-10-22 15:14:52 3344 2

原创 Windows下运行gensim提示没有C编译器解决方案

Windows下安装gensim 在windows下装gensim跑word2vec的时候遇到了一些坑。 坑之一:没有C扩展 最开始用pip安装gensim后,运行下面代码会报一个warning。 from gensim.test.utils import common_texts from ge...

2019-07-30 15:18:26 610 0

原创 Ubuntu解决matplotlib.pyplot的title和label中文乱码问题

Ubuntu解决matplotlib.pyplot的title和label中文乱码问题 中文乱码问题示例 使用matplotlib.pyplot画图时,需要在图标题、轴标题处使用中文,用以下代码画出来的图会出现乱码,如下图所示。 t = np.linspace(0, 2*np.pi, 100) y...

2019-04-18 10:50:28 1008 0

原创 基于DTW相似度的Affinity Propagation(AP)聚类

基于DTW相似度的Affinity Propagation(AP)聚类 数据 时序序列数据集 CharacterTrajectories,包含20种小写英文字母手写体的坐标序列。 训练集 测试集 类别数 序列长度 维度 数据类型 1422 1436 20 182 3 Motion ...

2019-01-26 19:47:11 4072 0

原创 用Tensorflow计算距离矩阵

用Tensorflow计算距离矩阵   一般计算距离矩阵,都是用两层循环来做,这样效率太低。在样本维度上,距离矩阵的运算相互没有依赖关系,是可以做并行的。除了开多线程用CPU并行计算以外,还可以用GPU加速,比如拿tensorflow实现。 数据结构   现在有 NNN(可以理解为 batch_s...

2019-01-23 19:05:39 1986 0

原创 InfoGAN 生成时序序列

InfoGAN 生成时序序列 简介 完整代码:https://github.com/SongDark/timeseries_infogan   本文介绍用InfoGAN生成多维时序序列。 数据 数据集下载地址 Name Class Dimension Train Size Test Si...

2019-01-14 10:29:08 3840 8

原创 CycleGAN更换MNIST底色

CycleGAN实现MNIST转换 数据准备 从 这里 下载 mnist.npz。 将背景改成彩色,数字保持白色,背景rgb随机生成。 # [28, 28] -> [28, 28, 3] def change_background(img): rgb...

2019-01-10 11:02:16 826 0

原创 Tensorflow Pad

Tensorflow Pad 函数定义 tf.pad( tensor, paddings, mode='CONSTANT', name=None, constant_values=0 ) 参数说明 tensor :输入 padding...

2019-01-09 14:19:00 378 2

原创 Tensorflow基于CNN的AutoEncoder

Tensorflow基于CNN的AutoEncoder 完整代码:https://github.com/SongDark/cnn_autoencoder_mnist 一、概述 AutoEncoder属于无监督学习,由一个编码器Encoder和一个解码器Decoder组成,是一个Encoder-De...

2019-01-07 16:39:04 3589 0

原创 用各种GAN生成MNIST数字

用各种GAN生成MNIST数字 数据获取 MNIST数据集的获取可以参考这篇博客: https://blog.csdn.net/songbinxu/article/details/82992264 需要注意的是MNIST数据的值域范围,有的源是原本的[0,255][0,255][0,255],有的...

2019-01-06 15:27:21 3222 0

原创 用各种GAN生成正态分布

用GAN生成正态分布     毕设中有一部分与GAN(Generative Adversarial Networks)相关,但是一直不work,因此准备重新从最简单的GAN入手,实现一下试试看能不能发现什么问题。     本文会用GAN从标准正态噪声生成均值为3,标准差为0.5的正态分布 N(3,...

2019-01-06 13:32:25 1552 1

原创 Tensorflow卷积中Padding的两种方式

Tensorflow卷积中Padding的两种方式 两种Padding VALID:若不够滑动,则将右下的剩余部分全部舍弃,从原矩阵左上角开始卷积。 H′=⌈H−k+1d⌉H'=\left \lceil \frac{H-k+1}{d} \right \rceilH′...

2018-12-28 17:36:49 3856 3

原创 Tensorflow不定长卷积与解卷积

Tensorflow不定长卷积与解卷积   在用CNN处理某些图像或时序输入时,需要考虑输入长度不固定的情况。例如在做场景文字识别时,输入的图像是已经被检测出来的长方形的包含文字的图像,这些 “检测框” 的长度不一。一般有两种做法,第一种从数据下手,将输入 padding 或 resize,所谓 ...

2018-12-13 20:43:24 990 0

原创 Python数据存储与压缩

Python数据存储与压缩   跑实验要用到数据集,对于一些不大的数据集,为了节省时间,有时候会先预处理,然后将各个文件存储成一个大文件,一次性读入内存,省去了每个迭代重新读入和重新预处理的时间。这里讨论一些数据存储与压缩方式,至于Tensorflow里用到的Dataset之类的数据存取不在本文范...

2018-12-10 16:33:14 3047 0

原创 Python参数列表

Python不定长参数列表 用星号*实现不定长参数列表,单个*表示将参数以tuple的形式传入,两个*表示将参数以dict的形式传入,前者传参不能指定参数,后者传参必须指定参数,且参数会被处理成str类型。 def f(*args, **kwargs): print "args:...

2018-12-09 16:48:27 1199 0

原创 Tensorflow中的交叉熵(Cross Entropy)

Tensorflow中的交叉熵(Cross Entropy) Cross Entropy (Sigmoid) 适用于二分类,输入函数的logits和labels应当是一维的。如果输入One-Hot过的logits,会被当做多个一维分别计算。注意不要将已经通过sigmoid计算得到的数值输入函数,那...

2018-12-04 17:26:22 355 0

原创 GAN中的Spectral Normalization

GAN中的Spectral Normalization   Spectral Normalization 出自 《Spectral Norm Regularization for Improving the Generalizability of Deep Learning》和《Spectral ...

2018-11-28 20:30:05 3500 8

原创 利用tf.nn.raw_rnn自定义RNN Decoder

利用tf.nn.raw_rnn自定义RNN Decoder 在用 Tensorflow 实现 RNN AutoEncoder 时,要求 Decoder 部分每个 timestep 都使用它上一个 timestep 的输出 yt−1y_{t-1}yt−1​ 作为输入,而利用普通的 tf.nn.dyn...

2018-11-16 15:14:13 1207 0

原创 获取MNIST数据的几种方法

获取MNIST数据的几种方法 MNIST是一个非常常见的数据集,数据量小,方便读入内存,而且直观可见,在实现各种机器学习算法的时候,经常可以用来当小白鼠实验。这里介绍几种获取MNIST的方法,包括直接从某个链接下载数据集的方案,也有利用python库间接下载的方案。 方法1. 官网下载 MNIS...

2018-10-10 10:06:49 5005 1

原创 交叉熵、KL散度、JS散度

信息量 符号xxx的信息量定义为xxx出现概率的倒数,单位比特 I(x)=log⁡1P(x)I(x)=\log \frac{1}{P(x)}I(x)=logP(x)1​ 熵 平均信息量 H(P)=∑P(x)log⁡1P(x)H(P)=\sum P(x)\log \frac{1}{P(x)}H(P)...

2018-10-08 15:12:55 635 0

原创 简易Makefile编写笔记

简易Makefile编写笔记 g++的基本使用    习惯IDE的一键编译运行有时候并不是一件好事,特别是对于我这种连编译、链接、构建、调试分别是什么都搞不清楚的人。查阅了一些资料后,我得知gcc/g++是一种常用的程序构建工具,它可以把源代码、头文件链接起来,构建出可执行的二进制文件。 ...

2018-09-18 14:18:03 1482 0

原创 matplotlib报错no display name and no $DISPLAY environment variable解决方案

matplotlib报错no display name and no $DISPLAY environment variable解决方案 # import this before everything import matplotlib matplotlib.use('Agg�...

2018-09-13 15:47:43 1024 0

原创 海量数据相似性度量与聚类: LHS-MinHash

海量数据相似性度量与聚类: LHS-MinHash   写本文的原因是近期在涉猎用户画像相关的无监督学习理论,刚好看到一篇运用LHS-MinHash做用户聚类的文章,却讲得过于笼统,对我这样的萌新(菜鸡)不太友好。于是我去搜索了关于LHS-MinHash和simhash的相关博客,有的写得非常不...

2018-07-02 01:40:00 4003 0

原创 PCA、LDA、Kmeans、SVD/EVD、谱聚类之间的关系

PCA、LDA、Kmeans、SVD/EVD、谱聚类之间的关系  最近在研究谱聚类时,迁移到主成分分析(PCA),发现两者有着惊人的相似之处,同时还牵扯到Kmeans、SVD,甚至LDA也有相通的地方(虽然LDA是有监督学习),因此在这里写一篇总结,描述一下以上各个模型之间的共通性,有助于加深对...

2018-06-30 20:50:06 1331 0

原创 特征值分解与奇异值分解及其应用

SVD奇异值分解 正交矩阵 正交矩阵   正交矩阵对应着正交变换,特点在于不改变向量的尺寸(模)和任意两个向量的夹角。在x-y坐标系中,通俗地讲,就是旋转两个坐标轴,得到新的互相垂直的坐标轴,求向量在新坐标系中的投影。 正交变换举例   图片摘自此处。 例如向量OAO...

2018-06-28 12:51:50 1470 0

原创 谱聚类(Spectral Clustering)原理及Python实现

谱聚类 图模型   无向带权图模型 G=<V,E>G=<V,E>G=,每一条边上的权重wijwijw_{ij}...

2018-06-28 10:44:56 18572 16

原创 瑞利熵与拉普拉斯矩阵

瑞利熵 瑞利熵 R(M,x)=x∗Mxx∗xR(M,x)=x∗Mxx∗xR(M,x)=\frac{x^*Mx}{x^*x}   此处的xxx是一个向量,矩阵MMM是一个Hermitian矩阵,即该矩阵共轭对称,Mij=M∗jiMij=Mji∗M_{ij}=M_{ji}^*,如果MMM是一个实...

2018-06-27 23:26:24 2314 1

原创 深度学习中的注意力机制

深度学习中的注意力机制 深度学习中的注意力机制 前言 Sequence to Sequence Sequence to Sequence 的各种形式 Attention Mechanism Attention 于机器翻译 Self-Attention 文字识别中的 Attention...

2018-06-21 17:07:17 19171 14

原创 计算广告中常用模型的相关资料整理

计算广告中的常用模型 前言   我会在这里动态更新我近期学习和工作中阅读过的计算广告相关论文和代码,作为自己学习的整理和总结。由于目前有逐个实现的计划,所以在这里构建一个传送门,方便之后实现的时候进行查阅。本文所有资料和链接均来自于互联网,直接搜索都能找得到,如有侵权,还望指出...

2018-06-12 11:19:25 1349 0

原创 Python在循环中显示进度条

Python在循环中显示进度条   本文代码转自 https://blog.csdn.net/u013832707/article/details/73608504,稍微做了一点魔改。   在训练模型时,往往有若干个迭代,想要实时显示训练进度,又不想每个迭代都输出而导致被刷屏,一种方法是显示进...

2018-06-11 12:36:10 4643 1

原创 利用sklearn划分训练集和测试集

利用sklearn划分训练集和测试集   交叉验证(Cross Validation)是常用的机器学习训练手段,可以有效检验一个模型的泛化能力。交叉验证需要将原始数据集平等地划分为若干份,例如 5-folds CV 指的是将数据集分为5份,然后进行5次训练,每次取出一份数据作为测试集,剩下的作为...

2018-06-06 15:03:39 3780 0

原创 Ubuntu 常用解压与压缩命令

Ubuntu 常用解压与压缩命令 .tar 文件 # 仅打包,并非压缩 tar -xvf FileName.tar # 解包 tar -cvf FileName.tar DirName # 将DirName和其下所有文件(夹)打包 .gz文件 # .gz gunzip Fi...

2018-05-24 15:51:57 96427 4

原创 Mac下Terminal指定用Sublime打开文件

Mac下Terminal指定用Sublime打开文件 方法一:open -a $ open -a /Applications/Sublime\ Text.app test.txt 缺点:麻烦 方法二:软链接 先建立软连接 $ ln /Applications/Sublime\ Text...

2018-05-24 11:28:38 2882 0

原创 Python中字典根据多项规则排序

Python中字典根据多项规则排序   在SQL中或者用pandas可以轻松地对一列数据按照多个规则进行排序,那么有没有办法直接用python的sorted实现呢?答案是肯定的。 key value b 10 c 10 a 10 d ...

2018-05-23 11:44:49 4728 3

原创 FP-growth 算法与Python实现

FP-growth 算法 介绍   打开你的搜索引擎,输入一个单词或一部分,例如“我”,搜索引擎可能会去统计和“我”一块出现得多的词,然后返回给你。其实就是去找频繁项集,而且需要相当地高效,像Apriori那样的速度肯定是不行的了。   本文要介绍的是FP-growth算法,它被用于...

2018-05-23 11:21:13 26984 4

原创 Apriori算法与python实现

Apriori算法   Apriori算法用于关联分析,其目标包括两个:发现频繁项集,发现关联规则。首先需要发现频繁项集,然后才能发现关联规则。 发现频繁项集   频繁项集指那些经常出现在一起的集合。若某个项集是频繁项集,则它的所有子集也是频繁的。反之,若一个项集是非频繁项集,则它的所有超集...

2018-05-22 08:57:22 4620 2

原创 实现一个CountVectorizer

实现一个CountVectorizer   最近在一个nlp问题中使用了sklearn的CountVectorizer库进行分词,目的是对一个多值离散型特征进行编码并转换成稀疏矩阵(csr_matrix),使用过程中发现CountVectorizer的速度非常慢,相当的耗时,因此决定提取最核心的...

2018-05-18 17:20:59 2607 1

原创 Python中in和has_key的性能比较

Python中in和has_key的性能比较   最近写了一个代码中需要判断一个字典D是否包含某个键值item,然后我使用了if item in D:,结果发现耗时很严重,于是改成if D.has_key(item),速度马上变快了很多。查阅了一些资料后,发现有一种说法是has_key是pyth...

2018-05-18 10:16:23 4444 3

原创 3Idiots-2014-Kaggle 比赛源码走读

3Idiots-2014-Kaggle比赛源码走读   最近在研究ffm,自然要找回3Idiots在2014年kaggle比赛的解决方案。主要是研究他们的特征提取方案,写下此文记录走读大佬代码的过程,目的是方便以后查询,免得忘记。 3Idiots代码下载 git clone https://...

2018-05-17 19:28:41 739 1

原创 《Attention Is All You Need 》阅读笔记

Attention Is All You Need 阅读笔记 Introduction   这是谷歌发表的文章,针对nlp里的机器翻译问题,提出了一种被称为”Transformer”的网络结构,基于注意力机制。文章提出,以往nlp里大量使用RNN结构和encoder-decoder结构,R...

2018-05-16 17:40:44 24830 5

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