自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 CS224N笔记(四) Lecture 7:循环神经网络RNN的进阶——LSTM与GRU

本文将介绍两种比RNN更好地应对梯度消失问题的模型结构——LSTM和GRU,文章以CS224N的课件和材料为基础,以图解的形式帮助大家更好地理解这两种模型的结构,并进一步分析他们的优缺点和应用场景。目录一、背景知识二、LSTM的原理与结构1.模型结构2. 如何解决梯度消失三、GRU的原理与结构四、LSTM与GRU的选择五、RNN的其他变种模型1. 双向RNN2. 多层RNN六、参考文献一、背景知识循环神经网络RNN由于模型结构上的缺陷,很容易引起梯度爆炸和梯度消失,梯度爆炸可以用梯度截断方法在一定.

2020-12-24 20:51:23 1190 4

原创 CS224N笔记(三) Lecture 6~7:深入理解循环神经网络RNN模型

本文将从语言模型的概念出发,引出循环神经网络RNN的概念,对RNN的结构进行描述,详细推导了梯度计算过程,并解释RNN容易出现梯度消失、梯度爆炸的原因。文章的最后对RNN的应用场景进行了简单的介绍。目录一、背景知识1. 语言模型2.n-gram3. 固定窗口神经语言模型二、基本结构三、训练与优化1. 损失函数2. 梯度计算3. 梯度消失和梯度爆炸四、优缺点五、应用与展望六、参考文献一、背景知识1. 语言模型在讲解循环神经网络RNN之前,先来回顾一下什么是统计语言模型,之前说到统计语言模型就是用以.

2020-12-24 20:46:18 432

原创 cs224n笔记(一) Lecture1: word2vec算法详细解析

word2vec本文是对斯坦福CS224N第一、二节课的学习笔记1. 背景知识词向量除了可以分为离散型和分布型,还可以分为计数型和预测型,计数型的如离散型中的词典模型(BOW),TF-IDF模型,以及分布型中的n-gram,他们本质上都是在计算词序列出现的频次,属于统计模型,没有可学习的参数,而word2vec则是直接建立可训练的模型进行预测,模型中的参数和词向量都是通过学习得到,词向量中隐式地编码了语料库中的语义信息。2. 基本原理在word2vec中,词向量的长度不再与词典的大小相关,通常是人

2020-11-28 01:21:51 1222

原创 CS224N笔记(五) Lecture8 机器翻译、Seq2Seq以及Attention注意力机制

一、背景知识机器翻译,Machine Translation,简称MT,是一种运用计算机将一个句子从一种语言翻译成另一种语言的技术,是自然语言处理领域中一项重要的任务。机器翻译最早可以追溯到19世纪50年代的冷战时期,其目的是实现英语和俄语的翻译,但那个时候的技术手段主要是基于规则。之后到90年代才出现了基于统计学的机器翻译技术,而在2010后乘着深度学习的风,神经网络也被大量应用于机器翻译中,并且取得了长足发展。下文将对统计机器翻译和神经网络机器翻译进行详细介绍。假设要将某种语言的一个句子xxx翻译成

2022-01-28 15:09:34 1301

原创 捋清pytorch的transpose、permute、view、reshape、contiguous

transpose和permute都是进行转置操作,但是有些许区别,permute可以完全替代transpose,transpose不能替代permute。transpose的基本操作接收两个维度dim1和dim2,将dim1和dim2调换:In [82]: a=torch.Tensor([[1,2,3],[4,5,6]])In [85]: a

2021-01-29 18:30:38 1757 3

原创 PyTorch+Flask+Gunicorn 部署深度模型服务

目录简介项目实现模型实现部署Flask服务Gunicorn加速并发测试Python 多线程+requestsab工具HTML网页端总结参考文献简介初入职场,对于训练完成的模型,对如何被应用到实际的生产环境中产生了疑问,如果要每次都手动向服务器上传一批离线的数据,test一下得到结果,再手动把结果反馈出去就太麻烦了,那么有什么办法可以使模型能让业务端方便地调用呢?不考虑模型压缩这些问题,要将一个训练完的深度学习模型供生产环境使用,最简单的方法就是写成一个Web服务放在服务器后台,客户端通过HTTP发送请

2021-01-23 23:57:01 2852

原创 NLP入门:文本特征的表示方式

一、前言NLP区别与CV的一个重要特征之一,在于模型的输入需要预先处理,从CV转行NLP的炼丹者一开始定会对模型的输入形式感到疑惑。不像CV中模型的输入就是图像的RGB值,本来就是数值型,且像素值可以认为是连续型变量,不需要再做什么处理,最多就是做一下归一化,或者翻转、裁剪等数据增强处理。而NLP输入的是文字,非数值型变量,要如何将文字更加合理地映射成某种数值型变量,是NLP要解决的一个重要问题。在NLP中数值型变量一般是以向量的形式展现出来,本文接下来将阐述NLP中出现过的多种词向量表示方式,并阐述词

