- 博客(30)
- 收藏
- 关注
原创 Java AQS核心数据结构CLH锁以及AQS中对其的改进
CLH锁是对自旋锁的一种改进。// 如果锁未被占用,则设置当前线程为锁的拥有者 while(!// 只有锁的拥有者才能释放锁 owner . compareAndSet(currentThread , null);} }自旋锁在获取锁时,线程会对一个原子变量循环执行方法,直到该方法返回成功即成功获取锁。操作是通过CAS实现的,因此该操作是原子操作。原子性保证了根据最新消息计算出新值,如果与此同时值已由另一个线程更新,则写入失败。因此,这段代码可以实现互斥锁的功能。
2023-03-30 14:36:31
237
原创 Pytorch实现文本情感分析
文本情感分析在本文中介绍如何使用神经网络实现情感分析任务,主要内容为:加载预训练的词向量介绍如何处理情感分析数据集使用循环神经网络模型训练使用以为卷积神经网络模型训练参考:动手学深度学习1、加载Glove预训练的词向量下面创建TokenEmbedding类来加载并使用预训练的词向量。import torchimport osimport collectionsfrom torch import nnfrom d2l import torch as d2lfrom torc
2022-05-29 21:46:18
1717
原创 pytorch中的pad_sequence、pack_padded_sequence和pad_packed_sequence函数
torch.nn.utils.rnn.pad_sequence、torch.nn.utils.rnn.pack_padded_sequence和torch.nn.utils.rnn.pad_packed_sequence在使用pytorch训练模型的时候,一般采用batch的形式同时处理多个样本序列,而同一batch中时序信息的的长度是不同的,这样就无法传入RNN,LSTM,GRU这样的模型中进行处理。一个常用的做法是按照一个指定的长度(或者按照batch中最长的序列长度)对batch中的序列进行填充(p
2022-05-26 12:17:31
3931
1
原创 2019_IJCAI_Adapting BERT for Target-Oriented Multimodal Sentiment Classification
Adapting BERT for Target-Oriented Multimodal Sentiment Classification论文地址:https://ink.library.smu.edu.sg/sis_research/4441/代码地址:https://github.com/jefferyYu/TomBERT 1、简介面向目标的情感分类(Targetoriented Sentiment Classification,TSC)的目标是识别句子中每个观点的情感极性。然而这一任务现
2022-05-20 20:13:38
511
原创 2019_AAAI_Multi-Interactive Memory Network for Aspect Based Multimodal Sentiment Analysis
Multi-Interactive Memory Network for Aspect Based Multimodal Sentiment Analysis论文地址:https://ojs.aaai.org/index.php/AAAI/article/view/38071、简介方面级的情感分析的目标是为了识别一个句子中指定方面的情感极性,它可以分为一下两类:Aspect term:Aspect Term Sentiment Analysis的目标是预测每个实体的情感,实体为输入文本中提到的
2022-05-19 16:14:04
879
原创 Transformer
Transformer是在"Attention is All You Need"提出来的,是一个基于attention(自注意力机制)结构来处理序列相关问题的模型。Transfomer在很多不同的nlp任务中取得了成功,例如:文本分类、机器翻译等。Tranformer没有使用CNN或者RNN的结构,完全基于注意力机制,自动捕捉输入序列不同位置的关系,擅长处理长文本序列信息,并且该模型可以高度并行工作,训练速度较快。尽管Transformer最初是应用于序列到序列的学习文本数据,但是现在已经推广到了各种现
2022-04-29 21:41:52
388
原创 编码器-解码器(seq2seq)
文章目录1、编码器解码器架构1.1、概念1.2、代码1.2.1、编码器(Encoder)1.2.2、解码器(Decoder)1.2.3、合并编码器和解码器2、seq2seq模型2.1、编码器2.2、解码器2.3、编码器-解码器细节2.4、训练&推理2.5 评价指标-BLEU3、机器翻译代码3.1、机器翻译数据集3.1.1、下载和预处理数据集3.1.2、词元化3.1.3、词表3.1.4、截断和填充文本序列3.1.5、构建数据迭代器3.2、seq2seq模型搭建与训练3.2.1、编码器3.2.2、解码器
2022-04-26 17:12:08
11346
1
原创 Chapter7 循环神经网络-2
文章目录5、LSTM & GRU5.1、长短时记忆网络(Long Short-Term Memory, LSTM)5.1.1、相关概念5.1.2、从零开始实现5.1.3、简洁实现5.2、门控循环单元(Gated Recurrent Unit, GRU)5.2.1、相关概念5.2.2、模型实现6、深度循环神经网络7、双向循环神经网络(Bi-RNN)第一部分地址5、LSTM & GRU在实际应用中,上述的标准循环神经网络的优化算法面临一个很大的问题,就是长期依赖问题——由于网络结构的变深使
2022-04-23 17:09:39
1220
原创 Chapter7 循环神经网络-1
文章目录1、语言模型1.1、语言模型的概念1.2、语言模型的计算1.3、马尔科夫假设1.4、语言模型评价指标:困惑度(Perplexity)2、文本预处理2.1、读取数据集2.2、词元化2.3、词表2.4、整合所有的功能3、读取时序数据3.1、随机采样3.2、相邻采样3.3、操作整合4、循环神经网络4.1、概念4.2、通过时间反向传播4.2.1、定义模型4.2.2、模型计算图4.2.2、计算4.3、应用:基于字符级循环神经网络的语言模型4.4、循环神经网络从零实现4.4.1、独热(ont-hot)编码4.4
2022-04-23 17:05:02
1524
原创 2020_ACM MM_MISA: Modality-Invariant and -Specific Representations for Multimodal Sentiment Analysis
MISA: Modality-Invariant and -Specific Representations for Multimodal Sentiment Analysis论文地址:https://dl.acm.org/doi/abs/10.1145/3394171.3413678?casa_token=oI8VnZ8Eg10AAAAA:mVUbDA0AZiAXcDxiDmV9-ooRH4PxzlSMXkBCgm1OCopziDWz8U3ZU54VzJIfqCCsbRFAvk8_kJhzBQ简介
2022-04-20 16:06:16
4660
原创 NLP-语言模型
语言模型1、语言模型的概念语言模型(language model)是自然语言处理的重要技术。自然语言处理中最常见的数据就是文本数据。我们可以把一段自然语言文本看作一段离散的时间序列。假设一段长度为TTT的文本中的词依次为w1,w2,⋯ ,wTw_1,w_2,\cdots ,w_Tw1,w2,⋯,wT,那么在离散的时间序列中,wt(1≤t≤T)w_t(1\le t \le T)wt(1≤t≤T)可以看作在时间步ttt的输出或者标签。给定一个长度为TTT的序列w1,w2,⋯ ,wTw_1,w_2,\
2022-04-14 22:20:16
2079
原创 2020_ACL_A Transformer-based joint-encoding for Emotion Recognition and Sentiment Analysis
A Transformer-based joint-encoding for Emotion Recognition and Sentiment Analysis情感分析和情绪识别对于情感分析来说, 情感表达可以来源于文字、音频、图像, 结合两种及以上模态建模情感分析, 就是多模态情感分析。如下图所示,利用文本、图像、音频(这三个模态来源于多媒体数据,其中的文本和声音和图像数据是从该多媒体数据中提取出的)三个模态去分析多媒体数据所表达的情感是积极的还是消极的或者是什么情绪(开心,激动,伤心,生气),就是
2022-04-12 21:36:17
2061
原创 Chapter6 卷积神经网络(CNN)
卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,是一种专门用来处理具有类似网格结构的数据的神经网络。例如时间序列数据(可以认为是在时间轴上有规律地采样形成的一维网格)和图像数据(可以看作二维的像素网格)。卷积神经网络在诸多应用领域都表现优异。“卷积神经网络”一词表明该网络使用了卷积(convolution)这种数学运算。卷积是一种特殊的线性运算。卷积神经网络是指那些至少在网络的一层中使用卷积运算来替代一般的矩阵乘法运算的神经网络。CNN网络主要有三部分
2022-04-12 14:07:45
1746
原创 2019_AAAI_ICCN
Learning Relationships between Text, Audio, and Video via Deep Canonical Correlation for Multimodal Language Analysis论文地址:https://arxiv.org/abs/1911.05544文本提出的模型-交互典型相关网络(ICCN),该模型使用特征对的外积以及深度典型相关分析(DCCA)来生成有用的多模态嵌入特征。文本特征在情感分析或情感识别任务中通常优于非文本特征,有以下几个原
2022-04-08 17:05:08
3500
原创 2019_ACL_Multimodal Transformer for Unaligned Multimodal Language Sequences
Multimodal Transformer for Unaligned Multimodal Language Sequences论文地址:https://arxiv.org/abs/1906.00295对多模态人类语言序列数据进行建模的主要挑战:1.每种模态的序列的采样方法不同,因此不同数据是未对齐的(就是一段文字,采样后与之相匹配的视频片段或音频片段与之并未对其)2.跨模态的元素之间的长期依赖关系(哭泣可能与之前所说过的话有关系)本文提出MulT来解决上述问题。通过电影评论的实例视频剪
2022-04-07 22:44:14
2539
8
原创 Chapter5 深度学习基础
文章目录1、激活函数1.1、sigmoid函数1.2、tanh函数1.3、ReLU函数1.4、softmax函数2、损失函数2.1、平均绝对误差损失函数(L1Loss)2.2、均方误差损失函数(MSELoss)2.3、负对数似然损失函数(NLLLoss)2.3.1、似然2.3.2、似然函数2.3.3、极大似然估计2.3.4、对数似然2.3.5、负对数似然2.3.6、pytorch中的应用2.4、交叉熵损失函数(CrossEntropyLoss)2.4.1、信息量2.4.2、信息熵2.4.3、相对熵(KL散度
2022-04-07 11:28:19
268
原创 过拟合-权重正则化和Dropout正则化
文章目录4.1、权重正则化4.1.1、简介4.1.2、从零开始实现4.1.3、使用Pytorch的简洁实现4.2 Dropout正则化4.2.1、简介4.2.2、从零开始实现4.2.3、简洁实现对模型进行评估和优化的过程往往是循环往复的。在训练模型的过程中,经常会出现刚开始训练时,训练和测试精度不高,这时的模型时欠拟合,然后通过增加迭代次数或者通过优化,训练精度和测试精度继续提升。但随着训练迭代次数的增加或不断优化,有可能会出现训练精度和损失值继续改善,但测试精度或损失值不降反而上升的情况,如下图所示,这
2022-04-07 11:25:49
1522
原创 激活函数(sigmoid、tanh、ReLU、softmax)
文章目录1.1、sigmoid函数1.2、tanh函数1.3、ReLU函数1.4、softmax函数激活函数在神经网络中的作用有很多,主要作用是给神经网络提供非线性建模能力。如果没有激活函数,那么再多层的神经网络也只能处理线性可分问题。常用的激活函数有sigmoid、tanh、relu、softmax等。1.1、sigmoid函数sigmoid函数将输入变换为(0,1)上的输出。它将范围(-inf,inf)中的任意输入压缩到区间(0,1)中的某个值:sigmoid(x)=11+exp(−x)sigm
2022-04-07 11:22:35
15993
1
原创 优化器(Optimizer)(SGD、Momentum、AdaGrad、RMSProp、Adam)
文章目录3.1、传统梯度优化的不足(BGD,SGD,MBGD)3.1.1 一维梯度下降3.1.2 多维梯度下降3.2、动量(Momentum)3.3、AdaGrad算法3.4、RMSProp算法3.5、Adam算法优化器在机器学习、深度学习中往往起着举足轻重的作用,同一个模型,因选择不同的优化器,性能有可能相差很大,甚至导致一些模型无法训练。所以了解各种优化器的基本原理非常重要。下面介绍各种常用优化器或算法的主要原理,及各自的优点或不足。3.1、传统梯度优化的不足(BGD,SGD,MBGD)BGD、S
2022-04-05 10:38:02
36141
8
原创 损失函数-负对数似然和交叉熵(Pytorch中的应用)
文章目录1、负对数似然损失函数1.1、似然1.2、似然函数1.3、极大似然估计1.4、对数似然1.5、负对数似然1.6、pytorch中的应用2、交叉熵损失函数2.1、信息量2.2、信息熵2.3、相对熵(KL散度)2.4、交叉熵2.5、pytorch中的应用3、使用总结1、负对数似然损失函数1.1、似然在解释负对数似然之前,首先要了解什么是似然。似然(likelihood)和概率(probability)有着一定的区别和联系。似然和概率是针对不同内容的估计和近似。概率表达了给定参数θ\thetaθ下样
2022-04-01 23:30:25
4884
2
原创 Kaggle入门赛-Digit Recognizer(手写数字识别)
目录1、数据处理与可视化2、模型搭建与训练3、模型预测结果4、代码整合Kaggle入门赛-手写数字识别所使用的数据集MNIST是计算机视觉上的“Hello world”数据集。这个经典的手写图像数据集一直作为基准分类算法的基础。随着新的机器学习技术的出现,MNIST仍然是研究人员和学习者的可靠资源。本文所介绍的算法通过使用一个多层感知机来完成手写数字的识别。本文通过数据预处理与可视化、模型搭建与训练、模型结果预测等方面来介绍如何从kaggle下载数据集,并通过处理后的数据集训练模型,再到最后如何将模型预
2022-03-31 11:32:22
3388
1
原创 Chapter4 Pytorch数据处理与可视化(Dataset、DataLoader、tensorboard、torchvision)
目录1、数据处理工具箱概述2、`Dataset`和`DataLoader`2.1、`Dataset`2.2、`DataLoader`3、`tensorboard`/`tensorboardX`3.1、`tensorboard`简介3.2、可视化神经网络3.3、可视化损失值3.4、可视化图像4、`torchvision`4.1、`transforms`4.2、`datasets`4.3、`model`数据下载和预处理是机器学习、深度学习实际项目中耗时又重要得任务,尤其是数据预处理,关系到数据质量和模型性能,
2022-03-28 21:34:58
796
原创 Chapter3 Pytorch神经网络工具箱
利用Pytorch神经网络工具箱,设计一个神经网网络就像搭积木一样,可以极大的简化我们构建模型的任务。在此介绍如何使用Pytorch神经网络工具箱来构建网络,主要有以下内容:神经网络核心组件nn模块中的Module和functional神经网络中的层、块和模型神经网络中的参数管理优化器以及优化器的比较如何构建一个神经网络保存和加载模型GPU1、神经网络核心组件神经网络看起来很复杂,节点很多,层数多,参数更多。但核心部分或组件不多,把这些组件确定之后,这个神经网络就基本确定了,这些核心
2022-03-25 22:50:40
1375
原创 Chapter2 Pytorch基础
1、Numpy与TensorTensor自称为神经网络界的Tensor,与Numpy相似,二者可以共享内存,且之间的的转换非常方便和高效。Numpy中的ndarray智能在CPU中进行运算,Torch中的Tensor既可以在CPU也可以在GPU上运行。1.1、Tensor概述对Tensor的操作很多,从接口的角度划分,可以分成两类:torch.function, 如torch.sum、torch.add等。tensor.function, 如tensor.view、tensor.add等。这
2022-03-23 21:35:54
1374
原创 Chapter1 Numpy基础
1、生成Numpy数组Numpy是Python的外部库,不在标准库中。因此,要使用它,需要先导入Numpy。import numpy as npNumpy封装了一个新的数据类型ndarry(N-dimensional Array),是一个多维数组对象。该对象封装了许多常用的数学运算函数,方便我们做数据处理。ndarray的生成有多种方式,如从已有数据中创建,利用random创建,创建特定形状的多维数组,利用arange、linspace函数生成等。1.1、从已有数据中创建数组直接对python的
2022-03-22 16:07:42
2149
原创 conda常用命令以及国内源配置
conda常用命令以及国内源配置1、conda常用命令查看conda版本conda --version升级conda版本conda update conda查看所有的虚拟环境conda env list查看已经安装的包conda list创建名为env_name,python版本为3.6的虚拟环境conda create -n env_name python=3.6删除名为env_name的虚拟环境conda remove --name env_name –all切换
2022-03-21 22:17:07
707
原创 蓝桥杯_高精度加法
问题描述 输入两个整数一个和b,输出这两个整数的和。一个和b都不超过100位。算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。 定义一个数组A,A [0]用于存储a的个位,A [1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。 计算c = a + b的时候,首先将A [0]与B [0]相加,如果有...
2018-12-30 19:36:38
211
原创 蓝桥杯_阶乘计算
问题描述 输入一个正整数n,输出n!的值。 其中n!=1*2*3*…*n。算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。 将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。 首先将a设为1,然后乘2,乘3,当乘到n时,即得到了...
2018-12-30 19:35:15
178
原创 floyd 求最短路
#include<iostream>#include<string.h>typedef long long int LL;const LL INF = 0x3f3f3f3f;using namespace std;LL road[100][100];LL way[100][100];int n,k;void floyd(){ //弗洛伊德核心算法 f...
2018-12-15 20:53:38
133
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人