自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 手把手教你搭建seq2seq实现法语向英语的翻译

基于Seq2Seq模型实现法语向英语的翻译章节简介Seq2Seq模型文本预处理辅助函数模型训练评估函数硬train一发结果模型保存与加载参考文献简介本文基于PyTorch实现seq2seq模型来实现法语向英语的翻译,会带你了解从seq2seq模型的主要原理,在实战中需要对文本的预处理,到训练和可视化一个完整的过程。读完本文,不仅可以通过这个项目来了解PyTorch的语法以及RNN(GRU)的操作,而且可以真正明白seq2seq模型的内涵。同时,你也可以实现自己的一个翻译器,效

2021-05-28 13:06:35 507

原创 普通人也能看懂的Transformer源代码解释(PyTorch)

Transformer源代码解释之PyTorch篇章节词嵌入位置编码多头注意力搭建Transformer在这里插入图片描述词嵌入Transformer本质上是一种Encoder,以翻译任务为例,原始数据集是以两种语言组成一行的,在应用时,应是Encoder输入源语言序列,Decoder里面输入需要被转换的语言序列(训练时)。一个文本常有许多序列组成,常见操作为将序列进行一些预处理(如词切分等)变成列表,一个序列的列表的元素通常为词表中不可切分的最小词,整个文本就是一个大列表,元素为一个一

2021-05-28 13:01:28 2599

原创 一篇看懂所有关于Transformer在翻译任务中的细节

Transformer之翻译篇章节MASK机制Encoder模型搭建训练函数MASK机制源码在colab上,数据集若要自己下载data原始的句子首先需要转换为词表中的索引,然后进入词嵌入层。举个例子,假如某个时间步长上输入句子为"I love u",src_vocab(源语言词表)为{"SOS":0,"EOS":1,"I":2,"love":3,"u":4},SOS和EOS代表句子的开头和末尾,那么输入句子变为[[2, 3, 4, 1]],接下来进入词嵌入层,目前我们的词表只有5个词,所

2021-05-28 12:48:34 1719

原创 彻底搞懂bert阅读理解源码

Bert & Transformer阅读理解源码详解参考论文https://arxiv.org/abs/1706.03762https://arxiv.org/abs/1810.04805在本文中,我将以run_squad.py以及SQuAD数据集为例介绍阅读理解的源码,官方代码基于tensorflow-gpu 1.x,若为tensorflow 2.x版本,会有各种错误,建议切换版本至1.14。当然,注释好的源代码在这里章节Demo传参数据篇番外句子分类创造实例实例转换

2021-04-15 12:49:30 1024

原创 彻底弄懂bert文本分类源码

Bert & Transformer文本分类源码详解参考论文https://arxiv.org/abs/1706.03762https://arxiv.org/abs/1810.04805在本文中,我将以run_classifier.py以及MRPC数据集为例介绍关于bert以及transformer的源码,官方代码基于tensorflow-gpu 1.x,若为tensorflow 2.x版本,会有各种错误,建议切换版本至1.14。当然,注释好的源代码在这里章节Demo传参跑不动

2021-04-15 11:40:07 1286

原创 彻底搞懂Transformer原理,Attention is all your need

