自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Alan Lee

Python / NLP,alanlee.fun

原创 博客变动

现在我有三个博客:Alan Lee,独立博客The North Cloud Gate,独立博客CSDN之前我的技术类文章都是在 1 和 3 上同步发表,造成了严重的信息冗余,博客划分不够细。因此接下来一段时间我会按照如下的划分,来调整博客上的文章:Alan Lee:主要用来分享 NLP/DL/ML 的相关的技术文章。所以其他类别的文章,应该全部会转移到 3 上。The North...

2020-04-03 16:41:43 1086

原创 【TensorFlow】Windows10 64 位下安装 TensorFlow - 官方原生支持

之前 写过一篇在 ubuntu 下安装 TensorFlow 的教程,那个时候 TensorFlow 官方还不支持 Windows 系统,虽然可以通过其他方法安装,但是终究不是原生的,而且安装过程繁琐易错。好消息是,Google官方在11月29号的开发者博客中宣布新的版本(0.12)将 增加对Windows的支持,我11月30号知道的,立马就安装试了试,安装过程非常简单,不过也有一些需要手动调整。...

2016-12-01 09:11:44 297354 355

原创 BERT 是如何构建模型的
原力计划

本文于 2020/05/08 首发于我的个人博客,未经允许,不得转载。Good things take time, as they should.前面我写了一篇文章来讲 BERT 是如何分词的,现在,轮到该说说 BERT 模型是如何定义的了。BERT 模型的大致结构可能大家已经很清楚了,实际上核心就是 Transformer encoder。本文主要是结合代码(modeling.py)实现来看下模型的定义,以及相关辅助函数,带你解读整个 modeling.py。modeling.py 共有 .

2020-06-23 08:32:50 431

原创 有意思的 lstrip 和 removeprefix(Python 3.9)

废话不多说,上正文。对比Python 3.9 的新特性中,有两个新的字符串方法:str.removeprefix(prefix, /)、str.removesuffix(suffix, /),前者是去除前缀,后者是去除后缀。ěi~,是不是感觉似曾相识,这不就是 lstrip()、rstrip() 的功能吗?还真不是。来看一个对比:>>> '今天天气不错'.removeprefix('今天')'天气不错'>>> '今天天气不错'.lstrip('今天')'气

2020-05-24 12:46:20 358

原创 BERT 是如何分词的

BERT 是如何进行分词的BERT 表示 Bidirectional Encoder Representations from Transformers,是 Google 于 2018 年发布的一种语言表示模型。该模型一经发布便成为争相效仿的对象,相信大家也都多少听说过研究过了。本文主要聚焦于 BERT 的分词方法,后续再谈模型实现细节。BERT 源码中 tokenization.py 就是预...

2020-05-19 10:13:15 3889 8

原创 PDF 转图片时丢字的一种可能解决方案

