自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hxxjxw的博客

写了一天bug累了吧

  • 博客(53)
  • 收藏
  • 关注

原创 困惑度PPL (perplexity)

PPL是用在自然语言处理领域(NLP)中,衡量语言模型好坏的指标。它主要是根据每个词来估计一句话出现的概率,并用句子长度作normalize。 PPL越小越好公式为:S – 当前句子;N – 句子长度;p(wi) – 第i个词的概率p(wi|w1w2w3…wi-1) – 这个表示基于前i-1个词,计算得出第i个词的概率,但有的语言模型是可以利用双向的,不知道是不是会这样计算:p(wi|w1w2w3…wn) ;ppl越小,p(wi)则越大,也就是说这...

2020-07-31 22:22:21 9920

原创 以全连接网络MNIST识别为例的模型参数保存与加载

以https://blog.csdn.net/hxxjxw/article/details/105667269 为例源代码,运行后会生成fcnet.pth保存网络参数import torchimport torchvisionfrom torch import nnfrom torch.nn import functional as Ffrom torch import optimfrom utils import plot_image,plot_curve,one_ho...

2020-07-31 17:12:30 489

原创 Pytorch(七) —— 保存和加载模型 & 删除部分模型 & checkpoint断点续传 & CPU/GPU加载和保存 & 序列化与反序列化

