深度学习模型
文章平均质量分 55
各种深度学习模型的学习笔记
咖乐布小部
NLP算法工程师,欢迎交流,一起学习!
展开
-
h5py文件操作
写# phrases_id_dir = "/home/ubuntu/D/lizhigang/MGISEG-lzg/data/preprocess_data/end_phrases_id.h5"# f_lb = h5py.File(phrases_id_dir, 'w')# f_lb.create_dataset('labels', dtype='uint32', data=Label)# f_lb.create_dataset('golds', dtype='uint32', data=Gold)原创 2022-02-28 19:34:19 · 448 阅读 · 0 评论 -
dataloader中 sampler、collate_fn 和 dataset 的 getitem使用理解。
DataloaderDataLoader(dataset, sampler=None, collate_fn=None,batch_size=1, shuffle=False, num_workers=0,pin_memory=False, drop_last=False, timeout=0, worker_init_fn=None)这里先从dataset的运行机制讲起.在dataloader按照batch进行取数据的时候, 是取出大小等同于batch size的index列表; 然后将列表列表原创 2021-08-06 16:08:32 · 2495 阅读 · 0 评论 -
这篇transformer,我愿称之为最强!
阅读目录1 模型的思想 2 模型的架构 3 Embedding 3.1 Word Embedding 3.2 Positional Embedding 4 Encoder 4.1 Muti-Head-Attention 4.1.1 Self-Attention 4.1.2 Add & Norm 4.2 Feed-Forward Network 5 Decoder 5.1 Mask-Multi-Head-Attention 5.2Encoder-Decoder...转载 2020-12-07 16:22:08 · 3215 阅读 · 0 评论 -
transformer 模型的decoder部分 带gif动图
Decoder 也是N层堆叠的结构。被分为3个 SubLayer,可以看出 Encoder 与 Decoder 三大主要的不同:Diff_1:Decoder SubLayer-1 使用的是 “masked” Multi-Headed Attention 机制,防止为了模型看到要预测的数据,防止泄露。 Diff_2:SubLayer-2 是一个 encoder-decoder multi-head attention。 Diff_3:LinearLayer 和 SoftmaxLayer 作用于 Sub原创 2020-12-07 11:30:17 · 2433 阅读 · 0 评论 -
Accelerating Deep Learning Research with the Tensor2Tensor Library
Accelerating Deep Learning Research with the Tensor2Tensor LibraryMonday, June 19, 2017Posted by Łukasz Kaiser, Senior Research Scientist, Google Brain TeamDeep Learning (DL) has enabled the rapid advancement of many useful technologies, such asmachi.转载 2020-12-01 22:06:26 · 127 阅读 · 0 评论 -
Transformer 模型
转载:BERT大火却不懂Transformer?读这一篇就够了大数据文摘与百度NLP联合出品编译:张驰、毅航、Conrad、龙心尘编者按:前一段时间谷歌推出的BERT模型在11项NLP任务中夺得STOA结果,引爆了整个NLP界。而BERT取得成功的一个关键因素是Transformer的强大作用。谷歌的Transformer模型最早是用于机器翻译任务,当时达到了STOA效果。Transformer改进了RNN最被人诟病的训练慢的缺点,利用self-attention机制实现快速并行。并且Tr.转载 2020-12-01 21:13:20 · 809 阅读 · 0 评论 -
残差连接 (及 梯度消失 网络退化)详解
本文就说说用残差连接解决梯度消失和网络退化的问题。一、背景1)梯度消失问题我们发现很深的网络层,由于参数初始化一般更靠近0,这样在训练的过程中更新浅层网络的参数时,很容易随着网络的深入而导致梯度消失,浅层的参数无法更新。可以看到,假设现在需要更新b1,w2,w3,w4参数因为随机初始化偏向于0,通过链式求导我们会发现,w1w2w3相乘会得到更加接近于0的数,那么所求的这个b1的梯度就接近于0,也就产生了梯度消失的现象。2)网络退化问题举个例子,假设已经有了一个最优化的网络结构,是转载 2020-12-01 20:22:26 · 8859 阅读 · 7 评论 -
循环神经网络RNN和LSTM模型概述
一、RNN模型结构如图1)x(t)代表在序列索引号tt时训练样本的输入。同样的,x(t−1)和x(t+1)代表在序列索引号t−1和t+1时训练样本的输入。2)h(t)代表在序列索引号tt时模型的隐藏状态。h(t)由x(t)和h(t−1)共同决定。3)o(t)代表在序列索引号tt时模型的输出。o(t)只由模型当前的隐藏状态h(t)决定。4)L(t)代表在序列索引号tt时模型的损失函数。 注意指向L的方向,L是损失函数,所以两边都是指向L的5)y(t)代表在序列索引号tt时训练样本序列的原创 2020-11-28 10:52:04 · 1149 阅读 · 0 评论 -
squeeze() 和 unsqueeeze()
tensor.squeeze(index) 字面意思:就是在index处,增加一个维度为1的维度;tensor.unsqueeeze(index) :就是在index处,如果维度为1,就删掉这个维度。如果此处维度不为1,则不操作注意 比如tensor a 的维度是(2,1,3)a.squeeze(1) 的维度是(2,3),但a的维度仍然是(2,1,3)。就是squeeze和unsqueeze不会对tensor本身产生修改,修改后要赋值给别的变量才能够保存。如 b = a.squeeze(..原创 2020-11-06 19:56:59 · 585 阅读 · 0 评论 -
nn.ModuleList(list)
self.convs = nn.ModuleList([nn.Conv2d(1, config.num_filters, (k, config.embed)) for k in (2,3,4)])在这里list是多个model,可以理解成子模块。ModuleList的作用:不是创建三层前后连接的网络,而是创建三个上下并列的网络,所以称model里面的模型为子模块。这里只是创建了一层网络。conv2d官方文档...原创 2020-11-06 16:09:03 · 6816 阅读 · 1 评论 -
卷积神经网络(CNN)结构详解
一、CNN的基本结构:1.图像就是输入层2.接着是CNN特有的卷积层(convolution),卷积层的自带激活函数使用的是ReLU3.接着是CNN特有的池化层(pooling),4.卷积层+池化层的组合可以在隐藏层中出现很多次。也可以灵活组合,卷积+卷积+池化、卷积+卷积等5.在若干卷积层+池化层之后是全连接层(fully connected layer),其实就是DNN结构,只是输出层使用了Softmax激活函数来做图像识别的分类6.一般fc就为CNN的全连接层。全连接层一般..原创 2020-11-06 16:02:56 · 56373 阅读 · 2 评论