自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 资源 (1)
  • 收藏
  • 关注

转载 pytorch加载保存查看checkpoint文件

<div class="main_father clearfix d-flex justify-content-center" style="height:100%;"> <div class="container clearfix" id="mainBox"> <aside class="blog_container_aside"> <!--主页引入--> <div id="asideProfile"...

2020-07-22 15:53:51 3083 1

原创 深度学习之Embedding

在深度学习模型中,Embedding层在代码层面上的意义是:一个保存了固定字典和大小的简单查找表。这个模块常用来保存词嵌入和用下标检索它们。模块的输入是一个下标的列表,输出是对应的词嵌入。当输入是一个batch时,则这个输入矩阵是一个N维矩阵([batch_size,Seq_len]),输出矩阵([batch_size,Seq_len,embed_size])import torchf...

2020-03-16 17:13:14 952

原创 显存不够,如何训练大型神经网络

之前写过一篇PyTorch节省显存的文章,在此基础上进行补充老博文传送门本篇参考自夕小瑶的卖萌屋公众号一、单卡加载大型网络1.1 梯度累加Gradient Accumulation单卡加载大型网络,一般受限于大量的网络参数,训练时只能使用很小的batch_size或者很小的Seq_len。这里可以使用梯度累加,进行N次前向反向更新一次参数,相当于扩大了N倍的batch_size。正...

2020-03-04 13:32:47 5236

原创 sklearn 绘制多分类ROC曲线

from rasa_nlu.model import Interpreterfrom sklearn.metrics import precision_scorefrom sklearn.metrics import recall_scorefrom sklearn import metricsfrom sklearn.preprocessing import OneHotEncoder...

2019-06-14 14:08:30 5322 2

原创 python json

json.load:把文件打开,并把字符串变换为数据类型 with open(p,'r') as f: data = json.load(f,ensure_ascii= False)dump: 将数据写入json文件中#ensure_ascii= False ->保证写入的json文件不是Unicode编码(显示中文)with...

2019-06-02 21:52:48 818

原创 pandas matplotlib绘图

指定横纵坐标绘图import pandas as pdimport matplotlib.pyplot as pltusers = pd.read_excel('Users.xlsx')users['Total'] = users['Oct']+users['Nov']+users['Dec']users.sort_values(by='Total',inplace=True)p...

2019-06-02 13:37:08 160

原创 自然语言处理特征处理器

学习自张俊林大佬的知乎https://zhuanlan.zhihu.com/p/54743941想整理下NLP任务中特征提取的发展脉络流程,整理了下张大神的博客。RNN特征提取方案:在输入的线性序列中,从前向后传播收集输入信息存在的问题:反向传播路径太长,容易导致严重的梯度消失变种RNN:LSTM、GRULSTM为什么能一定程度上解决梯度消失的问题?LSTM通过增加...

2019-05-08 15:33:08 216

原创 数据倾斜

数据倾斜的原因:数据倾斜与业务逻辑和数据量有关在MapReduce程序中,数据倾斜主要发生在某个key的数据量较大,此key分散到某个reduce造成reduce阶段的缓慢甚至卡顿。在Spark程序中,同一个Stage的不同Partition可以并行运行,而具有依赖关系的Stage是串联的。Stage中包含多个Task是可以并行运行的,但是如果某一个task损耗的时间过长,则当前Sta...

2019-04-30 10:32:15 135

原创 深度学习基础

深度学习反向传播的作用:梯度下降法中需要利用损失函数对所有参数的梯度来寻找局部最小点;反向传播是用于计算梯度的具体方法,本质是利用链式法则对每个参数求偏导激活函数使用激活函数的目的是为了向网络中加入非线性隐藏层;加强网络的表达能力,解决线性模型无法解决的问题某些数据是线性可分的,所以用一条线就可以将数据分开但有些数据不是线性可分的,就需要引入非线性模型,增强网络的表示能...

2019-04-29 19:50:23 212

原创 N-gram 新词发现总结

jieba与N-gram结合进行新词发现使用jieba作为基础分词组件 针对新的文本,利用信息熵进行新词发现 使用字典树存储单词和统计词频 取TopN作为新词此方法主要依托互信息和左右信息熵互信息表示的是两个词的凝聚力,或者说是两个词在一起表示一个可被接收的常用词的概率左右熵:表示预选词的自由程度,或者说可与其他词搭配组成新词的概率越高,其也就更可能是一个单独的词左右熵=m...

