自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 tensorboard可视化模型结构和跟踪模型训练过程

tensorboard可视化模型结构和跟踪模型训练过程

2023-02-22 16:18:18 745

原创 论文笔记:Mention Flags (MF): Constraining Transformer-based Text Generators

一、概述本模型针对于将受控文本生成应用到常识生成任务上,相较先前的T5等生成模型,性能有不错的提升。常识生成一般有两种:CommonGen:输入是一个包含k个概念的 C= [c1,· · ·, ck], k≤5,要求生成的文本中满足C中的全部词法约束。如:[Tetas, South, Bank]E2ENLG: 输入是包含k个键值对形式概念的C=[k1, v1,· · ·, kn, vn], n≤8,要求生成的文本中满足C中的全部词法约束。如:[name, Tetas, area, South, B

2021-12-23 16:01:12 1283 1

原创 生成对抗网络GAN

一、生成对抗网络的结构图GAN分为两部分,包括生成器和判别器,先训练判别器,看做是一个二元分类器,可以判别是生成的图像还是真实图像。当判别器训练到一定阶段,freeze固定住其参数,开始训练生成器。使用生成器生成fake图像,使得判别器可以误认为是real数据(loss很大),训练目标就是让生成器越来越能生成像real的图像。当达到比较好的效果时,再freeze生成器的参数,开始训练判别器,提高判别器的判别能力。以此交替进行,最后模型可以生成很接近real的图像了。二、GAN_LOSS例子: 让网

2021-12-07 10:38:24 3084

原创 Strassen:一种高效的矩阵相乘算法

Q1:如何提高矩阵相乘效率?矩阵乘法是种极其耗时的运算。以C = A • B为例,其中A和B都是 n x n 的方阵。根据矩阵乘法的定义,计算过程如下:A1: 简单分治法前提:假定A,B都是n等于2的次幂的方阵基本思路:计算C=A*B时,将C,A,B矩阵进行分块操作,对每个分块的矩阵进行乘法运算,运算完毕后重新对得到的C11,C12,C21,C22进行组合操作。确定递归终止条件:当分块矩阵得到的阶数为1 时,得到的C即是A和B中两个元素的乘积。每个公式需要计算两次矩阵乘法和一次矩阵加法,

2021-11-15 16:56:04 3004 1

原创 Beam Search束搜索(人话版)

一、引入对于一般的seq2seq模型的decoder,我们通常在选取t-1时刻的output经过softmax计算得到概率最大的word作为t时刻的input,这中思想属于贪心策略,即:对于每一个步骤选取当前步的最优值(模型每一步预测概率最大的那个word)。显然这样的方式有时不足以达到全局最优的效果。二、beam search方法保存最好的k个候选。每一个step,在k*n个选项中选出最好的k个。举例假设在start处模型预测A和C是概率最大的两个output,则对他们俩都做保留,基于

2021-11-11 20:13:48 369

原创 论文笔记 Unified Language Model Pre-training for Natural Language Understanding and Generation

一、干啥用的?一个新的预训练语言模型(UNILM),它可以用于自然语言理解NLU和生成任务NLG。UNILM由多个语言建模目标共同预训练,共享相同的参数。二、和别的pre-train模型有啥区别?UNILM是一个多层Transformer网络,使用三种类型的语言建模任务进行预训练:单向(包括l-to-r 和r-to-l)、双向和seq2seq预测。该模型在大量文本上联合预训练,针对三种类型的无监督语言建模目标进行优化。三、怎么做的?与BERT类似,可以对预先训练的UNILM进行微调(如有必要,

2021-11-10 20:36:04 1329

原创 使用TensorBoard对Trainer日志做可视化

前提要确保自己的conda虚拟环境中已经安装了TensorBoard包,如果没有请在终端自行install。1.定义TrainingArguments通过logging_dir参数制定logging日志输出的位置,logging_steps表示logging记录的步长。training_args = TrainingArguments( output_dir='./results', # output directory num_train_epochs=50,

2021-11-03 18:30:48 2375 1

原创 pytorch用gpu单机多卡并行训练

在代码的最顶上加上这个,值写你想要并行训练的gpu编号。import osos.environ["CUDA_VISIBLE_DEVICES"] = "1,2"将model传入DataParallel方法,并使用.cuda()model = torch.nn.DataParallel(model)model = model.cuda()把数据样本都用to传入到gpu中。device = torch.device('cuda')sequences = sequences.to(device)

2021-11-03 11:55:20 205

原创 神经网络梯度下降优化算法(人话版)

一、概念神经网络是已知自变量x和真实结果y。神经网络的架构可以看做是黑箱测试,但你不知道黑箱指代的F(x)到底是什么,不过没关系,我们知道其中的参数,即神经元之间做连接的那些个边指代的权值。一个神经网络的参数是非常庞大的,自变量一般是非常多个,以至于参数也是有很多,且神经网络一般会有很多个隐藏层,所以一个神经网络是一个多元复合函数。我们向黑箱中输入你的自变量x后得到一个预测值y拔,和真实值y做对比,怎么比呢?答:通过损失函数G(y拔,y)。我们假设一个比较简单的损失函数如下:可见,我们希望的是预

2021-11-01 19:29:44 927

原创 BERT+使用transformers库加载自己数据集做BERT预训练(普通方式+TrainerAPI)

Word Embedding在NLP任务中,我们需要对文本进行编码,使之成为计算机可以读懂的语言。在编码时,我们期望句子之间保持词语间的相似性。word embedding做的事情就是把一个词映射到低维的稠密空间,切语义相近的词向量离得比较近。...

2021-10-26 20:57:43 7758 2

原创 深入浅出Attention机制+Transformer架构

一、Attention 机制概述实现Attention的方式有很多种,这里展示比较常用的一种。在Encoder的过程中保留每一步RNN单元的隐藏状态h1……hn,组成编码的状态矩阵Encoder_outputs;在解码过程中,原本是通过上一步的输出yt-1和前一个隐藏层h作为输入,现又加入了利用Encoder_outputs计算注意力权重attention_weight的步骤。相比于原始的Encoder-Decoder模型,加入Attention机制后最大的区别就是它不在要求编码器将所有输入信息都编

2021-10-09 14:14:58 556

原创 pytorch积少成多

torch.nn.Softmax(-1)X = torch.randn(3,2)Y = nn.Softmax(dim = -1)(X)print(X)print('---')print(Y)tensor([[1.6717, 0.1819], [1.3746, 1.0038], [0.0052, 0.3082]])---tensor([[0.8161, 0.1839], [0.5917, 0.4083], [0.4248, 0.

2021-10-06 21:13:14 195

转载 springcloud-Eureka

一、概论我们知道微服务是把一个大项目拆分成多个模块,各模块间相互调用就会出现各种各样的问题,而SpringCloud提供了一整套的解决方案。SpringCloud的基础功能:服务治理: Spring Cloud Eureka客户端负载均衡: Spring Cloud Ribbon服务容错保护: Spring Cloud Hystrix声明式服务调用: Spring Cloud FeignAPI网关服务:Spring Cloud Zuul分布式配置中心: Spring Cloud Confi

2021-10-05 09:56:20 59

原创 embedding、LSTM、seq2seq+attention的知识总结

一、 embedding1. input : [ seqlen , batchsize ]2. output: [ seq_len, batchsize, embed_dim ]二、 LSTM输入:1. input: [ seq_len, batch, input_size]2. h0 : [ num_layers * num_directions,batch_size,hidden_size ]输出:1. out: [ seq_len, batch, num_directions

2021-10-05 09:53:53 742

原创 NLP之预处理

2021.9.8 学习笔记一、LSTM代码单向LSTMtorch.nn.LSTM(input_size, hidden_size, num_layer)input = torch.randn(seq_len, batch, input_size)

2021-09-28 10:36:47 580

原创 java多线程总结

java基础2:多线程总结线程、进程、并发、并行都是什么?在开始多线程学习之前,说先需要了解一下线程、进程、并发、并行分别是什么呢?线程 进程专业的说法是:进程是资源分配的最小单位,线程是CPU调度的最小单位。没懂?那做个简单的比喻:进程=火车,线程=车厢 。这下懂了吧,一个进程可以调用多个线程同时执行。并发 并行并行:多个cpu实例或者多台机器同时执行一段处理逻辑,是真正的同时。并发:通过cpu调度算法,让用户看上去同时执行,实际上从cpu操作层面不是真正的同时。并发往往在场景中有公用

2021-02-07 14:34:22 195 1

原创 Springboot-Mybatis之动态SQL和缓存

一、 动态SQL动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。如果之前用过 JSTL 或任何基于类 XML 语言的文本处理器,你对动态 SQL 元素可能会感觉似曾相识,因为大致写法是差不多的。1、if 语句if语句是最简单的,通常用在where处添加条件拼接查询条件。mapper.xml

2021-01-24 21:44:00 486 1

原创 整合Springboot-Mybatis和resultMap映射

1、整合Mybatis并执行一个SQL1、创建项目时引入mybatis启动器和jdbc启动器。mybatis-spring-boot-starterspring-boot-starter-jdbc2、在yaml配置文件中配置mysql参数#配置mybatisspring: datasource: username: root password: root url: jdbc:mysql://localhost:3306/test?useUnicode=true&

2021-01-12 22:16:37 1550

原创 开发必备技能:Git的快速入门

理论:什么是Git学习Git之前首先要明白一个概念——版本控制。官方解释:版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。说人话:用于管理多人协同开发项目的技术。一、Git使用背景:平时我们多人开发一个项目,如果没用版本控制,容易有软件源代码的一致性、安全性,以及源代码的整合等各种问题。而且工作模式类似“单线程”,只要有一人修改了一块代码,就要整体把修改后的demo传给大家,

2021-01-10 18:19:49 139

原创 yaml语法和加载配置文件的几种方式

yaml和properties他俩是干啥的?yaml和properties都是用来写配置文件的,可以向bean中注入咱们提前写好的数据。他俩有啥区别?yaml是springboot官方推荐的配置文件方法。写法是key: value (冒号后面加一个“空格),yaml对缩进要求非常严格,但相比properties,优点在于可以存储对象,并且写法更加简洁,比properties支持更多的功能。properties的写法是key=value,是早期推荐的配置文件方式,由于yaml的简洁性和拓展性,p

2021-01-06 16:23:11 1399

原创 快速搭建一个springboot项目

Springboot-1:快速搭建一个springboot项目1、打开IDEA,File --> new project —> 选择左侧栏中的spring initializr.2、选中直接next!进入这个页面填写好具体的web项目初始信息,再次next!3、在dependencies选中Web中的spring Web,再次next!4、经历一段时间maven下载相关依赖,下载完成后我们的初始springboot项目这样就搭建成功啦!这是目录。5、把一些没用的目录删除后,目录就

2021-01-05 22:22:06 164 2

原创 java集合总结

Collection 接口Collection是接口的接口,实现Collection 接口的List和Set接口。下面展示collection的方法。List 接口实现List接口的实现类有:LinkedList【链表】 ArrayList【数组】 Vector【向量】 。小结:ArrayList是数组,(通过array就看出来了),我们都知道:数组查询快,增删慢。LinkList是链表,我们都知道:链表查询慢,增删快。Vector底层也是数组,他优势在于线程安全,但效率低。也许你想说:

2020-12-31 11:36:53 90

原创 jdbc连接数据库_qzhq

JDBC连接数据库一、前提环境:eclipse javaEEmysql可视化:Navicat for MySQL数据库版本:mysql-5.7.25-winx64jdbc相关jar包:mysql-connector-java-5.1.7-bin.jar这里特别要提一句:不同的mysql数据库版本对应着不同版本的mysql-connector。如果mysql版本更高(如8...

2019-09-18 16:05:00 198

转载 javaweb学习总结之过滤器Filter

javaweb学习总结之过滤器Filter一、概念二、Filter是如何实现拦截的?三、生命周期四、注册Filter五、映射Filter演示用Filter防止用户不通过登录而输入网址直接进入主页一、概念Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 ...

2018-12-29 09:52:56 173

空空如也

空空如也

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

TA关注的人

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