- 博客(44)
- 收藏
- 关注
原创 《自然语言处理-基于预训练模型的方法》第7章 预训练语言模型
第7章 预训练语言模型7.1 概述微调: 让模型从海量数据中充分学习如何从数据中提取特征。然后,会根据具体的目标任务,使用相应的领域数据精调,使模型进一步“靠近”目标任务的应用场景,起到领域适配和任务适配的作用。预训练语言模型具有“三大”特点——大数据、大模型和大算力。7.2 GPTGPT提出了“生成式预训练+判别式任务精调”的自然语言处理新范式,生成式预训练:在大规模文本数据上训练一个高容量的语言模型,从而学习更加丰富的上下文信息;判别式任务精调:将预训练好的模型适配到下游任务中,并使用有
2023-09-25 11:12:20
238
原创 fastapi -html docker部署
文章目录前言一、fastapi的docker部署1.生成包2.将文件放入形式如下3.编写dockerfile文件二、html docker部署1.文件目录2.dockfile文件的写入前言fastapi html的docker 部署一、fastapi的docker部署1.生成包第一步生成项目所需要安装的包,pycahrm终端运行:pip freeze > requirements.txt一般而言这种方式会多很多pytz @ file:///tmp/build/80754af9/
2023-09-25 11:10:59
377
原创 scrapy-spiders 爬虫 request
一、scrapy环境配置:直接conda 一个环境,然后conda create -n pachong python=3.7安装包pip install scrapy激活环境conda activate pachong使用scrapy创建一个项目scrapy startproject 项目名如(项目名)pachong然后进入目录会有以下文件:Scrapy完成爬虫需要涉及的文件和步骤新建项目 (scrapy startproject xxx):新建一个新的爬虫项明
2023-09-25 11:10:29
266
原创 leetcode-分治+递归+链表
文章目录一、分而治之的算法设计思想1.递归与分治2.递归函数的设计思想:分而治之(减而治之)3.自顶向下地解决问题二、使用步骤1.引入库2.读入数据总结一、分而治之的算法设计思想1.递归与分治递归是编程技巧,直接体现在代码上 ,即 函数自己调用自己,每一层递归调用,传入的参数的值并不完全一样;分治是一种算法设计的思想,绝大部分情况下「分治算法」通过「递归」实现。即:子问题的求解通过递归方法实现。算法和数据结构并不是凭空想象出来的,「递归」函数也不例外。「递归」函数基于 「自顶向下」拆分问题,再「
2023-09-25 11:09:53
175
原创 对抗训练NLP
文章目录一、FGM二、使用步骤1.引入库2.读入数据总结对抗训练是一种引入噪声的训练方式,可以对参数进行正则化,提升模型鲁棒性和泛化能力。也就是在输入的层次增加扰动,根据扰动产生的样本,来做一次反向传播。对抗样本一般需要具有两个特点:相对于原始输入,所添加的扰动是微小的;能使模型犯错。用一句话形容对抗训练的思路,就是在输入上进行梯度上升(增大loss)(使得输入尽可能跟原来不一样),在参数上进行梯度下降(减小loss)(使得模型尽可能能够正确识别)。由于输入会进行embedding loo
2023-09-25 11:09:41
195
原创 LEBERT
文章目录一、论文阅读二、代码解读1.输入数据的处理2.词向量构造一、论文阅读https://lonepatient.top/2021/06/02/Lexicon-Enhanced-Chinese-Sequence-Labelling-Using-BERT-Adapter.html二、代码解读1.输入数据的处理class LEBertProcessor(Processor): def __init__(self, args, tokenizer):作者默认导入词向量的前10000个词(
2023-09-25 11:09:21
99
原创 leetcode-二分法+前缀和
一、二分法示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('ignore')import sslssl._create_default_https_c
2023-09-25 11:09:03
110
原创 leetcode-动态规划-python
一、动态规划动态规划的三要素:最优子结构,边界和状态转移函数,最优子结构是指每个阶段的最优状态可以从之前某个阶段的某个或某些状态直接得到(子问题的最优解能够决定这个问题的最优解)边界指的是问题最小子集的解(初始范围)状态转移函数是指从一个阶段向另一个阶段过度的具体形式,描述的是两个相邻子问题之间的关系(递推式)重叠子问题,对每个子问题只计算一次,然后将其计算的结果保存到一个表格中,每一次需要上一个子问题解时,进行调用,只要o(1)时间复杂度,准确的说,动态规划是利用空间去换取时间的算法.判断
2023-09-25 11:08:48
247
原创 leetcode-排序
一、题库1.简506. 相对名次给你一个长度为 n 的整数数组 score ,其中 score[i] 是第 i 位运动员在比赛中的得分。所有得分都 互不相同 。运动员将根据得分 决定名次 ,其中名次第 1 的运动员得分最高,名次第 2 的运动员得分第 2 高,依此类推。运动员的名次决定了他们的获奖情况:名次第 1 的运动员获金牌 “Gold Medal” 。名次第 2 的运动员获银牌 “Silver Medal” 。名次第 3 的运动员获铜牌 “Bronze Medal” 。从名次第 4 到
2023-09-25 11:07:41
37
原创 leetcode-广度优先搜索+深度+回溯+分治
文章目录一、广度优先搜索1.广度优先遍历借助「队列」实现2.树的广度优先遍历3 .使用广度优先遍历得到无权图的最短路径4. 练习题5. 总结二、二维平面上的搜索问题1.引入库2.读入数据总结一、广度优先搜索1.广度优先遍历借助「队列」实现广度优先遍历呈现出「一层一层向外扩张」的特点,先看到的结点先遍历,后看到的结点后遍历,因此「广度优先遍历」可以借助「队列」实现说明: 遍历到一个结点时,如果这个结点有左(右)孩子结点,依次将它们加入队列。2.树的广度优先遍历102. 二叉树的层序遍历给你二叉
2023-09-25 11:07:32
229
原创 leetcode-堆
文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport
2023-09-25 11:07:22
59
原创 leetcode-贪心
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、贪心算法二、题库1.简2.中一、贪心算法贪心算法是对完成一件事情的方法的描述,贪心算法每一次都做出当前看起来最好的选择,而不用考虑其它可能的选择。贪心算法与回溯算法、动态规划的区别「回溯算法」需要记录每一个步骤、每一个选择,用于回答所有具体解的问题;「动态规划」需要记录的是每一个步骤、所有选择的汇总值(最大、最小或者计数);「贪心算法」由于适用的问题,每一个步骤只有一种选择,一般而言只需要记录与当前步骤相关的
2023-09-25 11:07:10
54
原创 Huggingface -ber源码
文章目录一、Tokenization(BertTokenizer)二、使用步骤1.引入库2.读入数据总结一、Tokenization(BertTokenizer)和BERT有关的Tokenizer主要写在/models/bert/tokenization_bert.py和/models/bert/tokenization_bert_fast.py 中。这两份代码分别对应基本的B ertTokenizer,以及不进行token到index映射的BertTokenizerFast,这里主要讲解第一个。c
2023-09-25 11:06:55
90
原创 leetcode-二叉树-python
一、树?树 是一种经常用到的数据结构,用来模拟具有树状结构性质的数据集合。树里的每一个节点有一个值和一个包含所有子节点的列表。从图的观点来看,树也可视为一个拥有N 个节点和N-1 条边的一个有向无环图。二叉树是一种更为典型的树状结构。如它名字所描述的那样,二叉树是每个节点最多有两个子树的树结构,通常子树被称作“左子树”和“右子树”。二、题目1.简144. 二叉树的前序遍历给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:输入:root = [1,null,2,3]输出
2023-09-25 11:06:09
33
转载 2019达观信息提取比赛第九名代码
2019达观信息提取比赛第九名代码,地址: https://github.com/lonePatient/daguan_2019_rank9总结有空补上…
2019-09-28 17:05:54
791
原创 使用BERT进行多标签分类
基于pytorch实现的BERT模型多标签分类试验,代码地址:https://github.com/lonePatient/Bert-Multi-Label-Text-Classification详细说明见README.md
2019-08-28 14:58:55
3525
2
原创 Multi-Sample Dropout for Accelerated Trainingand Better Generalization
使用pytorch进行multi-sample dropout试验,代码地址:https://github.com/lonePatient/multi-sample_dropout_pytorch内容后续补上。。。。。。。
2019-08-28 14:57:11
458
原创 Stochastic Gradient Methods with Layer-wise Adaptive Moments for Training of Deep Networks
使用pytorch实现的NovoGrad优化器,代码地址:https://github.com/lonePatient/NovoGrad-pytorch内容后续补上。。。。。
2019-08-28 14:55:32
363
原创 Lookahead Optimizer: k steps forward, 1 step back
使用pytorch实现的Lookahead 优化器,代码地址:https://github.com/lonePatient/lookahead_pytorch内容,后续补上。
2019-08-28 14:53:21
423
转载 Pytorch实现word2vec
详细内容,后续补上…代码链接地址: https://github.com/lonePatient/chinese-word2vec-pytorch大概 6 次 epochs 之后,可得到一下结果:目标词Top10目标词Top10中国中国 : 1.000男人男人 : 1.000中国美国 : 0.651男人女人 : 0.764中国日本 : 0.5...
2019-01-26 21:09:51
1944
翻译 深度学习与计算机视觉(PB-12)-ResNet
在上一章中,我们讨论了GoogLeNet网络结构和Inception模块,这节中,我们将讨论由一个新的微结构模块组成的网络结构,即由residual微结构组成的网络结构——ResNet。ResNet网络由residual模块串联而成,在原论文中,我们发现作者训练的ResNet网络深度达到了先前认为不可能的深度。在2014年,我们认为VGG16和VGG19网络结构已经非常深了。然而,通过ResNe...
2019-01-06 20:07:13
1182
原创 torchtext读取文本数据集
Introduction本文主要介绍如何使用Torchtext读取文本数据集。Torchtext是非官方的、一种为pytorch提供文本数据处理能力的库, 类似于图像处理库Torchvision。Install下载地址:https://github.com/text安装:pip install text-master.zip测试安装是否成功: import torchtextHow...
2019-01-01 20:50:34
11437
8
原创 Torchtext读取JSON数据
在文本预处理一节,介绍了如何利用torchtext读取tsv格式的文本数据。对于分类问题,这是足够的。但是在处理如NER和机器翻译等问题时,我们构造的输入通常就不是(类别,序列)这样的结构了,而是(序列,序列)。另一方面,在搭建混合网络时,有时我们希望能够给模型多个输入(例如cnn-bilstm-crf中,既需要字符又需要单词输入),这超过了tsv所能。因此要另辟蹊径。尽管Torchtext封装...
2019-01-01 20:38:59
2456
2
原创 Pytorch深度学习入门
title: Pytorch深度学习入门mathjax: falsedate: 2018-12-06 12:34:12categories:- 深度学习tags:- 深度学习- Pytorch在本教程中,将使用PyTorch框架介绍深度学习,并通过一个案例进行实验,通过本教程,你将可以轻松地使用Pytorch框架构建深度学习模型。Pytorch 简介Pytorch 是一个基...
2018-12-08 21:03:37
4537
原创 Bayesian_Optimization
title: bayesian optimizationmathjax: falsedate: 2018-01-02 13:56:29categories:- 机器学习tags:- 机器学习几乎所有的机器学习算法都包括一些超参数。这些参数和常规参数不同,它们不是模型的一部分,不会在模型拟合中被自动调整,需要在额外的步骤中进行调整。常见的超参数有逻辑回归模型中的正则项lambda、...
2018-12-04 09:39:16
2340
2
原创 深度学习与计算机视觉(PB-13)—ImageNet数据集准备
前面几节内容中,我们都是对小数据集(相对于工业界而言)进行实验,使用CPU环境也可以完美地实现。接下来,我们将使用ImageNet数据集进行实验,该数据集比较大,需要在GPU环境下进行。在对ImageNet数据进行建模之前,我们首先来认识下ImageNet数据集以及对该数据集进行预处理。ImageNet数据集介绍ImageNet是一个计算机视觉系统识别项目,是目前世界上图像识别最大的数据库。是...
2018-12-04 09:38:09
13593
39
原创 Adversarial validation
title: Adversarial validationmathjax: falsedate: 2018-07-10 23:27:08categories:- kaggletags:- kaggle之前参加了kaggle的Toxic比赛,名次为Top1%(瞎打,忙于项目——提不上去的理由了,安慰自己)。回头看别人分享的kernel时,发现了Adversarial validati...
2018-12-04 09:37:01
2664
2
原创 论文阅读-Snapshot Ensembles Train 1, get M for free
Snapshot Ensembles(Huang et al,2017)是最近提出的一种聪明的技术,该方法训练一个单一的模型,使用cosine annealing learning rate schedule方法,首先使用一个较大学习率并快速收敛到一个局部最小值。然后保存模型参数,接着重新使用一个较大的学习率开始进行优化,然后重复这些步骤M次。最后,所有保存的模型Snapshot都是整体的。摘要...
2018-12-04 09:36:27
1427
2
原创 周期性学习率(Cyclical Learning Rate)技术
本文介绍神经网络训练中的周期性学习率技术。Introduction学习率(learning_rate, LR)是神经网络训练过程中最重要的超参数之一,它对于快速、高效地训练神经网络至关重要。简单来说,LR决定了我们当前的权重参数朝着降低损失的方向上改变多少。new_weight = exsiting_weight - learning_rate * gradient这看上去很简单。但是...
2018-12-04 09:36:02
12761
7
原创 tensorflow学习笔记——使用Dataset处理数据
以往我们在构建模型并进行训练时,一般都是先建立placeholder,然后使用Seeion中的feed_dict机制将数据feed给模型进行训练或者预测。使用这种方式十分灵活,可以将所有数据读入内存中,然后按照batch进行feed;也可以建立一个generator,然后按照一个batch大小将数据读入。但是这种方式效率较低,难以满足高速计算的需求。Tensorflow开发者也建议停止使用这种方式...
2018-12-04 09:35:34
2718
原创 Spatial Dropout
SpatialDropout是Tompson等人在图像领域提出的一种dropout方法。普通的dropout会随机地将部分元素置零,而SpatialDropout会随机地将部分区域置零,该dropout方法在图像识别领域实践证明是有效的。dropoutdropout是怎么操作的?一般来说,对于输入的张量x,dropout就是随机地将部分元素置零,然后对结果做一个尺度变换。比如,我们随机初始化一...
2018-12-04 09:35:13
15260
5
原创 TensorFlow学习笔记——使用TFRecord进行数据保存和加载
本篇文章主要介绍如何使用TensorFlow构建自己的图片数据集TFRecord的方法,并使用最新的数据处理Dataset API进行操作。TFRecordTFRecord数据文件是一种对任何数据进行存储的二进制文件,能更好的利用内存,在TensorFlow中快速的复制,移动,读取,存储等,只要生成一次TFRecord,之后的数据读取和加工处理的效率都会得到提高。一般来说,我们使用Tenso...
2018-12-04 09:34:43
1791
原创 如何找到一个好的学习率
我们知道学习率是深度学习模型中一个非常重要的超参数,因此,当训练深度学习模型时,我们如何确定学习率的大小? 如果学习率太小,网络将会训练很慢且耗时(比如学习率设置为1e-6)。如果学习率太高,网络在训练过程中可能会跳过最小值点。更糟糕的是,高学习率可能会导致loss不断变大,这样就脱离了模型的学习目标。介绍如下图所示,高的学习率,可能会出现跳过最小值点情况,并且loss还增加:图1因此,...
2018-12-04 09:33:20
11101
原创 深度学习与计算机视觉(PB-11)-GoogLeNet
在本节中,我们将研究Szegedy等人在2014年的论文《Going Deeper With Convolutions》中提出的GoogLeNet架构。这篇论文之所以重要,主要是:与AlexNet和VGGNet网络结构相比,模型非常小(整个权重文件大小约为28MB)。并且从论文中,我们可以看到作者使用Global Average Pooling代替了全连接层,一方面减小了模型的大小,另一方面...
2018-12-03 14:10:59
1246
2
原创 深度学习与计算机视觉(PB-10)-Kaggle之猫狗比赛
在第9节中,我们提到了当数据太大无法加载到内存中时,如何使用HDF5保存大数据集——我们自定义了一个python脚本将原始图像数据集序列化为高效的HDF5数据集。在HDF5数据集中读取图像数据集可以避免I/O延迟问题,从而加快训练过程。假设我们有N张保存在磁盘上的图像数据,之前的做法是定义了一个数据生成器,该生成器按顺序从磁盘中加载图像,N张图像共需要进行N个读取操作,每个图像一个读取操作,这样...
2018-12-03 14:10:29
1646
4
原创 深度学习与计算机视觉(PB-09)-使用HDF5保存大数据集
到目前为止,我们使用的数据集都能够全部加载到内存中。对于小数据集,我们可以加载全部图像数据到内存中,进行预处理,并进行前向传播处理。然而,对于大规模数据集(比如ImageNet),我们需要创建数据生成器,每次只访问一小部分数据集(比如mini-batch),然后对batch数据进行预处理和前向传播。Keras模块很方便进行数据加载,可以使用磁盘上的原始文件路径作为训练过程的输入。你不需要将整个数...
2018-12-03 14:09:53
3335
2
原创 深度学习与计算机视觉(PB-08)-应用深度学习最佳途径
在Starter Bundle第10章中,我们提到了训练一个神经网络模型所需要的四个因素,即:数据集loss函数神经网络结构优化算法有了这四个因素,实际上我们是可以训练任何深度学习模型,但是,我们如何训练得到一个最优的深度学习模型?如果效果达不到理想效果,又该如何去优化模型?在深度学习实践中,你会发现,深度学习最难的部分其实是如何根据模型的准确性/损失曲线来进行下一步操作。如果模型...
2018-12-03 14:09:14
289
原创 深度学习与计算机视觉(PB-07)-优化算法
在之前的章节中,我们只研究和使用了随机梯度下降法(SGD)来优化网络模型,但是,在深度学习中还有其他高级的优化算法,这些高级方法可以加速训练过程或者提高准确度:在可接受的准确度下,高级算法可以减少训练时间(比如更少的迭代次数epochs)。模型可以更好的适应其他超参数,而不仅仅是学习率。理想情况下,可以获得比SGD更高的分类准确度。随着深度学习的不断发展,新的优化技术层出不穷,每一种新...
2018-12-03 14:08:49
863
原创 深度学习与计算机视觉(PB-06)-模型集成
在本章中,我们将探讨集成方法的概念——多个分类器合并成一个大型元分类器的过程。将多个模型的平均结果最为最终结果,可以比随机的单一模型获得更高的性能(比如准确度)。事实上,几乎你所看到的在ImageNet数据挑战赛上获得最佳的结果都是通过集成多个卷积神经网络结果得到的。首先,我们将讨论下Jensen不等式,这是集成方法的关键。然后,我们相互独立地训练多个CNN模型,并对每个CNN模型进行评估,最后...
2018-12-03 14:08:02
892
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人