2019-04-19 14:58:35 2342

原创 python 小知识集锦

list中extend和append的区别:1. append() 方法向列表的尾部添加一个新的元素。只接受一个参数。2. extend()方法只接受一个列表作为参数,并将该参数的每个元素都添加到原有的列表中。Zip()和Zip(*a)的区别:可以看成是解压和压缩的区别,zip相当与压缩 zip(*)相当于解压。a= [1,2,3,4]b = [5,6,7]c = li...

2019-04-18 13:45:47 186

原创 python3 读取docx 并剔除中文全角符号

import docximport refrom docx import Documentimport stringpath = '/Users/ya/Desktop/11246441.docx'document = Document(path)for line in document.paragraphs: line = line.text.strip().split()...

2019-04-17 22:45:04 945

原创 pandas 操作小技巧汇编

不定时更新工作中遇到的小trickDataFrame.tocsv() 输出的colume最前面多了一个逗号解决办法:设置index=False即可train_data[['qid','title_char']].to_csv('/root/workspace/my_zhihu/data/train_title_char.csv',index=False)按某个列的colume...

2019-04-12 17:29:55 160

原创 PyTorch DataLoader、DataSet

研究了下DataLoader大批量加载数据的原理:DataLoader只负责数据的抽象,一次调用getitem只返回一个样本import torchfrom torch.utils.data import DataLoader,Datasetimport numpy as npimport pandas as pdclass DataSet(Dataset): def __...

2019-04-12 10:26:32 601

原创 TorchText实践总结

TorchText详细介绍1传送门 TorchText入门教程,轻松玩转文本处理传送门from torchtext.data import Field,TabularDataset,Iterator,BucketIterator'''声明式加载数据方式tokenize:分词方式 可以先定义好函数'''#Field定义怎么处理原始数据TEXT = Field(sequent...

2019-04-11 15:10:56 966 2

原创 keras Tokenizer实践

科学使用Tokenizer步骤:用Tokenizer的fit_on_texts学习出文本的字典 word_index是对应单词和数字的映射关系dict 通过dict将每个String的每个词转成数字,可以用texts_to_sequences...

2019-03-25 10:53:57 673

原创 预训练语言模型

常用的抽取文本特征有:TFIDF/LDA/LSI gensim glove fasttext ELMO Bertword2vec的训练与简易使用glove的训练与简易使用简易版的glove安装使用比较方便pip install glove-pythonword_list = []with codecs.open(path,'r','utf-8') as f:...

2019-03-21 17:02:31 503

原创 CRF

随机场:由若干个子集组成的一个整体,而每个子集都按照某个分布随机赋予一个值,这个场就叫随机场。马尔科夫随机场:随机场中某一位置的赋值仅与其相邻位置的赋值有关,和与其不相邻位置的赋值无关。CRF是马尔科夫随机场的特例,它假设马尔科夫随机场中只有X和Y两种变量,X一般是给定的,而Y一般是在给定X的条件下的输出。BiLSTM-CRF在NER上的实践总结使用基于字的BILSTM-CRF,可...

2019-03-19 15:20:30 1893

原创 HMM学习心得

HMM由初始状态概率向量、状态转移概率矩阵A和观测概率矩阵B决定。初始状态概率矩阵=是时刻t=1处于状态的概率 初始状态概率与状态转移概率矩阵A决定了影藏的隐马尔科夫链,生成了不可观测的状态序列 观测概率矩阵B决定了如何从状态生成观测HMM模型的两个基本假设:隐藏的马尔科夫链在任意时刻t的状态只依赖于其前一时刻的状态,与其他时刻的状态、观测、时刻t均无关(状态转换只与前一状态有关)...

2019-03-19 14:43:07 281

原创 Language Model

Word2vecword2vec有两种训练方法CBOW:在句子序列中,从当前次的上下文去预测当前词 skip-gram:与CBOW相反,输入某个词,预测当前词的上下文NNLM的训练:输入一个单词的上文,与预测这个单词word Embedding 存在的问题:多义词问题ELMO:ELMO对这一问题有了好的解决:使用预先训练的语言模型学习好单词的word Embeddi...