2020-12-24 20:54:06 3993 2

原创 CS224N笔记(二) Lecture1~2 :深入理解Glove原理

1.背景知识在word2vec 中提到,词的表征方法还可以分成统计型和预测性这两类,统计型就是计算各个词或词序列出现的频次,比如词袋BOW、词频-逆文档频率TF-IDF、n-gram等,预测型的如word2vec,将词隐式地编码成特定大小的短向量,通过词向量空间上的语义相似性预测中心词或者周边词。这两种方法的优缺点都很明显,统计型训练快,使用了语料的统计信息但很难提取出语义信息,也很难衡量词之间但相似性,预测型可以很好地捕捉词的语义信息,能够在向量空间上衡量词之间的相似性,但是它没有用到语料的统计信息。

2020-12-24 20:38:00 466 2

原创 n-gram的原理解释

本文对n-gram的基本原理进行阐述,并简单介绍它在应用中会出现的维度问题。

2020-12-24 17:43:12 1729 3

原创 Python3线程池与任务队列实现

同步任务类架构种类自顶向下依次为1、线程池类ThreadPool2、线程处理单元ProcessThread3、任务类Task4、线程安全队列ThreadSafeQueue类架构细节1、线程安全队列ThreadSafeQueue本质上是一个队列,但是为了适应多线程,使得多个线程可以并发地操作该队列,包括读取、存入元素以及计算队列元素个数,需要加入线程保护——在操作该队列时需要加锁保...

2019-10-07 21:44:23 1121

原创 C++学习笔记(模板)

观看慕课网《C++远征》系列课程的笔记,链接https://www.imooc.com/u/1349694/courses?sort=publish友元函数和友元类友元全局函数1、定义在类外的友元函数,能通过该函数访问到对象中私有的数据成员。2、声明时放在类里面,要加friend,定义时可以放在类外面,可以不加friendclass Coordinate{ friend void pr...

2019-06-24 17:00:55 154

原创 C++学习笔记(多态)

观看慕课网《C++远征》系列课程的笔记,链接https://www.imooc.com/u/1349694/courses?sort=publish1、多态: 相同对象在接收不同的命令是,所做的对象是不同的,不同的对象接受相同的命令,所做出的动作是不同的,分别称作静态多态和动态多态。2、静态多态也叫作早绑定,指的是类成员函数的重载虚函数及其原理例子设想一个场景,图形类可以派生圆形类和矩形...

2019-06-23 22:57:40 208

原创 C++学习笔记(继承)

观看慕课网《C++远征》系列课程的笔记,链接https://www.imooc.com/u/1349694/courses?sort=publish基本概念1、继承的条件,父类是子类的超集2、父类与子类是一对概念,基类与派生类是一对概念,不过两对都是一回事3、例子class Person{public: string name; void eat();}class Worker...

2019-06-23 18:45:11 600

原创 C++学习笔记(基本知识+封装)

观看慕课网《C++远征》系列课程,链接https://www.imooc.com/u/1349694/courses?sort=publish基本知识点引用与指针1、引用就是一种“别名”,变量不能只有“别名”2、引用必须初始化int a=10;int &b; //是错误的,赋值成nullprt也不行int &b=a; //b有初始化,正确3、结构体的引用(略,没什...

2019-06-22 20:49:21 159

原创 算法小结(数组与字符串)

可用的数据结构C++中可以采用普通的数组、也可以采用STL中的vector

2019-06-22 15:33:24 465

原创 刷题笔记

3、数组中重复的数字在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。方法一:用STL提供的排序方法进行排序,然后对新数组进行相邻元素比较,如果相同,则输出该数字;因为重复的数字任...

2019-05-07 21:02:18 256

转载 C++零碎知识(长期更新)

函数参数的三种传递方式1、值传递,与C语言一致的一种传递方式,具有形参和实参,形参是实参的的副本,形参和实参使用不同的地址,需要额外的存储空间,在函数结束时会释放占用的存储空间。2、地址传递,也是与C语言一致的传递方式,传入的是参数的地址,在函数中对传入参数的修改也会影响到原始参数本身,这种方式同样需要额外的存储空间,只不过该空间是用来存放参数的地址。3、引用传递,C++特有的方式,传入的是...

2019-04-24 14:55:55 329

原创 机器模型之线性模型(一)

一直想好好掌握机器学习,西瓜书断断续续翻了几遍,每次都是看完没多久就忘记了,对细节也是一知半解,一直没法形成知识系统。可能之前都只是读,但没有写,没有好好地进行总结,因此尝试着自己做一下知识归纳。从本质来说,线性模型就是通过属性的线性组合来进行预测的模型,假设xix_{i}xi​是x\bm{x}x的第i个属性,学习参数w\bm{w}w和b\bm{b}b,预测函数为f(x)f(x)f(x):(1...

2019-04-23 22:41:08 117

空空如也

空空如也

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

TA关注的人

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