深度学习
.我心永恒_
stay hungry, stay foolish. keep looking, don't sate!
展开
-
使用keras实现swish以及h_swish激活函数的创建以及调用
一、使用keras实现swish以及h_swish激活函数的创建并将添加from keras import backend as Kfrom keras.layers import Activationfrom keras.utils.generic_utils import get_custom_objectsdef swish(inputs): return (K.sigmo...原创 2019-10-14 13:43:53 · 5310 阅读 · 5 评论 -
Keras实现Senet block模块
一、keras实现的Senet block模块代码class SeBlock(keras.layers.Layer): #add def __init__(self, reduction=4,**kwargs): super(SeBlock,self).__init__(**kwargs) self.reduction = reduction ...原创 2019-10-14 13:40:45 · 8779 阅读 · 29 评论 -
Warmup预热学习率
学习率是神经网络训练中最重要的超参数之一,针对学习率的优化方式很多,Warmup是其中的一种(一)什么是Warmup?Warmup是在ResNet论文中提到的一种学习率预热的方法,它在训练开始的时候先选择使用一个较小的学习率,训练了一些epoches或者steps(比如4个epoches,10000steps),再修改为预先设置的学习率来进行训练.(二)为什么使用Warmup?由于刚开始...原创 2019-08-16 00:55:34 · 46673 阅读 · 6 评论 -
梯度裁剪tf.clip_by_norm and tf.clip_by_global_norm
(一)、为什么要进行梯度裁剪?防止训练过程中,梯度回传的时候,梯度过大,导致模型振荡,不稳定,难以训练,即传说中的防止梯度爆炸。(二)、什么是范数?范数(norm)是数学中的一种基本概念,最常用的就是p-范数.假设一个向量为:1-范数:2-范数:在梯度裁剪的条件判断过程中,仅仅是向量变成关于梯度的向量,或者使用所有梯度的向量而已(三)、tensorflow实现的梯度裁剪两个...原创 2019-08-16 02:40:53 · 1478 阅读 · 0 评论 -
自然语言理解发展历程
(一)NNLM(Neural Network language model):简述:通过多个上文输入,预测输出,应用了word Embeding方法,但是此word Embeding是没有上下文的word Embeding,也就是word直接用one-hot表示,然后乘以一个向量权重矩阵(这个向量矩阵其实就是word Embedding向量矩阵,是我们训练得到的)得到该word的word Emb...原创 2019-08-18 01:24:08 · 1622 阅读 · 0 评论 -
深度学习中的Adam优化算法详解
Adam论文:https://arxiv.org/pdf/1412.6980.pdf(一)、什么是Adam算法?Adam(Adaptive method)是一种随机优化方法(A method for stochastic optimization),经常作为深度学习中的优化器算法。(二)、Adam算法如何实现?(1). 上图就是Adam优化算法在深度学习应用于梯度下降方法的详细过程,有...原创 2019-08-23 01:22:12 · 32837 阅读 · 6 评论 -
深度学习中的gelu激活函数详解
论文:gaussian error linear units(一)、什么是gelus激活函数?gelus(gaussian error linear units)就是我们常说的高斯误差线性单元,它是一种高性能的神经网络激活函数,公式如下:(1)xP(X≤x)=xΦ(x){xP(X \le x)=x\Phi(x)}\tag{1}xP(X≤x)=xΦ(x)(1)计算结果大约为:(2)0.5x(1+...原创 2019-08-26 23:47:20 · 22423 阅读 · 0 评论 -
面部识别系统流程
论文:Face Recognition: From Traditional to Deep Learning Methods(一)、什么是人脸识别?广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。 人脸识别是一项热门的计算机技术研究领域,它属于生物特征识...原创 2019-08-27 13:44:10 · 1680 阅读 · 0 评论 -
Arcface中的IR_SE模块
Arcface中的IR_SE模块原创 2019-08-30 16:37:51 · 2153 阅读 · 0 评论 -
深度学习中的标签平滑正则化(Label Smoothing Regularization)方法原理详解
论文:https://arxiv.org/pdf/1512.00567.pdf(一)、为什么有标签平滑正则化(Label Smoothing Regularization, LSR)的方法?在深度学习样本训练的过程中,我们采用one-hot标签去进行计算交叉熵损失时,只考虑到训练样本中正确的标签位置(one-hot标签为1的位置)的损失,而忽略了错误标签位置(one-hot标签为0的位置)的损...原创 2019-08-31 00:16:31 · 14089 阅读 · 9 评论 -
深度学习中的循环神经网络LSTM详解
(一)、什么是循环神经网络LSTM?LSTM指的是长短期记忆网络(Long Short Term Memory),它是循环神经网络的最知名和成功的扩展。由于循环神经网络有梯度消失和梯度爆炸的问题,学习能力有限,在实际任务中的效果很难达到预期,为了增强循环神经网络的学习能力,缓解网络的梯度消失等问题,LSTM此时便应运而生。该网络可以对有价值的信息进行长期记忆,从而减小循环神经网络的学习难度,并由...原创 2019-09-08 21:38:30 · 5773 阅读 · 0 评论 -
命名实体识别中的原始预处理文本转换为标注文本
(一)、转换格式1.其他字转换为O2.实体首字转换为B-PRODUCT3.实体中间的字转换为I-PRODUCT4.实体尾字转换为E-PRODUCT5.单实体转换为S-PRODUCT(二)、原始预处理文本(1). annotated_src.txt-DOCSTART-本公司具有{炭黑专用油}生产能力。-DOCSTART-公司已掌握了{虾}、{鲍鱼}、{海胆}等海珍品苗的工厂化培...原创 2019-09-10 17:50:03 · 1995 阅读 · 0 评论 -
深度学习中的循环神经网络GRU详解
(一)、什么是循环神经网络GRU?GRU指的是门控循环单元(Gated Recurrent Units ),它是循环神经网络中的一种门控机制,是由Kyunghyun Cho等人于2014年引入的,它与具有遗忘门的长短期记忆网络(LSTM)相类似。(二)、GRU实现记忆的原理是什么?参考:深度学习中的循环神经网络LSTM详解 2.1 GRU网络原理图(三)、GRU的原理公式是什么?经典的...原创 2019-09-13 11:54:59 · 17162 阅读 · 2 评论 -
数据增强之mixup算法详解
论文地址:mixup: BEYOND EMPIRICAL RISK MINIMIZATION(一)、什么是数据增强?(1). 数据增强主要指在计算机视觉领域中对图像进行数据增强,从而弥补训练图像数据集不足,达到对训练数据扩充的目的。(2). 数据增强是一种数据扩充方法,可分为同类增强(如:翻转、旋转、缩放、翻译、模糊等)和混类增强(如mixup)两种方式。(二)、同类数据增强方式主要有哪些...原创 2019-09-28 20:39:48 · 53335 阅读 · 14 评论 -
深度学习中的滑动平均算法原理详解
(一)、什么是一阶滞后滤波?一阶滞后滤波是一种数据平滑的手段,通过对本次采样值与上次滤波输出,做概率加权叠加,有效的使得了每次数据的滤波结果不仅仅与本次采样有关还与上次的输出有关,保证了每次的滤波输出都会一定程度上受上次滤波结果的影响,一般来说,这种影响在这种机制中都会占很大权重,即上次滤波输出的概率权重远大于本次采样的概率权重,从而可以使得滤波结果可以很平滑的从上次滤波结果过渡到本次滤波结果,...原创 2019-08-21 03:13:29 · 5585 阅读 · 0 评论 -
面部识别算法中的损失函数A-softmax loss详解
论文1:SphereFace: Deep Hypersphere Embedding for Face Recognition论文2:ArcFace: Additive Angular Margin Loss for Deep Face Recognition(一)、原始的(普通的)Softmax函数是什么?在数学,尤其是概率论和相关领域中,Softmax函数,或称归一化指数函数,是逻辑函数...原创 2019-08-25 01:06:14 · 2886 阅读 · 3 评论 -
Seq2Seq模型
Seq2Seq,全称为Sequence to Sequence模型(序列到序列模型,目前还没有很好的翻译),意思可以解释为将一个序列信号(词序列,字序列),通过编码和解码生成一个新的序列信号(词序列,字序列),通常用于机器翻译、图片描述、自动对话、语音识别等领域(一)什么是Seq2Seq模型?seq2Seq模型的核心思想,通过深度神经网络将一个作为输入的序列信号转换位输出的序列信号,这一过程由...原创 2019-08-12 00:41:11 · 4945 阅读 · 0 评论 -
CIFAR10分类算法记录
“”"CIFAR-10共有60000张图片,60000张图片共有10个分类,每个分类大概6000张,训练集共有50000张图片,测试集共有10000张图片,训练集每个分类约有5000张图片,测试集每个分类约有1000张图片,训练集分5个批次,每个批次约有10000张图片,测试集只有一个批次,该批次有10000张图片图片分类训练模型"""import tensorflow as tf...翻译 2019-08-07 11:15:28 · 1668 阅读 · 0 评论 -
特征金字塔(Feature Pyramid Network)
特征金字塔论文地址:https://arxiv.org/abs/1612.03144**(a)**使用图像金字塔构建特征金字塔。特征是根据每个不同大小比例的图像独立计算的,每计算一次特征都需要resize一下图片大小,耗时,速度很慢。**(b)**该金字塔网络是一个高深的卷积神经网络,对不同尺寸的图片进行垂直目标检测,同时搞定多种尺寸的目标难度较大。**(c)**重用由卷积计算的金字塔特征层...原创 2019-08-05 11:12:23 · 1468 阅读 · 0 评论 -
tf.train.Saver() 与tf.train.import_meta_graph要点
(一)tf.train.Saver()(1)tf.train.Saver() 是用来保存tensorflow训练的模型的(2)用来加载参数,注意:只加载存储在data中的权重和偏置项等需要训练的参数,其他一律不加载包括meta文件中的图也不加载(二)tf.train.import_meta_graph(1)用来加载meta文件中的图,以及图上定义的结点参数包括权重偏置项等需要训练的参数...原创 2019-08-07 00:11:49 · 13127 阅读 · 3 评论 -
numpy实现简单的BP(Backpropagation)算法
import numpy as npimport pandas as pd构建了一个简单的三层BP网络three layers:input layey->hidden layer->output layer class BPNeuralNetwork(object): def __init__(self, input_nodes, hidden_nodes, ...原创 2019-08-07 00:32:33 · 792 阅读 · 0 评论 -
CNN中的卷积和反卷积的简单知识点
彻底搞懂CNN中的卷积和反卷积原创 2019-08-14 12:50:33 · 428 阅读 · 0 评论 -
tensorflow无法使用GPU
选用默认设备计算import tensorflow as tfwith tf.device('/gpu:0'):#选用默认设备(gpu:0)计算以下张量 inputs = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b') weights = tf.constant([1.0, 2.0, 3.0...原创 2019-08-14 18:04:46 · 3141 阅读 · 0 评论 -
将Bert抽取语言表征模型修改为GPU运行
tf.estimator.EstimatorSpec优化器类:1.predict:只需要传入参数mode和predictions2.eval(评估模式):需要传入参数mode,loss,eval_metric_ops3.train:需要传入参数mode,loss,train_op(一):Bert抽取特征语言模型修改(GPU运行配置)修改位置1:2run_pretraining.py ma...原创 2019-08-20 00:09:34 · 4858 阅读 · 11 评论 -
Bert文本分类run_classifier的预测模块修改
修改位置1:run_classifier.py model_fn() 函数中:源码1:else: output_spec = tf.contrib.tpu.TPUEstimatorSpec( mode=mode, predictions=probabilities, scaffold_fn=scaffold_fn)替换源码1:elif mode == tf.estimator.Mo...原创 2019-08-20 00:18:24 · 1545 阅读 · 2 评论 -
tf.nn.embedding_lookup函数以及对嵌入表示的理解
假设有一组分类,总共有5个类别,我们对所有类别进行one-hot(哑编码),则编码后[1,0,0,0,0]为类别1,[0,1,0,0,0]为类别2,[0,0,1,0,0]为类别3,[0,0,0,1,0]为类别4,[0,0,0,0,1]为类别5.若类别过多,该如何处理?我们用one-hot表示,就有可能使得训练参数过于庞大,而且不能表示不同类别之间的相似度,于是我们想到了嵌入(Embeding)方式...原创 2019-08-15 12:48:53 · 1263 阅读 · 1 评论