2019-03-18 17:31:29 357

原创 CRT预估算法

FM(因子分解机)FM通过对特征之间的隐变量内积来提取特征组合FM和集成树模型(如GDBT)都可以自动学习特征交叉组合 FM可以在非常稀疏的数据中进行合理的参数估计 FM的时间复杂度是线性的 FM是一个通用模型,可以用于任何特征为实值的情况在一般的线性模型中,各个特征是独立考虑的,并未考虑各特征之间的相互关系。实际上特征之间是相互关联的。为了表示特征之间的相互性,采用多项式模型。...

2019-03-17 20:30:28 1338

原创 Python 求二叉树路径总和

题目来源:LeetCode113 路径总和给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明:叶子节点是指没有子节点的节点。 5 / \ 4 8 / / \ 11 13 4 / \ /...

2019-03-14 21:18:44 1343

原创 LeetCode

LeetCode78:&gt; 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。```输入: nums = [1,2,3]输出:[[], [1], [2], [2, 1], [3], [3, 1], [3, 2], [3, 2, 1]]```大佬思路:直接从后遍历,遇到一个数就把所有子集加上该数组成新的子集,遍历完毕即是所...

2019-03-14 15:58:28 93

原创 集成学习

集成学习的基本策略:BoostingBoosting是一种串行模式,主要代表算法有:Adaboost、GDBTBoosting的基本策略:先构建一个基学习器,新的学习器是在前面的基学习器的基础上生成的。基学习器之间存在依赖关系基本思路:先从初始训练集构建一个基学习器,所有数据集的样本都是等权重的;根据上一个学习器的结果调整样本权重,增加分类错误样本的曝光度(增大权重);基于调...

2019-03-12 21:21:16 236

原创 决策树、GDBT、Xgboost、LightGBM

决策树决策树的学习通常包含3个步骤:特征选择、决策树的生成、决策树的修剪决策树算法通常是递归地选择最优特征,并根据该特征对训练数据进行分割。特征选择选取对训练数据具有分类能力的特征。通常的准则是信息增益或者信息增益比。信息增益越大,表示该特征不确定性越强,越适合作为特征进行特征分类。决策树的裁剪决策树生成算法递归地选取最优特征产生决策树,知道不能继续下去为止。但是这样容易产...

2019-03-12 21:17:42 276

原创 Pytorch的骚操作

1. Pytorch的detach()、detach_()detach():返回一个新的 从当前图中分离的 Variable。返回的 Variable 永远不会需要梯度如果 被 detach 的Variable volatile=True, 那么 detach 出来的 volatile 也为 True还有一个注意事项,即:返回的 Variable 和 被 detach 的Variable...

2019-03-06 10:58:34 220

原创 pytorch节省显存小技巧

使用pytorch进行文本多分类问题时遇到了显存out of memory的情况,实验了多种方法,主要比较有效的有两种:1、尽可能使用inplace操作,比如relu可以使用inplace=True进一步将BN归一化和激活层Relu打包成inplace,在BP的时候再重新计算。做一步使用pytorch1.0的checkpoint特性代码与论文参考mapillary/inplace_abn...

2019-03-01 11:03:52 4283 2

原创 补漏

快排(python):def quick_sort(a,low,high): start = low end = high key = a[low] while(end &gt; start):#此处控制循环不停的迭代 # (第一次)从后往前 while start &lt; end and key &lt;= a[end]: ...

2019-02-19 21:34:27 151

原创 Seq2Seq2、Attention的多种模式

关于seq2seq的多种模式模式一:Encoder端、Decoder端都采用RNN。在编码的每个时刻,RNN除了上一时刻产生的隐层状态编码时,还有当前时刻的输入字符;而在解码阶段没有这种输入。最简单的一种方式是:把编码端得到的隐层向量作为解码端的每一时刻的输入向量。模式二:带回馈的解码模式:在解码阶段,每一时刻依赖于上一时刻的输出与隐层向量模式三:带编码向量的解码模式模式四:带...

2019-02-11 17:30:41 683

原创 pytorch 实现LSTM

