自定义博客皮肤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、Linux 相关。

  • 博客(78)
  • 资源 (14)
  • 收藏
  • 关注

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

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

2016-12-01 09:11:44 350583 384

原创 Disqus 有评论但没显示的一种解决方案

换了博客主题后,发现原来文章的 disqus 评论不见了。原来是 identifier 的问题。

2022-09-10 09:19:47 387 1

原创 C4 数据集基本信息速览

带你速览用于训练T5 等大规模语言模型的 C4 数据集的基本信息。

2022-09-08 22:05:30 3164

原创 TensorBoard Projector 简易指南

原文发表在 TensorBoard Projector 简易指南 - Alan Lee。TensorBoard(TB)是一个非常棒的模型可视化工具,早期我也写过一篇文章来详细介绍各个面板。不过士别三日,当刮目相待。现在的 TB 和那时相比变化太多了,增加了许多功能面板,绝大部分我都还没怎么用过。其中最吸引我的面板之一就是 Projector,虽然我现在工作中并不怎么用到。现在终于抽出时间,来完整体验并写一篇 TensorBoard Projector(TBP)的简易教程。本文将会从原始文本出发(.

2022-01-09 15:38:06 1796

原创 使用 Transformers 在你自己的数据集上训练文本分类模型

最近实在是有点忙,没啥时间写博客了。趁着周末水一文,把最近用 huggingface transformers 训练文本分类模型时遇到的一个小问题说下。背景之前只闻 transformers 超厉害超好用,但是没有实际用过。之前涉及到 bert 类模型都是直接手写或是在别人的基础上修改。但这次由于某些原因,需要快速训练一个简单的文本分类模型。其实这种场景应该挺多的,例如简单的 POC 或是临时测试某些模型。我的需求很简单:用我们自己的数据集,快速训练一个文本分类模型,验证想法。我觉得如此简单的一个需

2021-11-13 08:00:00 2554 5

原创 NLP 中的通用数据增强方法及针对 NER 的变种

本文结合 A Visual Survey of Data Augmentation in NLP 和最新的综述论文 A Survey of Data Augmentation Approaches for NLP,大致总结了目前 NLP 领域的通用数据增强方法和几种针对如 NER 的序列标注模型进行适配的变种方法,关于后者,重点介绍了基于 mixup 改进的 SeqMix 方法。此外,本文较长,建议结合目录食用。通用数据增强方法阅读 Tip:每个增强方法最后的有序列表是提出或使用该方法的论文列表。L

2021-10-04 10:14:14 1506

原创 理解 PyTorch 中的 gather 函数

好久没更新博客了,最近一直在忙,既有生活上的也有工作上的。道阻且长啊。今天来水一文,说一说最近工作上遇到的一个函数:torch.gather() 。文字理解我遇到的代码是 NLP 相关的,代码中用 torch.gather() 来将一个 tensor 的 shape 从 (batch_size, seq_length, hidden_size) 转为 (batch_size, labels_length, hidden_size) ,其中 seq_length >= labels_length

2021-08-29 20:43:41 773

原创 Exception [WinError 995] 由于线程退出或应用程序请求 的解决办法

问题Windows 10 系统下,IPython 解释器内执行某些程序,会导致出现类似如下报错:Unhandled exception in event loop: File "C:\Users\secsilm\Anaconda3\lib\asyncio\proactor_events.py", line 768, in _loop_self_reading f.result() # may raise File "C:\Users\secsilm\Anaconda3\lib\asyn

2021-05-24 15:36:38 2517 4

原创 Ghost 博客 SSL 证书过期的解决办法

问题今天访问我的 Ghost 博客 的时候,发现进不去了:网上找的图,不过就是这个样子,当时忘了截图点击 高级 也没有进去的链接,而且页面地址前面写着”不安全“,证书显示也已经过期一个月了。而且我自己部署的 flask 服务也访问不了了。原因Ghost 本身其实会自动 renew 证书,可使用如下命令查看定时任务:$ sudo crontab -l14 0 * * * "/etc/letsencrypt"/acme.sh --cron --home "/etc/letsencrypt" &g

2021-05-08 21:24:49 661

原创 Python 3.10 的新功能:模式匹配 Pattern Matching

简介2021 年 3 月 2 日的时候,Guido 发推说 3.10.0a6 出来了,文档也已经有了,4 月 5 日会释出 a7,5 月 3 日出 b1。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fXdlI7RP-1615705797360)(https://i.loli.net/2021/03/04/wLZiV64fDnHmkbj.png)]推文中还特别提到「With Pattern Matching」,这是 3.10 的一个重磅功能,于去年 9 月 12 日在

2021-03-14 15:13:12 4675

原创 Lemmatization VS Stemming

简单来说,两者都是对词的归一化,但 Stemming(中文一般译为词干提取,以下简称 stem)更为简单、快速一些,通常会使用一种启发式方法去掉一个词的结尾。 Lemmatization(中文一般译为词形还原,以下简称 lemma)更为「智能」一些,上下文相关,有一个 vocab,不在其中的词不会被处理:Returns the input word unchanged if it cannot be found in WordNet. —— nltk.stem.wordnet — NLTK 3.5 d

2021-03-08 16:28:53 1274

原创 Ubuntu 18.04 安装 nvtop:一个高颜值的 nvidia-smi

平常我们查看 GPU 信息,比如哪个进程在占用 GPU,占用了多少,GPU 利用率怎么样等信息,都是使用 nvidia-smi,但这些信息都是实时的,也就是说你无法查看一定时间段内的变化情况。nvtop(NVIDIA TOP)是一个为 NVIDIA GPU 打造的、类 htop 的任务监视器,和 nvidia-smi 功能类似,但有着比 nvidia-smi 更漂亮的外观,也弥补了 nvidia-smi 不能查看一定时间段内 GPU 变化情况的缺陷。先来看一张官方效果图:我自己使用时的截图:那么

2020-11-24 14:27:49 2227

翻译 给 Python 程序员的 C++ 简易入门指南

译者注:本文原文成文较早,里面一些语法可能已经不是最新的了,但是其大部分观点在我看来仍然具有点拨意义,帮助你快速对 C++ 有个认识。本文改编自 Michigan State University 的 Rich Enbody 和 Bill Punch 的一篇文档。本文目的本文是给 Python 程序员的 C++ 简易入门,帮助你开始学习 C++。这不是一份完整的 C++ 入门。简洁优先于细节。为什么是 C++?为什么 Python 程序员要在乎 C++ 呢?C++ 及其父语言 C 更接近于操.

2020-11-22 19:45:48 2244

原创 Constituency Parsing with a Self-Attensive Encoder 论文解读

之前没咋涉略过 parsing 部分,最近有用到,遇到一个实现的很不错的库:benepar,无论是速度、代码还是性能上,伯克利出品。而本文要讲的论文就是 benepar 的参考论文,代码和论文作者都是一个人:Nikita Kitaev,论文发表于 ACL 2018。代码还参考了作者的另一篇论文:Multilingual Constituency Parsing with Self-Attention and Pre-Training。看时间,有空了再解读下 benepar 的源代码。写好了我会把链接放在

2020-11-16 20:55:56 829

原创 试用开源标注平台 Label Studio

数据标注是人工智能背后的女人。—— 我说的初探在 reddit 上看到一个人提了一个问题:What is your favourite (free) labelling tool?,你最喜欢的(免费)标注工具是什么。由于我一直关注标注工具,而且没找到好用、漂亮的标注工具(甚至一度计划自己做一个),也认为这块很重要,所以就点进去看了下。收获不少,帖子楼主提到的 Prodigy,我点进去看了看...

2020-11-10 16:14:30 4693 10

原创 理解编辑距离

顾名思义,编辑距离(Edit distance)是一种距离,用于衡量两个字符串之间的远近程度,方式是一个字符串至少需要多少次基础变换才能变成另一个字符串,可应用在拼写检查、判断 DNA 相似度等场景中。根据可操作的基础变换不同,可分为以下几种:莱文斯坦距离(Levenshtein distance):最常见的编辑距离,基础变换包括插入、删除和替换。但是需要注意一点的是,当每种变换发生时,产生的距离(或者称为代价)并不一定是 1,例如斯坦福大学关于最小编辑距离的课件中,一次替换产生的距离就可能是 2。最

2020-10-24 11:47:00 885

原创 如何计算 LSTM 的参数量

理论上的参数量之前翻译了 Christopher Olah 的那篇著名的 Understanding LSTM Networks,这篇文章对于整体理解 LSTM 很有帮助,但是在理解 LSTM 的参数数量这种细节方面,略有不足。本文就来补充一下,讲讲如何计算 LSTM 的参数数量。建议阅读本文前先阅读 Understanding LSTM Networks 的原文或我的译文。首先来回顾下 LSTM。一层 LSTM 如下:这里的 xtx_txt​ 实际上是一个句子的 embedding(不考虑

2020-10-24 09:20:32 5623 4

原创 Plotly 初步

写在前面如果图形和文字显示有异常,请前去我的个人小站:Plotly 初步 · Lee’s Space Station 查看,体验更好。简介Plotly 是一个用于绘制交互式图表的工具库,基于 React 和 Flask,基本功能免费,可以在 Jupyter Notebook 上进行在线或者离线绘图,支持 Python、MATLAB 和 R 等许多语言,其同类产品(Python 领域)是 bo...

2020-10-20 15:45:42 2336

原创 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 2460 2

原创 有意思的 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 7035 3

原创 BERT 是如何分词的

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

2020-05-19 10:13:15 24053 30

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

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

2020-04-09 16:44:42 3789

原创 博客变动

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

2020-04-03 16:41:43 1366

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

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

2020-03-11 17:54:03 10889 30

原创 使用 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 11025 12

原创 Python logging 较佳实践

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

2019-12-30 17:09:18 1954 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 2981 2

原创 使用 Mailgun 配置 Ghost 邮箱

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

2019-09-18 17:37:57 4529 2

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

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

2019-09-18 11:48:34 4100 11

原创 有点坑的 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 1894

翻译 理解 Python 中的 for 循环

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

2019-07-06 10:20:36 7111 2

翻译 理解主成分分析

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

2019-04-20 15:10:38 558

原创 修改 logging 时间

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

2019-01-06 19:32:22 6592 11

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

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

2018-06-04 22:32:50 15156 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 8528 2

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

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

2018-04-05 21:11:47 18882 2

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

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

2018-03-19 21:10:23 5438

翻译 理解 LSTM 网络

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

2017-12-29 18:58:36 4480

原创 【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 11032 12

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

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

2017-10-26 22:47:41 33628 9

Combining Pattern Classifiers Methods and Algorithms

L. Kuncheva 2004 年的 Combining Pattern Classifiers Methods and Algorithms

2017-08-30

HousePricesAdvancedRegressionTechniques数据集

Kaggle 比赛 HousePricesAdvancedRegressionTechniques 所用的数据集,比赛地址:https://www.kaggle.com/c/house-prices-advanced-regression-techniques,相关博文:http://blog.csdn.net/u010099080/article/details/52894773#6929044,

2017-06-22

TensorFlow DNNRegressor的简单使用

TensorFlow DNNRegressor的简单使用,包括代码和所生成的用于 TensorBoard 可视化的文件

2017-06-02

XGBoost 的 Windows 64 位 Python 3.5 安装 whl 文件

这是 XGBoost 的 Windows 64 位 Python 3.5 安装 whl 文件,安装可以参考 http://blog.csdn.net/u010099080/article/details/72459496

2017-05-18

Google 的用于生成命令行接口的工具 fire 的简单用法

fire 是 Google 开源的用于给任何 Python 程序自动生成命令行接口(CLI)的库,压缩包中包含简单使用例子和详细的使用说明(博客)。

2017-04-22

python统计字符串中中英文、空格、数字、标点个数

该程序用于统计一个字符串中中英文、空格、数字和标点符号的个数。

2017-03-25

基于CIFAR10数据集的CNN在TensorFlow实现-TensorBoard版

这是基于 CIFAR10 数据集的 CNN 在 TensorFlow 上的实现,与 [上一个](http://blog.csdn.net/u010099080/article/details/53906810) 相比增加了 TensorBoard 的实现,可以在浏览器中查看可视化结果。

2017-03-15

cudnn 5.1版本(Windows 10 版)

这是Windows 10 下的cudnn5.1版本,运行TensorFlow官方CNN例子必须,对应的cuda版本是8.0

2017-02-26

用于将旧代码升级到TensorFlow1.0版本的tf_upgrade.py

这是 TensorFlow 官方发布的将旧代码升级以适应新的TensorFlow1.0版本的Python API,使用方法见压缩包中的README文件。

2017-02-16

TensorFlow基于CIFAR10数据集的卷积神经网络CNN实现

该压缩包包括了TensorFlow基于CIFAR10数据集的卷积神经网络的代码实现,以及多个测试结果的测试图片。

2016-12-28

VS Code 快捷键官方说明

VS Code的快捷键的官方说明,包括了所有的快捷键。

2016-12-26

TensorFlow和sklearn的基于CIFAR-10数据集的前馈神经网络实现

里面包含TensorFlow和sklearn基于CIFAR-10数据集的前馈神经网络实现,以及各自的结果图片。

2016-11-19

数据分析入门所使用的美国人口普查数据及数据说明

这是Coursera的Intro to Data Analysis for Python课程使用的美国人口普查数据,里面包含CSV数据文件和一个PDF说明文件,解释了每个变量的意义。

2016-11-03

空空如也

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

TA关注的人

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