机器学习-技术篇
蓝一潇、薛定谔的猫
东北大学在读 深度学习爱好者 国内某nlp实验室实习生
展开
-
用Sklearn的KMeans聚类,输出标签全是0的解决方案
大家在使用Kmeans聚类时,可能碰到fit_predict后输出的标签全部为0。解决方法是增大n_clusters的数量,比如100,这样就可以拉大簇与簇之间的精细程度,就可以得到细分的类别了。原创 2020-08-09 12:52:35 · 1531 阅读 · 0 评论 -
Python的梯度下降算法以及源码
在数学建模、神经网络中,不少地方都会用到梯度下降。如果要用的时候不会写就太尴尬了。因此在这里我共享自己写的梯度下降算法的源代码。梯度下降算法的核心公式是:w’ = w - ∂L/∂wL是loss functionw是权重,也可以写成wi,表示权重矩阵的第i个元素∂L/∂w是损失函数对w求偏导w‘即为更新后的权重下面我们考虑一个简单的加权求和函数:w1x1+w2x2+…+wnxn=∑...原创 2019-12-22 11:49:16 · 613 阅读 · 1 评论 -
论文Weight Agnostic Neural Networks(WANNs)解读
谷歌最新发布的Weight Agnostic Neural Networks(WANN)这几天很火,这个网络的确是一个具有颠覆性结构的神经网络,号称“不需要经过训练就可以达到很好的预测效果"。借此机会,本人也瞻仰了这篇论文,下面给大家用我的视角解读一下这篇颠覆性的论文。 这篇博客不是严格的对文章进行翻译,而是对论文的内容进行讲解,原则是尽量忠于原文,让大家可以更加理性、客观的理解被许多公众号讲解...原创 2019-06-22 16:17:12 · 2407 阅读 · 1 评论 -
keras 用LSTM搭建一个语言情感分类器 - keras 进阶教程
鉴于很多人最近问我LSTM的API在keras中怎么用,怎么总是报错,我觉得写一个博客,搭建一个最小化的语言情感分类模型,这样大家就能一通百通了。这个讲解会主要侧重于LSTM中的数据维度处理。这里就不谈LSTM的原理了,大家肯定没少看到过那个经典的LSTM cell结构图。那么,第一步做什么呢?首先,我们需要一个数据集,用word2vec来做word embeding(即将词转化为向量的形...原创 2019-05-27 23:06:19 · 2450 阅读 · 0 评论 -
keras 分批训练 详解2 - keras 进阶教程
keras 分批训练2今天讲的是如何使用keras进行分批训练(也叫增量训练、增量学习、在线训练)的第二种方法,上一种方法在这里:https://blog.csdn.net/weixin_42744102/article/details/87272950上一次讲的是fit_generator的方法,那个方法搞不清每层的名字就很容易报错、计算错了step和batch也很麻烦,需要自己写的生成器...原创 2019-05-10 21:05:40 · 3073 阅读 · 1 评论 -
keras 分批训练 详解 - keras进阶系列01
我们今天来讲一讲使用keras框架来进行分批训练刚入门的深度学习爱好者由于数据量不是很大,倾向于将所有数据读入内存之后直接送入模型进行学习,这样的优点是简单,复杂度小,但是缺点也非常明显:能训练的数据较少,无法训练较大的模型。那些在网上的教程,或者是所谓的“深度学习课程”往往对这个问题避而不谈,估计是商业目的使然。而真正的商用的模型往往需要几天时间甚至几个月时间来训练。那么,用keras怎么来训...原创 2019-02-14 14:42:07 · 10002 阅读 · 4 评论 -
GPU服务器笔记 报错:tensorflow.python.framework.errors_impl.InternalError: Dst tensor is not initialized.
今天GPU服务器跑tensorflow做后端跑keras程序的时候,报错:tensorflow.python.framework.errors_impl.InternalError: Dst tensor is not initialized.后来发现这是因为GPU的内存不够了。查看空闲GPUnvidia-smi查看空闲的GPU,换一个就可以跑了。...原创 2019-01-26 12:30:54 · 8070 阅读 · 3 评论 -
Keras ValueError: No data provided for "dense_1_input". Need data for each key in: ['dense_1_input']
今天使用keras分批训练model时使用model.fit_generator方法报错:ValueError: No data provided for “dense_1_input”. Need data for each key in: [‘dense_1_input’]最后通过分析keras源码,找到了解决方案:将用于产生batch的generator的返回值的格式写成一个字典,长这样:...原创 2019-02-13 17:31:05 · 5056 阅读 · 5 评论 -
gensim的word2vec模型分批学习
自然语言处理的数据量通常很大,当数据集已经没办法装在整个内存里面了, 我们就需要分批构建word2vec。代码如下:from gensim.models.word2vec import Word2Vecfrom tqdm import tqdmWORK_PATH = '.'class Word2VecTrainingMaster(): def __init__(self, ...原创 2019-02-13 09:25:08 · 1699 阅读 · 4 评论 -
Attention is all you need pytorch实现 源码解析03 - 模型的训练(2)- transformer模型的代码实现以及结构
我们继续分析著名的attention is all you need 论文的pytorch实现的源码解析。由于项目很大,所以我们会分开几讲来进行讲解。上一讲连接在此:Attention is all you need pytorch实现 源码解析01 - 数据预处理、词表的构建 - https://blog.csdn.net/weixin_42744102/article/details/8...原创 2019-02-12 14:37:43 · 3311 阅读 · 6 评论 -
Attention is all you need pytorch实现 源码解析02 - 模型的训练(1)- 模型的训练代码
我们今天继续分析著名的attention is all you need 论文的pytorch实现的源码解析。由于项目很大,所以我们会分开几讲来进行讲解。上一讲连接在此:Attention is all you need pytorch实现 源码解析01 - 数据预处理、词表的构建 - https://blog.csdn.net/weixin_42744102/article/details...原创 2019-02-12 11:25:01 · 3217 阅读 · 4 评论 -
Attention is all you need pytorch实现 源码解析01 - 数据预处理、词表的构建
我们今天开始分析著名的attention is all you need 论文的pytorch实现的源码解析。由于项目很大,所以我们会分开几讲来进行讲解。先上源码:https://github.com/Eathoublu/attention-is-all-you-need-pytorch大家可以先自行下载并理解。今天是第一讲,我们先讲解数据的预处理部分:preprocess.py项目结构...原创 2019-02-11 17:23:37 · 5574 阅读 · 5 评论 -
在大量数据的情况下打乱数据 - 机器学习 训练技巧
我们在机器学习训练模型的时候常常需要将数据打乱,否则,假如一个数据集前半部分target是1,后半部分target是0,这样训练出来的效果很不好,很有可能模型会过拟合后半部分的样本,尤其是数据量很大的时候,尤其是你的模型要训练几天几夜的时候。别问我为什么,血一样的教训……如果数据量小,那么我们只需要使用random.shuffle函数就可以,具体用法在:https://blog.csdn.net...原创 2019-02-15 16:34:35 · 5563 阅读 · 1 评论 -
感性理解Word2Vec - 它的神奇以及原理
神奇的word2vec现在“词向量”已经不是一个多么新的概念了。它由2014年被facebook实验室提出,现在是一个处理自然语言的常用工具之一。甚至现在在我实习的实验室里,学长和老师嘲笑这个方法在某些任务里面有多么多么挫。。但事实上在很多的与序列无关的任务里面还是很有用的!最初知道word2vec以及“词向量”的时候是高考完的暑假,当时对于机器学习十分感兴趣,尤其对词向量充满了好奇。它可以做...原创 2019-01-26 12:20:23 · 232 阅读 · 0 评论 -
使用GPU跑keras程序报错:OMP: Error #15: Initializing libiomp5.so, but found libiomp5.so already initialized.
使用GPU跑keras程序报错:OMP: Error #15: Initializing libiomp5.so, but found libiomp5.so already initialized.昨天在使用GPU服务器跑keras程序的时候提示这个错误,并在报完这个错误之后就直接吐核了。我用的是keras库,tensorflow backend。今天找到原因:tensorflow版本不正确。...原创 2019-01-25 16:28:54 · 3044 阅读 · 0 评论