#_*_coding:utf-8_*_import osimport codecsimport stringfrom nltk.corpus import stopwordsimport snowballstemmerimport refrom itertools import chainfrom gensim import modelsimport torchfrom tor...

2019-01-10 10:58:38 4994 1

原创 gensim

1、corpora和dictionarycorpora是gensim中的一个基本概念,是文档集的表现形式。corpora就是一个二维矩阵#_*_coding:utf-8_*_from collections import defaultdictfrom gensim import corporadocuments = [&amp;amp;quot;Human machine interface for lab...

2018-12-13 22:17:01 472

原创 Mac使用vim删除文件中的^M换行符

在Linux下打开Windows编辑过的文本,会出现由于换行符不一致而导致的内容错乱的问题,最常见的是^M。可在vim中用命令行替换删除vim切换命令模式::%s/^M//g #注意这里的~M用Ctrl+V Ctrl+M生成,而不是输入的...

2018-12-12 14:20:08 1151 1

原创 关键词提取

Python实现文本关键字提取算法步骤:加载已有的文档数据集加载停用词表对数据集中的文档进行分词根据停用词表,过滤干扰词根据数据集训练算法根据训练好的关键词提取算法对新文档进行关键词提取步骤:对新文档进行分词根据停用词表,过滤干扰词根据训练好的算法提取关键词未完待续...

2018-12-11 21:49:04 572

原创 python多维list去重

一维的list去重可以用set(list),但是二维的list转set就会报错 unhashable type: ‘list’原因是set传进来的是不可哈希的变量Python中那么哪些是可哈希元素?哪些是不可哈希元素?可哈希的元素有:int、float、str、tuple不可哈希的元素有:list、set、dict为什么 list 是不可哈希的,而 tuple 是可哈希的(1)因为 l...

2018-12-09 18:00:55 9972 1

原创 UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)

Python3 读取TXT的时候会报字符编码的bugfor line in open(corpus_path, 'r'): content = line.strip() seg_list = seg_to_list(content, pos) filter_list = word_filter(seg_list, pos) doc_...

2018-12-07 14:41:45 1371

原创 java 读取PDF目录、对应页码

package com.ca.spark;import java.io.IOException;import java.util.HashMap;import java.util.Iterator;import com.itextpdf.text.pdf.PdfReader;import com.itextpdf.text.pdf.SimpleBookmark;public cl...

2018-12-05 14:03:48 5894 9

原创 Java实现Spark groupByKey等算子

import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.JavaSparkContext;import org.apache.spark.ap...

2018-11-30 09:55:37 2154

原创 pytorch nn.LSTM()参数详解

import torchimport torch.nn as nnfrom torch.autograd import Variablernn = nn.LSTM(10,20,2) #构建网络模型---输入矩阵特征数input_size、输出矩阵特征数hidden_size、层数num_layers'''input of shape (seq_len, batch, input_si...

2018-11-28 16:09:09 56674 7

原创 对卷积神经网络中权值共享的理解

我的理解是:在卷积神经网络中,卷积核内的一个卷积核(滤波器)用于提取一个特征(输入数据的一个维度),而输入数据具有多个特征(维度)的话,就会有很多个卷积核,那么在这一层的卷积层中就会有“参数爆炸”的情况。同时,一层中每个卷积核提取特征特定的特征,忽略了数据的局部相关性。而参数共享的作用在于,每个特征具有平移不变性,同一个特征可以出现在出现在不同数据的不同位置,可以用同一个卷积核来提取这一特征。...

2018-11-06 18:06:55 8904

原创 nvidia-docker创建pytorch环境并配置jupyter notebook远程访问

前言:给Ubuntu安装NVIDIA驱动+cuda+cudnn,网上教程很多,但问题都比较严重,试了3遍都不成功。而且强迫症如我,不喜欢电脑里有多余残留的东西。这时候想起docker了,毕业前还玩过一段时间,所以就开始尝试了(虽然也有不少坑)。整个流程主要分几步:安装NVIDIA驱动安装docker安装nvidia-dockerpull 合适的pytorch image安装noteb...

2018-10-15 10:49:58 6383

大数据开发面试集锦

本文收集了近年各公司大数据开发岗位的面试题,涉及Hadoop、Spark、kafka、HBASE等大数据组件相关组件

2018-09-13

空空如也

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

TA关注的人

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