问题Python 中 PDF 转图片一般用的是 pdf2image。有时我们会发现 PDF 转出来的图片都是空白,或者缺失了一些字,具体表现就是一些应该有字的区域是空白。由于某些原因我不能把出现问题的文件放上来,不过大致就是这个情况。主要的代码如下:images = pdf2image.convert_from_path('/path/to/pdf', output_folder='imag...

2020-04-09 16:44:42 661

原创 使用 VSCODE 连接远程服务器上的容器
原力计划

自从 VSCODE 出现以来,我就立马从 pycharm 转入了。厌倦了 pycharm 的笨重,用了 vscode 之后只能说是真香,编辑器界的 flask。但是和 flask 一样,虽然轻便,但是自然基本上一切都需要你自己去配置,各种插件和扩展。有些功能 pycharm 可能自带,但是 VSCODE 就需要自己各种折腾,比如说本文的主题:本地连接远程服务器上的容器。先说需求:使用 VSCOD...

2020-03-11 17:54:03 2936

原创 使用 plotly 绘制 Choropleth 地图
原力计划

本文将通过绘制中国省级 Choropleth 地图来解释如何使用 plotly 绘制 Choropleth 地图,主要有两种方法:底层 API plotly.graph_objects.Choroplethmapbox 和高层 API plotly.express.choropleth_mapbox,数据是 COVID-19 在某一天的疫情数据。什么是 Choropleth 地图Chorop...

2020-02-27 20:24:39 2676 3

原创 Python logging 较佳实践

记录日志是程序中尤其是 web 服务中的重要一环,恰到好处的日志记录可以帮助我们了解程序运行情况以及方便排(shuai)错(guo)。logger 和 handler如果使用 logging 不多,可能对 logger 和 handler 这两个概念不熟,大多数还是直接使用 logging.info() 来记录日志。Python 官方给了一个流程图来说明日志消息(LogRecord)在 lo...

2019-12-30 17:09:18 1022 2

原创 gunicorn accesslog 为空的一种可能解决办法

问题在 gunicorn 的配置文件中,有 accesslog 和 errorlog 两项,分别用来记录接口的访问历史和服务启动以及错误消息。假设有部分配置文件如下:loglevel = 'info'accesslog = "log/gunicorn_access.log"errorlog = "log/gunicorn_error.log"正常来说服务启动并有相应请求后,应该在 l...

2019-12-10 21:40:37 749 2

原创 使用 Mailgun 配置 Ghost 邮箱

Ghost 可以通过邮箱邀请作者入驻,一起创作,也可以通过邮箱找回密码。这个邮箱不是随便一个普通的邮箱就可以,需要一个专门的邮箱账号,Ghost 官方推荐的是 mailgun 邮箱服务,mailgun 一个月 10000 封邮件免费,这已经足够了。由于我的服务器和域名都是腾讯云的,本文就简单讲下如何为 Ghost 配置 mailgun 邮箱。本文假设你已经拥有域名(假设域名为 example.c...

2019-09-18 17:37:57 1930

原创 Ghost 博客平台安装和配置

本文所述安装和配置均在 Ubuntu 16.04 系统上,假设你已经拥有一个服务器和一个域名。安装安装过程主要参考官方教程,下面我总结下:在系统上创建一个新用户。一般安装 Ghost 会使用一个新用户,当然这也不是必须的。创建用户可以使用 useradd 和 adduser 命令,然后使用 usermod 命令将其加到 sudo 组里,最后使用新用户登录系统。命令详细使用方法可参考其文档...

2019-09-18 11:48:34 1872 6

原创 有点坑的 np.array_split

假如我们想要把一个 array-like 的东西拆分成多个小组(或者叫 bucket),给定组的数目或者组的大小,最后一组不足则保持原样。那么我们想到的可能是 np.array_split() 函数。我们使用其官方例子来说明一下。例子 1:把一个含有 8 个元素的列表拆分成 3 组,那么 np.array_split() 的结果是:>>> x = np.arange(8....

2019-07-17 15:38:48 321

翻译 理解 Python 中的 for 循环

译者注:本文翻译自 Trey Hunner 于 2019 年 6 月 18 日发表的文章 Loop Better: a deeper look at iteration in Python文中括号或者引用块中的 斜体字 为对应的英文原文或者我自己注释的话(会标明「译者注」),否则为原文中本来就有的话文中的「我」均指原作者 Trey Hunner目录保留英文原文一些术语及特殊用语保留英...

2019-07-06 10:20:36 2125

翻译 理解主成分分析

译者注:本文翻译自 Rishav Kumar 于 2019 年 1 月 2 日发表的文章 Understanding Principal Component Analysis文中括号或者引用块中的 斜体字 为对应的英文原文或者我自己注释的话(会标明「译者注」),否则为原文中本来就有的话文中的「我」均指原作者 Rishav Kumar目录保留英文原文本人水平有限,如有错误欢迎指出能力...

2019-04-20 15:10:38 259

原创 修改 logging 时间

问题在记录一些必要信息时,我通常会使用 logging 模块,在输出信息时同时可以输出时间和日志等级,例如使用 basicConfig 来先设定日志格式:logging.basicConfig(format='%(asctime)s %(levelname)s: %(message)s', level=logging.INFO, ...

2019-01-06 19:32:22 2765 6

翻译 理解神经网络中的目标函数

译者注: - 本文翻译自 Lars Hulstaert 于 2017 年 11 月 4 日发表的文章 Understanding objective functions in neural networks。 - 文中括号或者引用块中的 斜体字 为对应的英文原文或者我自己注释的话(会标明「译者注」),否则为原文中本来就有的话。 - 文中的「我」均指原作者 Lars Huls...

2018-06-04 22:32:50 9404 3

原创 2017 Python 问卷调查结果初步分析

Note:本文在我的个人站点同步发布:2017 Python 问卷调查结果初步分析 · Lee’s Space Station,无广告,体验更好。 未经授权,禁止转载。前言2017 年末,PSF(Python Software Foundation,Python 软件基金会)和 JetBrains 一起进行了一次全球范围内的关于 Python 使用情况的问卷调查,共有来自 1...

2018-04-29 14:48:02 4229 2

原创 【Python】使用 zipfile 解压含有中文文件名的 zip 文件

问题在使用 Python 内置标准库 zipfile 解压文件时,如果压缩文件中有的文件含有中文,那么解压后就会发现文件名中的中文部分是乱码。例如我分别新建三个 txt 文件:文件1.txt,文件2.txt 和 文件3.txt,然后将这三个文件压缩到一个名为 文件.zip 的压缩文件中。然后我们使用下面的代码来解压:import zipfilewith zipfile.ZipFile...

2018-04-05 21:11:47 10111 1

原创 使用 CloudFlare 为 hexo 博客实现 HTTPS

博客地址之前一直都是默认的 secsilm.github.io,一直想换个自己的域名,正巧看到 NameBeta 上好几个域名都好便宜,就准备买个搞搞,最后挑中了 alanlee.fun 这个域名。把自己的博客域名换成自己买的域名并实现 HTTPS(GitHub Pages 不支持自定义域名 HTTPS),大概需要这么几个步骤(以在 namecheap 上购买域名为例):在 namech...

2018-03-19 21:10:23 4219

翻译 理解 LSTM 网络

译者注: - 本文原文为 Christopher Olah 于 2015 年发表在自己博客上的经典文章:Understanding LSTM Networks – colah’s blog。 - 没有翻译原文中的 Acknowledgments 部分,此部分为致谢,私以为无关。 - 文中括号或者引用块中的 斜体字 为对应的英文原文或者我自己注释的话(会标明 译者注),否则为原文中本

2017-12-29 18:58:36 3882

原创 【TensorFlow】理解 Estimators 和 Datasets

Estimators 和 DatasetsGoogle 在 2017 年 9 月 12 号的博文 Introduction to TensorFlow Datasets and Estimators 中介绍了新引入的两个新特性 Datasets 和 Estimators:Datasets:创建一个输入管道(input pipelines)来为你的模型读取数据,在这个 pipelines ...

2017-12-10 17:37:24 10078 7

原创 Windows 10 资源管理器黑色风格

今天来水一篇,说说我前几天某天上午初步实现了我一直想弄的东西:Windows 10 资源管理器黑色风格,用了几天,整体上感觉还不错,当然也有点小瑕疵,我会在后面说。先睹为快实现后的界面是这样的: 主界面 文件列表 任务管理器 复制 记事本WARNING! 操作风险很大,存在不稳定因素,请三思后行,出了什么幺蛾子不要赖我没有事先提醒哦!好了,看到这里你还想弄的话,那就接着往下看吧。安装开始前

2017-10-26 22:47:41 26085 7

翻译 梯度下降优化算法概述

原文作者简介:Sebastian Ruder 是我非常喜欢的一个博客作者,是 NLP 方向的博士生,目前供职于一家做 NLP 相关服务的爱尔兰公司 AYLIEN,博客主要是写机器学习、NLP和深度学习相关的文章。 本文原文是 An overview of gradient descent optimization algorithms,同时作者也在 arXiv 上发了一篇同样内容的

2017-10-08 21:41:19 9291

翻译 使用集成学习提升机器学习算法性能

使用集成学习提升机器学习算法性能 这篇文章是对 PythonWeekly 推荐的一篇讲集成模型的文章的翻译,原文为 Ensemble Learning to Improve Machine Learning Results,由 Vadim Smolyakov 于 2017 年 8 月 22 日发表在 Medium 上,Vadim Smolyakov 是一名 MIT 的研究生,对数据科学和机器学习

2017-08-30 18:47:18 6813 1

原创 【TensorFlow | TensorBoard】理解 TensorBoard

TensorBoard 是用于可视化 TensorFlow 模型的训练过程的工具(the flow of tensors),在你安装 TensorFlow 的时候就已经安装了 TensorBoard。我在前面的 【TensorFlow】TensorFlow 的卷积神经网络 CNN - TensorBoard版 和 【Python | TensorBoard】用 PCA 可视化 MNIST 手写数字识

2017-08-20 10:01:19 31643 19

原创 【Python】Numpy 中的 shuffle VS permutation

有时候我们会有随机打乱一个数组的需求,例如训练时随机打乱样本,我们可以使用 numpy.random.shuffle() 或者 numpy.random.permutation() 来完成。这两者非常相似,实现的功能是一样的,那么他们到底有什么区别?本文代码及图片可以在 我的GitHub 找到。参数区别以下 numpy.random.shuffle() 简称 shuffle,numpy.random

2017-06-17 23:28:21 19275 4

原创 【TensorFlow】DNNRegressor 的简单使用

tf.contrib.learn.DNNRegressor 是 TensoFlow 中实现的一个神经网络回归器。一般神经网络用于分类问题的比较多,但是同样可以用于回归问题和无监督学习问题。此文的代码和所生成的 TensorBoard 文件可以从 这里 下载。tf.contrib.learntf.contrib.learn 是 TensorFlow 提供的一个机器学习高级 API 模块,让用户可以更方

2017-06-02 22:03:42 12844 9

原创 XGBoost 在 Windows 10 和 Ubuntu 上的安装

关于什么是 XGBoost,我在这里不再解释,如果有时间的话再写一篇文章来解释,在数据科学里非常有用。大家可以参考 Tianqi Chen 的论文 XGBoost: A Scalable Tree Boosting System ,本篇文章只是在 Windows 上安装 XGBoost 的 Python 包的方法。官网官网 介绍的方法是从 GitHub 编译安装,但是在我的机器上没有成功,pip 同

2017-05-18 10:58:31 2055 1

原创 【Python】自动生成命令行工具 - fire 简介

Python 中用于生成命令行接口(Command Line Interfaces, CLIs)的工具已经有一些了,例如已经成为 Python 标准库的 argparse 和第三方的 click ,这些都是很不错的工具。但是这些工具为 Python 程序生成 CLIs 的时候稍显麻烦,需要增加的地方比较多,过程稍显繁琐。今天介绍的这个工具,几乎可以不改变原始代码就可以生成 CLIs,是 Google

2017-04-22 10:16:43 14215

原创 奇异值分解 SVD 的数学解释

奇异值分解(Singular Value Decomposition,SVD)是一种矩阵分解(Matrix Decomposition)的方法。除此之外,矩阵分解还有很多方法,例如特征分解(Eigendecomposition)、LU分解(LU decomposition)、QR分解(QR decomposition)和极分解(Polar decomposition)等。这篇文章主要说下奇异值分解,

2017-03-29 12:33:19 38816 10

原创 【Python】统计字符串中英文、空格、数字、标点个数

题外话:今天打酱油的做了网易数据挖掘工程师的在线笔试题,被打击了。本文代码可在 这里 下载。问题在网上无意间看到这么一个题目:统计一个字符串中的中英文、空格、数字、标点符号个数。 正好再熟悉一下 Python 中字符串相关方法,所以来做一下。代码# coding: utf-8import stringfrom collections import namedtupledef str_count

2017-03-25 22:01:51 23137

原创 【TensorFlow】TensorFlow 的卷积神经网络 CNN - TensorBoard 版

前面 写了一篇用 TensorFlow 实现 CNN 的文章,没有实现 TensorBoard,这篇来加上 TensorBoard 的实现,代码可以从 这里 下载。什么是 TensorBoard To make it easier to understand, debug, and optimize TensorFlow programs, we’ve included a s...

2017-03-17 10:57:39 5537 4

原创 使用 tree 命令格式化输出目录结构

今天在写一个 Markdown 文件的时候需要将一个目录的结构表示出来,于是找了找有没有相关命令,找到一个叫做 tree 的命令,Windows 和 Linux 都有这个命令。Windows 10我是在 Windows 10 上用的,不过根据 这篇文章 应该在 Windows 7 和 8 上也是可以用的。用法如下:tree [Drive:[[Path] [/F] [/A]其中/F 表示不仅输出文件

2017-03-15 12:45:51 6728

原创 VSCode Markdown PDF 导出成 PDF 报 phantomjs binary does not exist 错误的解决办法

问题VSCode 是微软推出的一款开源的代码编辑器,从 sublime text 转过来后感觉还不错,昨天在用他写 Markdown 文件时想着直接导出 PDF 文件(之前都是用 Markdown Pad 2),找到一个叫 Markdown PDF 的插件,安装之后在 Markdown 文件里右键选择 Convert Markdown to PDF 后报如下错误:就是 ERROR: p...

2017-03-11 09:53:53 11411

原创 【Python】numpy 中的 copy 问题详解

这篇文章本是我在 segmentfault 上的一个回答,但是越来越觉得有必要单独拿出来,毕竟这个问题挺常见的。具体可参看 numpy 官方文档 。正文numpy关于copy有三种情况,完全不复制、视图(view)或者叫浅复制(shadow copy)和深复制(deep copy)。而 b = a[:] 这种形式就属于第二种,即视图,这本质上是一种切片操作(slicing),所有的切片操作返回的都是

2017-03-01 16:54:11 20974 4

原创 Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)解决办法

由于我很早就在 GitHub 下载了 TensorFlow 的源码库没有更新,在运行 TensorFlow 官方的 CNN 例子的时候,总是报 ImportError 错误,找不到 cifar10 模块,后来发现是 TensorFlow 的源码库更新了,这些模型实现都被移到了一个新的源码库:models 。但是呢,在我 clone 了 models 到本地后,按照 TensorFlow 官方的例子运

2017-02-26 11:45:44 15588

原创 【TensorFlow | 升级】TensorFlow 1.0 发布

前面写了 TensorFlow 在Windows上的安装教程,当时版本还是 0.12 。NOW首届 TensorFlow 开发者大会(TensorFlow Dev Summit)已于美国时间昨日召开,YouTube 还进行了直播。更重要的是,TensorFlow 1.0 版本发布。Google Research Blog 也于昨天在 博客 中公布了这一消息。改动这一版本的改动还是比较大的,很多旧的

2017-02-16 22:46:55 11799 3

原创 【TensorFlow】TensorFlow 的卷积神经网络 CNN - 无 TensorBoard 版

前面 有篇博文讲了多层感知器,也就是一般的前馈神经网络,文章里使用 CIFAR10 数据集得到的测试准确率是 46.98%。今天我们使用更适合处理图像的卷积神经网络来处理相同的数据集 - CIFAR10,来看下准确率能达到多少。本文代码基于 TensorFlow 的官方文档 做了些许修改,完整代码及结果图片可从 这里 下载。这篇 文章是对本文的一个升级,增加了 TensorBoard 的实...

2016-12-28 12:13:13 5673 16

原创 【Python | TensorBoard】用 PCA 可视化 MNIST 手写数字识别数据集

Principal component analysis (PCA) is a statistical procedure that uses an orthogonal transformation to convert a set of observations of possibly correlated variables into a set of values of linearly u

2016-12-10 19:23:02 11781

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