Transformer参考论文(https://arxiv.org/abs/1706.03762)章节ReasonsSelf-AttentionMulti-Head AttentionPositional EncodingAdd & NormFeed ForwardResidual DropoutEncoder To DecoderShared WeightsEffectReasons For Transformer新模型的产生往往是为了旧模型的问题所设计的。

2021-04-15 11:25:03 609

原创 鲜为人知的训练神经网络技巧

------------------------------------------------------------------------图片来源----------------------------------------------------------------------------章节Train ProblemsChange ActivationUpdate Learning RateTest ProblemsDropoutEarlyStoppingRegu.

2021-04-15 11:04:14 112

原创 彻底看懂RNN,LSTM,GRU,用数学原理解释梯度消失或者梯度爆炸

Recurrent Neutral Network章节RNN概述LSTMGRU梯度困区Seq2Seq模型何去何从模型之外RNN概述为什么它叫做递归神经网络呢?与其他网络有何不同?接下来用简单例子阐述:这是比较简单的示意图,比如说一个网络只有一层,那么,那一层代表的函数方法就是这个网络实际对输入所起的作用,即Y = Funtion(X),我们实际上想找出那个function它究竟是什么。可以从下图看出,RNN得到一个输出不仅仅靠输入的X,同时还依赖于h,h在RNN中被叫做cell

2021-04-15 10:58:15 2058

原创 DNN(Deep-Learning Neural Network)

DNN(Deep-Learning Neural Network)接下来介绍比较常见的全连接层网络(fully-connected feedfoward nerural network)名词解释首先介绍一下神经网络的基本架构,以一个神经元为例输入是一个向量,权重(weights)也是一个矩阵把两个矩阵进行相乘,最后加上偏差(bias),即w1 * x1 + w2 * x2 + b神经元里面会有一个激活函数(activation),比如sigmoid,Relu等等,然后将这个结果当作未知量输入

2021-04-15 10:36:45 332

原创 反向传播算法(BackPropagation)

反向传播算法(BackPropagation)首先介绍一下链式法则假如我们要求z对x1的偏导数,那么势必得先求z对t1的偏导数,这就是链式法则,一环扣一环BackPropagation(BP)正是基于链式法则的,接下来用简单的前向传播网络为例来解释。里面有线的神经元代表的sigmoid函数,y1y_1y1​代表的是经过模型预测出来的,y1=w1∗x1+w2∗x2y_1 = w1 * x1 + w2 * x2y1​=w1∗x1+w2∗x2,而y1y^1y1代表的是实际值,最后是预测值与实际值之间的误

2021-04-15 10:29:57 401

原创 java 汉诺塔问题 递归

题目链接https://leetcode-cn.com/problems/hanota-lcci/题目介绍面试题 08.06. 汉诺塔问题在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制:(1) 每次只能移动一个盘子;(2) 盘子只能从柱子顶端滑出移到下一根柱子;(3) 盘子只能叠在比它大的盘子上。请编写程序,用栈将所有盘子从第一根柱子移

2021-03-04 20:10:49 238 1

原创 Ubuntu GPU 深度学习环境Tensorflow CUDA10.0 Cudnn 双系统 联想拯救者Y7000

https://github.com/sherlcok314159/Ubuntu/blob/main/GPU_.md

2021-03-02 19:21:33 317

原创 python matplotlib plt bins histogram 直方图

直方图import matplotlib.pyplot as pltplt.hist(x = '需要处理的数据',bins = '需要分割的精度')plt.xlabel('x轴标签')plt.ylabel('y轴标签')plt.title('总标题')plt.show()bins?按照我的个人实验结果,应该是关于精度的变量,跟组数无关不妨bins = 10 or 100 or 120 or 1200对比观察一下以下是我的个人数据可见bins越大,那么细分的程度越高大家觉得有帮助

2021-02-07 10:26:31 2984 6

原创 numpy入门 python 切片索引 合成 分割 创建数组 矩阵相乘

Introduction to numpyimport numpy as np1.创建数组#维数与中括号对数有关print(np.array([1,2,3]))#1 dimension [1,2,3]print(np.array([[1,2,3]]))#2 dimensions [[1,2,3]]2.转置矩阵#不改变维度,一维不变a = np.array([1,2,3])print(np.transpose(a))#[1,2,3]b = np.array([[1,2,3]]

2021-01-30 14:01:22 292

原创 矩阵乘法 点积 哈达玛积 线性代数 机器学习 numpy

Multiplication1.Hadamard product(哈达玛积)形式:A * B定义:a,b 都是 i x j 的同阶矩阵,设 c 是两者哈达玛积后的结果c(i) = a(i) * b(i)e.g.a = np.array([1,2,3]),b = np.array([4,5,6])c = a * b = [4,10,18](当然,输出的时候肯定看不到逗号)a’ = np.array([[1,2,3],[4,5,6]]),b’ =np.array([[1,-1,1],[6

2021-01-30 13:59:25 1985

原创 python leetcode 动态规划 最长公共子序列

题目链接https://leetcode-cn.com/problems/longest-common-subsequence/题目介绍最长公共子序列给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」

2021-01-25 14:35:34 162 2

原创 python3 动态规划 leetcode 连续子数组的最大和

题目链接https://leetcode-cn.com/problems/lian-xu-zi-shu-zu-de-zui-da-he-lcof/题目介绍剑指 Offer 42. 连续子数组的最大和输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。class Solution:

2021-01-24 07:26:05 313 6

原创 python leetcode 俄罗斯套娃信封 动态规划

题目链接https://leetcode-cn.com/problems/russian-doll-envelopes/题目介绍俄罗斯套娃信封问题给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。说明:不允许旋转信封。示例:输入: envelopes = [[5,4],[6,

2021-01-22 19:36:57 287

原创 最长递增子序列 python leetcode 动态规划

题目链接https://leetcode-cn.com/problems/longest-increasing-subsequence/题目介绍最长递增子序列给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3

2021-01-22 09:17:33 679 2

原创 VScode 快捷键 提高开发效率

说明此篇是整理提高开发效率的小工具快捷键leetcode测试ctrl+'提交ctrl+enterVScode终端ctrl+j , ctrl+` 两者分别都可以开关终端,十分方便命令ctrl+shift+p查找工作区下文件ctrl+p光标移动Alt 可以将光标从代码移动到顶上的菜单栏,然后按 Enter键就可打开创建新文件ctrl+n(个人建议还是打开一个工作区,在工作区里面直接命名文件后缀确定格式,省得新建之后还要保存选择)保存文件ctrl+s打开新窗

2021-01-21 09:35:29 354 1

原创 python 爬楼梯 动态规划 算法 leetcode

题目链接https://leetcode-cn.com/problems/climbing-stairs/题目介绍爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶class Solution: def climbStairs(self, n: int) -> int:

2021-01-20 16:21:55 297

原创 python3 动态规划 数组 最长连续递增子序列

题目链接https://leetcode-cn.com/problems/longest-continuous-increasing-subsequence/题目介绍最长连续递增序列给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], …,

2021-01-19 21:41:49 1623 4

原创 python leetcode 动态规划 编辑距离

题目链接https://leetcode-cn.com/problems/edit-distance/题目介绍编辑距离给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入:word1 = “horse”, word2 = “ros”输出:3解释:horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -> rose

2021-01-19 15:10:22 183 3

原创 动态规划 leetcode零钱兑换

题目链接https://leetcode-cn.com/problems/coin-change/题目介绍322. 零钱兑换给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。你可以认为每种硬币的数量是无限的。示例 1:输入:coins = [1, 2, 5], amount = 11输出:3解释:11 = 5 + 5 + 1示例 2:输入:coins = [2], amo

2021-01-19 11:30:54 118 1

原创 python 斐波那契数列 算法

斐波那契数,通常用F(n)表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1) = 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给你 n ,请计算 F(n) 。示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1 + 0 = 1纯递归递归有两个基本要素:基例以及递归关系式。基例:F(0) = 0,F(1) = 1,即递归结束的地方递归关系式:

2021-01-18 15:43:56 1455 14

空空如也

空空如也

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

TA关注的人

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