pytorch保存模型的方式有两种 ①将整个网络都都保存下来 保存整个神经网络的的结构信息和模型参数信息,save的对象是网络net ②仅保存和加载模型参数(推荐使用这样的方法) 只保存神经网络的训练模型参数,save的对象是net.state_dict()加载方式①加载模型时通过torch.load('.pth')直接初始化新的神经网络对象②需要首先导入对应的网络,再通过net.load_state_dict(to...

2020-07-31 17:08:48 7450 1

原创 Pytorch(六)(模型参数的遍历) —— model.parameters() & model.named_parameters() & model.state_dict()

net = Net()#k,v就分别是w和bfor k, v in net.named_parameters(): print(k,v)效果可见这里https://blog.csdn.net/hxxjxw/article/details/105667269model.state_dict()、model.parameters()、model.named_parameters()这三个方法都可以查看Module的参数信息,用于更新参数,或者用于模型的保存。.....

2020-07-31 16:53:40 30434 3

原创 Pytorch之经典神经网络CNN(七) —— GoogLeNet(InceptionV1)(Bottleneck)(全局平均池化GAP)(1*1卷积)(多尺度)(flower花卉数据集)

torch.argmax()函数中dim表示该维度会消失。然后另一维度保留下来的是每一行/列最大的行/列标号dim的不同值表示不同维度。特别的在dim=0表示二维中的列,dim=1在二维矩阵中表示行因此,我们想要求每一行最大的列标号,我们就要指定dim=1,表示我们不要列了,保留行的size就可以了。假如我们想求每一列的最大行标,就可以指定dim=0,表示我们不要行了。......

2020-07-31 15:15:53 1867

原创 from xxx import xxx 和 import xxx的区别 & import 自己的库(文件夹) & 绝对导入相对导入 (尽量不要使用 from *** import * 模糊导入)

两个import语义有差异import datetimeprint(datetime.datetime.now())是引入整个datetime包from datetime import datetimeprint(datetime.now())是只引入datetime包里的datetime类所以import之后前者是datetime这个包可见,后者是datetime.datetime这个类可见。..................

2020-07-31 10:59:49 2771

原创 超参数(Hyperparameter)

在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据,如迭代次数epoch、隐藏层的层数、每层神经元的个数、学习速率lr等。是根据经验进行设定的,他们的取值会影响到权重w和偏置b的大小 通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。...

2020-07-31 10:27:29 3809

原创 神经网络中定义网络模型中的forward方法

神经网络的典型结构就是__init__()和forward()forward是自动调用的 model = Net() y = model(x)如上则调用网络模型定义的forward方法。即,当把定义的网络模型model当作函数调用的时候就自动调用定义的网络模型的forward方法。是通过nn.Module 的__call__方法调用的...

2020-07-31 10:17:32 8151 1

原创 Dataloader加载数据时的图片位置

加入要加载MNIST数据集本地存放在dataset/MNIST中那么代码引用就这么写torchvision.datasets.MNIST('dataset/',不用写道dataset/MNIST

2020-07-31 09:56:48 746

原创 Elasticsearch(三)—— es的批量操作(mget & bulk)

批量获取和批量的bulk操作mget批量查询如果通过之前的get方法去获取某个document/数据的时候,当要查询的数量过多的时候,效率是比较低的(http操作每次建立都要经历三次握手),所以es提供了一个mget,可以让我们一次性查询多条记录查询job1中id为1的数据,和job2中id为2的数据GET _mget{ "docs":[ {"_index":"testdb", "_type":"job1", "_id":1 ...

2020-07-30 23:15:09 1363

原创 Seq2Seq实战——机器翻译

基于seq2seq做一个机器翻译我们将使用PyTorch和TorchText构建一个机器学习模型,从一个序列到另一个序列。 这将在德语到英语的翻译中完成

2020-07-30 17:04:36 4613

原创 什么是分词器

分词器就是将一个句子转换为组成该句子的单个单词(符号) 列表例如。“good morning!”变成了“good”,“morning”和“!”

2020-07-30 10:40:46 1013

原创 spaCy

spaCy 是一个Python自然语言处理工具包,诞生于2014年, 可以实现对文本做分词、词性分析、命名实体识别、依存分析等功能。spaCy是具有工业级强度的Python NLP工具包。spaCy里大量使用了 Cython 来提高相关模块的性能,这个区别于学术性质更浓的Python NLTK,因此具有了业界应用的实际价值。...

2020-07-30 10:35:35 558

原创 TorchText

TorchText是一款优秀的NLP数据处理工具,可以方便的对文本进行预处理,例如截断补长、构建词表等。但是因为nlp的热度远不如cv,对于torchtext介绍的相关博客数量也远不如torchvisiontorchtext对数据的处理可以概括为Field,Dataset和迭代器三部分。Field对象Field对象指定要如何处理某个字段.DatasetDataset定义数据源信息.迭代器迭代器返回模型所需要的处理后的数据.迭代器主要分为Iterator, ...

2020-07-30 10:22:24 550

原创 Pytorch之经典神经网络Transformer(一) —— Transformer()

什么是Transformer 谷歌在2017年发表了一篇论文名字叫《Attention Is All You Need》,提出了一个只基于attention的结构来处理序列模型相关的问题,比如机器翻译。传统的神经机器翻译大都是利用RNN或者CNN来作为encoder-decoder的模型基础,而谷歌最新的只基于Attention的Transformer模型摒弃了固有的定式,并没有用任何CNN或者RNN的结构。该模型可以高度并行地工作,所以在提升翻译性能的同时训练速度也特别快。 ...

2020-07-29 21:13:13 16313

原创 Pytorch之经典神经网络RNN(二) —— GRU()

GRU,Gate Recurrent Unit,是循环神经网络RNN的一种。和LSTM一样,也是为了解决长期记忆和反向传播中的梯度等问题而提出来的。GRU和LSTM在很多情况下实际表现上相差无几,那么为什么我们要使用新人GRU(2014年提出)而不是相对经受了更多考验的LSTM(1997提出)呢? 我们在我们的实验中选择GRU是因为它的实验效果与LSTM相似,但是更易于计算。 相比LSTM,使用GRU能够达到相当的效果,并且相比之下更容易进行训练...

2020-07-29 20:20:22 2002

原创 NLP自然语言处理(九)—— Attention机制

Attention机制Attention机制就是 注意重要的地方,忽略不重要的地方通过概率分布实现关注哪个不关注哪个加入c1是对应x1的,c2是对应x2的,c3是对应x3和x4的假如我的关注点是x1,那么我的c1就应该增大;如果关注x2,c2就应该增大,..........Attention的分类soft attention是比较常用的,也叫加权attention,主要用在Seq2Seq相关的Hard attention一般应用于CVSoft ...

2020-07-29 18:12:29 1185

原创 Pytorch之扩展单张图片维度(unsqueeze&np.newaxis&view)

语言模型简单来说就是一串词序列的概率分布生成式聊天机器人中常见的是seq2seq模型是一个encoder和decoder的结构Seq2Seq模型起源和发展从RNN的结构说起Seq2Seq模型...

2020-07-29 16:18:03 1606

原创 深度信念网络(DBQ)

深度信念网络 (Deep Belief Network, DBN) 由 Geoffrey Hinton 在 2006 年提出。它是一种生成模型,通过训练其神经元间的权重,我们可以让整个神经网络按照最大概率来生成训练数据。我们不仅可以使用 DBN 识别特征、分类数据,还可以用它来生成数据。深度信念网络是第一批成功应用深度架构训练的非卷积模型之一...

2020-07-28 17:50:13 363

原创 Elasticsearch(二)—— es的文档、索引的CRUD操作

es的文档、索引的CRUD操作索引的初始化指定分片(number_of_shards)和副本(number_of_replicas)的数量分片默认是5个,副本默认是1个shards一旦设置不能修改索引就类似于关系数据库中的一个数据库...

2020-07-25 22:09:02 323

原创 Lpm图片转成numpy和torch.tensor

在使用sceneflow数据集driving_optical flow训练光流的时候其光流图是Lpm格式,因为这个还卡了好久,留下了菜的泪水终于解决了write_pfm没有用到,但还是带上吧import numpy as npimport reimport sysimport torch'''Read a PFM file into a Numpy array. Note that it will havea shape of H x W, not W x H. Ret..

2020-07-25 11:42:22 233

原创 常见的五种神经网络——前馈神经网络 & 卷积神经网络 & 循环神经网络 & 深度信念网络 & 生成对抗网络

常见的五种神经网络①前馈神经网络②卷积神经网络③循环神经网络④深度信念网络(DBN) 深度信念网络(Deep Belief Netword, DBN)是一种深层的概率有向图模型,其图结构有多层的节点构成。每层节点的内部没有连接,相邻两层的节点之间为全连接 玻尔兹曼机 受限玻尔兹曼机 DBN的组成原件是玻尔兹曼机⑤生成对抗网络...

2020-07-23 18:37:28 3784

原创 NLP自然语言处理(六)——检索类聊天机器人(贝叶斯分类)

贝叶斯是英国数学家先验概率和后验概率先验概率:根据历史资料或主观判断,未经实验证实所确定的概率后验概率:根据贝叶斯公式,用先验概率计算出来贝叶斯公式贝叶斯公式与垃圾邮件识别朴素贝叶斯加上条件独立假设的贝叶斯方法就是朴素贝叶斯方法(Naive Bayes)条件独立假设就是,有一些条条框框,是在特殊场景下的贝叶斯方法朴素贝叶斯在NLP中的应用非常广泛朴素贝叶斯——词袋模型只关注词,不在意顺序朴素贝叶...

2020-07-23 15:37:36 312

原创 NLP自然语言处理(五) —— 检索类聊天机器人(检索类vs生成类 & 检索类机器人流程 & 关键技术)

检索类 vs 生成类聊天机器人聊天机器人分为检索类和生成类检索类比生成类的应用更广泛,而且工业落地比较多检索类的应用有电商、服务、财经、新闻、体育、订餐、旅行等等生成式主要以闲聊为主,应用领域比较开放检索类就是通过用户的问题,去寻找答案,答案往往非常专业、准确生成式的答案是比较灵活开放检索类机器人需要数据库比较大回答比较自然问题和不同答案之间会有一个得分的,计算得分最高的作为答案返回检索类机器人的流程关键技术...

2020-07-23 11:33:19 855

原创 玻尔兹曼机BM & 受限玻尔兹曼机 RBM

RBM被认为是受限的,因为没有两个节点,同层共享一个连接玻尔兹曼机是一种随机神经网络,借鉴了模拟退火思想。玻尔兹曼机的网络模型与BP神经网络的结构没有什么区别,只是训练的方式不太一样玻尔兹曼机简单地将就是一个无向图模型https://blog.csdn.net/u013631121/article/details/76652647?utm_source=blogxgwz9...

2020-07-22 23:13:19 456

原创 前馈神经网络 & 反馈神经网络

前馈神经网络(feedforward neural network,FNN)前馈神经网络也叫做多层感知机,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层.各层间没有反馈个人理解就是我们普通的全连接网络反馈神经网络与前馈神经网络对应的是反馈神经网络反馈神经网络是一种反馈动力学系统。在这种网络中,每个神经元同时将自身的输出信号作为输入信号反馈给其他神经元,它需要工作一段时间才能达到稳定。Hopfield网络(HNN)、波耳兹曼机均属...

2020-07-22 22:52:17 8613

原创 BP神经网络

BP,Back Propagation,就是反向传播,利用输出后的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计BP神经网络就是用反向传播算法进行训练的神经网络(常用的多数神经网络都是)BP神经网络是一种多层前馈神经网络...

2020-07-22 22:13:36 149

原创 倒排索引

什么是倒排索引 倒排索来源于实际应用中需要根据属性的值来查找记录。 这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。 由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。 带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。目前搜索引擎中一般底层索引存储都采用倒排索引倒排索引也是搜索引擎区别于关系数据库和Nosql数...

2020-07-22 17:20:57 243

原创 十大经典数据挖掘算法

①C4.5算法②KNN③朴素贝叶斯Naive Bayes④CART 分类与回归树⑤K-means⑥SVM⑦EM算法最大期望算法⑧PageRank算法⑨AdaBoost算法⑩The Apriori algorithm

2020-07-12 21:13:39 236

原创 机器学习时代三大神器GBDT(MART)、XGBoost、LightGBM

机器学习时代三大神器GBDT、XGBoost、LightGBMGBDT梯度提升决策树Boosting方法是一种用来提高弱分类算法准确度的方法,Boosting算法的思想是将许多弱分类器集成在一起形成一个强分类器...

2020-07-12 20:58:40 688

原创 AI学术会议时间节点

https://aideadlin.es/?sub=ML,CV,NLP,RO,SP,DM

2020-07-10 09:51:35 394

原创 Elasticsearch(一)—— 引入 & 安装 & 相关概念

引入我们建立一个网站或者程序,希望添加搜索功能,发现搜索工作很难:1、我们希望搜索解决方案要高效 2、我们希望零配置和完全免费的搜索方案 3、我们希望能够简单得通过json和http搜索引擎交互 4、我们希望我们的搜索服务器稳定 5、我们希望能够简单得将一台服务器扩展到上百台ElasticsearchElasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎。 Elasticsearch是用Java语言开发的,并作为Apache许..

2020-07-09 15:20:45 226

原创 优化算法(三)—— 蚁群算法(ACO算法)

蚁群算法, ant colony optimization, ACO蚁群算法来源于蚂蚁在寻找食物过程中发现路径的行为蚁群优化算法最初用于解决TSP问题,经过多年的发展,已经陆续渗透到其他领域中,比如图着色问题、大规模集成电路设计、通讯网络中的路由问题以及负载平衡问题、车辆调度问题等。蚁群算法在若干领域己获得成功的应用,其中最成功的是在组合优化问题中的应用蚁群算法的基本原理蚂蚁在行走过程中会释放一种称为“信息素”的物质,用来标识自己的行走路径。在寻找食物的过程中,根据...

2020-07-08 11:07:49 2472

原创 优化算法(二)—— 遗传算法(GA算法)

遗传算法,Genetic Algorithm ,GA遗传算法也称进化算法 ,是受达尔文的进化论的启发,借鉴生物进化过程而提出的一种启发式搜索算法。 我们都学过自然选择理论,生物的繁殖进化过程,会发生基因交叉( Crossover ) ,基因突变 ( Mutation ) 。适应度( Fitness )低的个体会被逐步淘汰,而适应度高的个体会越来越多。那么经过N代的自然选择后,保存下来的个体都是适应度很高的,其中很可能包含史上产生的适应度最高的那个个体。 ...

2020-07-07 22:44:17 2584

原创 优化算法(一)—— 模拟退火算法(SA算法) & 实战

模拟退火算法名字的由来是其参考了金属冶炼的退火过程模拟退火可以解决TSP旅行商问题引入当我们遇到一个爬山问题的时候首先肯定是最简单的贪心法,但是贪心会陷入局部最优解,不一定能搜索出全局最优解如图,假设C点为当前位置,贪心搜索到A点这个局部最优解就会停止搜索,因为在A点无论向那个方向小幅度移动都不能得到更优的解。模拟退火算法模拟退火其实也是一种贪心算法,但是它的搜索过程引入了随机因素。模拟退火算法以一定的概率来接受一个比当前解要差的解,因此有可能会跳出这...

2020-07-07 21:52:36 1970

原创 优化算法(零)——优化算法分类及总结

2020-07-07 21:52:31 408

原创 朴素贝叶斯模型进行垃圾邮件分类

数据集一共155封邮件,0-151用来训练,151-155用来测试使用sklearn的MultinomialNB()库进行垃圾邮件分类import reimport osfrom jieba import cutfrom itertools import chainfrom collections import Counterimport numpy as npfrom sklearn.naive_bayes import MultinomialNB#文本预处理def get.

2020-07-07 18:17:43 1755

原创 如果Hadoop换了一个新的网络环境

Centos7设置的是固定IP,所以当换了一个IP地址的时候①改/etc/sysconfig/network-scripts/ifcfg.ens33中的ip地址和网关②改/etc/hosts中对应的hadoop000

2020-07-07 13:10:55 266

原创 MapReduce实现词频统计

自定义Mapper实现Hadoop分布式节点之间会进行网络通信,所以数据势必要涉及到序列化和反序列化因此Hadoop的自定义的一些数据类型和Java常规类型支持序列化的功能更好所以 Long, String, String, IntWritable 换成了 LongWritale, Text, Text, IntWritablemap做的事情就是拆分,拆分之后,每个单词给它附上一个1,然后输出,后面的事情交给reduce来处理WordCountMappe...

2020-07-06 23:10:46 1631

原创 MapReduce知识点(一)——MapReduce概述与编程模型

MapReduce概述源自于Google 2004年的MapReduce论文 Hadoop MapReduce是Google MapReduce的克隆版 MapReduce的优点:海量数据离线处理 & 易开发 & 易运行 MapReduce缺点:不能进行实时流式计算MapReduce就是将一个作业在多个节点上运行多个节点之间,如何通信,如何保障高可靠,如果我们自己来实现是很繁琐的所以说这个框加为我们提供了底层很好的封装,在开发过程中根本不需要关注分布式底层的这些东..

2020-07-06 17:45:53 423

空空如也

空空如也

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

TA关注的人

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