![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度学习
文章平均质量分 66
无止境x
现为中科院工程师,更多内容关注微信公众号《科学无止境》。
研究生期间的算法工程师,毕业后进入中科院从事科学装置和系统的研究,分享AI和云计算领域的内容,一个有点自己想法的IT从业者,欢迎关注交流!
展开
-
神经网络的参数初始化和批量归一化
https://www.cnblogs.com/shaocf/p/13603133.html目录1 参数初始化 1.1 基于固定方差的参数初始化 1.2 基于方差缩放的参数初始化 1.3 正交初始化 2 批量归一化(Batch Normalization) 2.1 批量归一化 参考正文1 参数初始化神经网络的参数学习是一个非凸优化问题,在使用梯度下降法进行网络参数优化时,参数初始值的选取十分关键,关系到网络的优化效率(梯度消失和梯度爆炸问题)和泛化能力(局部最..转载 2021-05-27 17:35:47 · 674 阅读 · 0 评论 -
Keras使用TensorBoard
TensorBoardkeras.callbacks.tensorboard_v1.TensorBoard(log_dir='./logs', histogram_freq=0, batch_size=32, write_graph=True, write_grads=False, write_images=False, embeddings_freq=0, embeddings_layer_names=None, embeddings_metadata=None, embeddings_data=N原创 2020-12-07 21:01:08 · 325 阅读 · 1 评论 -
如何保存 Keras 模型
保存/加载整个模型(结构 + 权重 + 优化器状态)不建议使用 pickle 或 cPickle 来保存 Keras 模型。你可以使用model.save(filepath)将 Keras 模型保存到单个 HDF5 文件中,该文件将包含:模型的结构,允许重新创建模型 模型的权重 训练配置项(损失函数,优化器) 优化器状态,允许准确地从你上次结束的地方继续训练。你可以使用keras.models.load_model(filepath)重新实例化模型。load_model还将负责...原创 2020-12-02 14:48:45 · 448 阅读 · 0 评论 -
EfficientNet 解析:卷积神经网络模型尺度变换的反思
原标题 |EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks作 者 |Aakash Nain自 AlexNet 赢得 2012 年 ImageNet 的竞赛以来,CNN(卷积神经网络的缩写)已成为深度学习中各种任务(尤其是计算机视觉)的实用算法。从2012年至今,研究人员一直在试验并试图提出更好的架构,以提高模型对不同任务的准确性。今天,我们将深入探讨最新的研究论文"高效网络(Efficient...转载 2020-11-29 16:52:22 · 1230 阅读 · 0 评论 -
详解softmax函数以及相关求导过程
这几天学习了一下softmax激活函数,以及它的梯度求导过程,整理一下便于分享和交流!一、softmax函数softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的softmax值就是更形象的如下图表示:softmax直白来说就是将原来输出是3,1,-3通过softmax函数一作用,就映射成为(0,1)的值,而这些值的累和为1(满足概率的性质),那..转载 2020-10-30 10:21:46 · 457 阅读 · 0 评论 -
Xshell命令行:上传下载远程服务器文件
Xshell如何连接远程Linux服务器,之前的博客中已经提及到了,可以看我之前的博客。我们知道我们经常需要向服务器上传文件,或者从服务器下载文件,rz和sz命令可以满足我们的要求,只不过默认情况下是不能使用的,我们需要使用yum install lrzsz来安装,如下图所示。然后上传文件到远程服务器:rz然后将文件下载到本地:sz下载完成:在本地查看:Reference:https://blog.csdn.net/IBLiplus/article/.原创 2020-10-09 18:06:39 · 686 阅读 · 0 评论 -
Keras 指定多个GPU,使用多个GPU训练
Keras 指定多个GPUimport keras.backend.tensorflow_backend as KTFimport tensorflow as tfimport osos.environ["CUDA_VISIBLE_DEVICES"] = "0,1,4,5,8,9"使用多个GPU训练数据并行 (multi_gpu_modelhttps://keras-zh.readthedocs.io/utils/)数据并行包括在每个设备上复制一次目标模型,并使用每个模型副本..原创 2020-10-09 17:46:44 · 3600 阅读 · 2 评论 -
深度学习训练已经停止(强行中断)了,可GPU内存还在占用着,如何解决?
watch --color -n1 gpustat -cpu用户:xujiping 已经结束训练了,但是GPU的内存仍然在占用top:查看进程U :输入用户名找到 python train.py 的进程号ctrl + c 退出kill -9 进程号:杀死残留的进程这时占用的GPU内存就被释放了reference:https://blog.csdn.net/u014264373/article/details/108106316...原创 2020-10-09 17:29:06 · 3984 阅读 · 1 评论 -
keras系列︱keras是如何指定显卡且限制显存用量(GPU/CPU使用)
keras在使用GPU的时候有个特点,就是默认全部占满显存。 若单核GPU也无所谓,若是服务器GPU较多,性能较好,全部占满就太浪费了。 于是乎有以下五种情况:1、指定GPU 2、使用固定显存的GPU 3、指定GPU + 固定显存 4 GPU动态增长 5 CPU充分占用一、固定显存的GPU本节来源于:深度学习theano/tensorflow多显卡多人使用问题集(参见:Limit the resource usage for tensorflow backend · Issue #1538转载 2020-10-09 14:48:34 · 700 阅读 · 0 评论 -
模型训练错误:Failed to get convolution algorithm,This is probably because cuDNN failed to initialize.
模型训练错误:Failed to get convolution algorithm,This is probably because cuDNN failed to initialize.一、问题: 最近在利用keras训练模型的时候出现以下错误,开始一看以为是cuDNN的版本不对,更换后还是没有效果,后面在网上查找后发现是显存的问题,更改为动态分配内存就可以了。 二、解决方法: 在训练的脚本开头添加以下代码进行动态分配内存,然后重新运行就可以。...转载 2020-09-27 17:27:21 · 331 阅读 · 0 评论 -
<美团>过拟合
过拟合:在机器学习模型训练或者深度学习模型训练的过程中,会出现模型在训练集上表现能力好,但是在测试集上表现欠佳,这种现象就是过拟合,常常主要原因是由于数据集中存在噪音数据或者训练样本维度太少或者训练集数量太少导致的。解决方案:增强训练样本集; 增加样本集的维度; 如果模型复杂度太高,和训练样本集的数量级不匹配,此时需要降低模型复杂度; 正则化,尽可能减少参数; 添加Dropout...原创 2020-09-26 16:22:55 · 74 阅读 · 0 评论 -
<美团>深度学习训练中梯度消失的原因有哪些?有哪些解决方法?
梯度消失产生的主要原因有:一是使用了深层网络,二是采用了不合适的损失函数。(1)目前优化神经网络的方法都是基于BP,即根据损失函数计算的误差通过梯度反向传播的方式,指导深度网络权值的更新优化。其中将误差从末层往前传递的过程需要链式法则(Chain Rule)的帮助。而链式法则是一个连乘的形式,所以当层数越深的时候,梯度将以指数形式传播。梯度消失问题一般随着网络层数的增加会变得越来越明显。在根据损失函数计算的误差通过梯度反向传播的方式对深度网络权值进行更新时,得到的梯度值接近0,也就是梯度消失。(2)原创 2020-09-26 16:19:41 · 819 阅读 · 0 评论 -
梯度消失和梯度爆炸的原因和解决办法
梯度消失与梯度爆炸其实是一种情况,看接下来的文章就知道了。梯度消失经常出现,一是在深层网络中,二是采用了不合适的损失函数,比如sigmoid 梯度爆炸一般出现在深层网络和权值初始化值太大的情况下下面分别从这两个角度分析梯度消失和爆炸的原因。1.深层网络角度对激活函数进行求导,如果此部分大于1,那么层数增多的时候,最终的求出的梯度更新将以指数形式增加,即发生梯度爆炸, 如果此部分小于1,那么随着层数增多,求出的梯度更新信息将会以指数形式衰减,即发生了梯度消失。总结:从深层网络角度来讲,转载 2020-09-26 16:07:29 · 1550 阅读 · 0 评论 -
注意力机制
https://github.com/HaloTrouvaille/YOLO-Multi-Backbones-Attention YOLO融合注意力机制 可以参考下NeuralNetworks 2020 | 哈工大与北大提出注意力引导的图像去噪mp.weixin.qq.com/s?__biz=MzIxOTczOTM4NA==&mid=2247490281&idx=2&sn=9d6eac5c230c98e37e56e933b293eee5&chksm=97d7ff7ea原创 2020-08-23 23:24:12 · 732 阅读 · 0 评论 -
keras运行时指定显卡及限制GPU用量
import osimport tensorflow as tfimport keras.backend.tensorflow_backend as KTF#进行配置,每个GPU使用60%上限现存os.environ["CUDA_VISIBLE_DEVICES"]="1,2" # 使用编号为1,2号的GPUconfig = tf.ConfigProto()config.gpu_options.per_process_gpu_memory_fraction = 0.6 # 每个GPU现存...原创 2020-08-20 18:07:22 · 234 阅读 · 1 评论 -
baseline , benchmark ,SOTA
baseline [ˈbeɪslaɪn]基准,性能的起点baseline一词应该指的是对照组,基准线,就是你这个实验有提升,那么你的提升是对比于什么的提升,被对比的就是baseline。比如你要研究一个新的模型,你是在前人的模型基础上新增加了一些组件,别人也基本都是在这个模型上进行修改,那这个模型就叫做baseline model——基准模型。听名字就能听出来,就是你自己模型的一个基准,一个基本的框架,模型再复杂,最根本的框架是差不多的。Benchmark [ˈbentʃmɑːk] 基准,同行.原创 2020-08-10 21:59:56 · 773 阅读 · 0 评论 -
如何一步一步提高图像分类准确率,模型优化方法
https://zhuanlan.zhihu.com/p/29534841如何一步一步提高图像分类准确率一、问题描述当我们在处理图像识别或者图像分类或者其他机器学习任务的时候,我们总是迷茫于做出哪些改进能够提升模型的性能(识别率、分类准确率)。。。或者说我们在漫长而苦恼的调参过程中到底调的是哪些参数。。。所以,我花了一部分时间在公开数据集CIFAR-10 [1] 上进行探索,来总结出一套方法能够快速高效并且有目的性地进行网络训练和参数调整。CIFAR-10数据集有60000张图片,每张图片均转载 2020-08-07 17:05:55 · 2098 阅读 · 0 评论 -
19种损失函数汇总
19种损失函数目录1. L1范数损失 L1Loss2 均方误差损失 MSELoss3 交叉熵损失 CrossEntropyLoss4 KL 散度损失 KLDivLoss5 二进制交叉熵损失 BCELoss6 BCEWithLogitsLoss7 MarginRankingLoss8 HingeEmbeddingLoss9 多标签分类损失 MultiLabelMarginLoss10 平滑版L1损失 SmoothL1Loss11. 2分类的logistic损失转载 2020-07-26 12:26:19 · 727 阅读 · 0 评论 -
千奇百怪的 卷积 方式
目前仅列举了一些比较著名且实用的卷积操作,对于没提到的,希望大家指出与补充1. 原始版本最早的卷积方式还没有任何骚套路,那就也没什么好说的了。见下图,原始的 conv 操作可以看做一个 2D 版本的无隐层神经网络。附上一个卷积详细流程:【TensorFlow】tf.nn.conv2d 是怎样实现卷积的? - CSDN 博客代表模型:LeNet:最早使用 stack 单卷积 + 单池化结构的方式,卷积层来做特征提取,池化来做空间下采样AlexNet:后来发现单卷...转载 2020-07-23 12:30:24 · 189 阅读 · 0 评论 -
BN(批量归一化层Batch Normalization)的作用与原理
1.简明https://www.jianshu.com/p/fcc056c1c2002.详细https://blog.csdn.net/hjimce/article/details/50866313原创 2020-07-19 19:30:36 · 1422 阅读 · 0 评论 -
神经网络权重的初始化
当你训练神经网络时,权重随机初始化是很重要的。对于逻辑回归,把权重初始化为 0,当然也是可以的。但是对于一个神经网络,如果你把权重或者参数都初始化为 0,那么梯度下降将不会起作用。1.权重初始化的重要性神经网络的训练过程中的参数学习时基于梯度下降算法进行优化的。梯度下降法需要在开始训练时给每个参数赋予一个初始值。这个初始值的选取十分重要。在神经网络的训练中如果将权重全部初始化为0,则第一遍前向传播过程中,所有隐藏层神经元的激活函数值都相同,导致深层神经元可有可无,这一现象称为对称权重现象。.原创 2020-07-19 19:06:38 · 2934 阅读 · 0 评论 -
神经网络常见的几种最优化方法(梯度下降法,牛顿法,拟牛顿法,共轭梯度法等)
梯度:有时候也称之为斜度,也就是一个曲面沿着给定方向的倾斜程度。表示某一个函数在该点出的方向导数沿着该方向取得最大值,即函数在该点出沿着该方向(此梯度方向)变化最快,变化率最大。梯度下降法是最早最简单,也是最为常用的最优化方法。梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解是全局解。一般情况下,其解不保证是全局最优解,梯度下降法的速度也未必是最快的。梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“。最速下降法越接近目标值.原创 2020-07-10 12:36:03 · 8825 阅读 · 2 评论 -
一文看懂各种神经网络优化算法:从梯度下降到Adam方法
在调整模型更新权重和偏差参数的方式时,你是否考虑过哪种优化算法能使模型产生更好且更快的效果?应该用梯度下降,随机梯度下降,还是Adam方法?这篇文章介绍了不同优化算法之间的主要区别,以及如何选择最佳的优化方法。什么是优化算法?优化算法的功能,是通过改善训练方式,来最小化(或最大化)损失函数E(x)。模型内部有些参数,是用来计算测试集中目标值Y的真实值和预测值的偏差程度的,基于这些参数,就形成了损失函数E(x)。比如说,权重(W)和偏差(b)就是这样的内部参数,一般用于计算输出值,在训练神经转载 2020-07-10 11:58:43 · 477 阅读 · 0 评论 -
吴恩达深度学习课程课后习题(第一课第一周)
吴恩达老师的深度学习课程是不可多得的入门教程,但由于网易官方不能发布课后习题及编程作业,很多同学学完了课程却不知道学习效果如何。因此,本鱼决定写个系列文章,大致讲讲解题思路,初衷是为了大家更好的交流和学习,请不要将此答案用于coursera刷分等其他用途,否则后果自负。“AI是新的电力”,这是吴恩达老师在今年AI Conference上主题演讲的题目。这句话当然是比喻AI就像100年前的电...转载 2020-04-28 18:16:51 · 2307 阅读 · 0 评论 -
吴恩达深度学习课程,包含课程的课件、课后作业和一些其他资料地址
https://github.com/stormstone/deeplearning.ai原创 2020-03-27 18:17:12 · 984 阅读 · 0 评论 -
CNN是靠什么线索学习到深度信息的?——一个经验性探索
今天给大家带来一篇我很喜欢的风格的paper,详细分析了基于深度学习的单目深度估计算法的局限性。虽然这文章没有提出新的方法,但是对于我们理解CNN是如何学习到一些appearance cue来处理需要几何模型的视觉问题大有裨益。首先,我们知道单目相机是没有办法恢复出来绝对尺度的,但是如果我们有实际的场景先验,这个问题是可以部分被解决的,在自动驾驶的场景中体现最为明显。简化的原理如下图:...转载 2019-12-16 16:39:17 · 219 阅读 · 0 评论 -
基于图卷积(GCN)和规则卷积(CNN)的情绪识别
引言论文动机脑电信号因其易辨伪性、准确性高而被广泛应用于情绪识别。如何描述脑电信号与大脑活动区域之间的关系以及构建脑电情绪识别模型仍然是基于脑电图数据的情绪识别具有挑战性的课题。基于以往的研究内容可知,CNN 可以利用卷积核提取抽象高层次特征,适用于 1D,2D,3D 规则网格数据。但是脑电通道的分布结构是不规则的,脑电数据并不是规则的欧几里...转载 2019-12-06 17:15:07 · 2836 阅读 · 1 评论 -
深度学习-读取图片数据并产生用于训练的批次
在开始之前,笔者想简单介绍一下tensorflow程序读取文件的三种方式:(1):供给数据(Feeding):在TensorFlow程序运行的每一步, 让Python代码来供给数据。(2):从文件读取数据:在TensorFlow图的起始, 让一个输入管线从文件中读取数据。(3):预加载数据:在TensorFlow图中定义常量或变量来保存所有数据(仅适用于数据量比较小的情况)。...转载 2019-11-03 16:18:59 · 1533 阅读 · 1 评论 -
GAN 的Mode collapse(模式坍塌)
mode collapse是指Gan产生的样本单一,其认为满足某一分布的结果为true,其他为False,导致以上结果。Example先给一个直观的例子,这个是在我们训练GAN的时候经常出现的这就是所谓的Mode Collapse但是实际中ModeCollapse不能像这个一样这么容易被发现(sample中出现完全一模一样的图片)例如训练集有很多种类别(如猫狗牛羊),但是我...转载 2019-10-24 11:16:03 · 13111 阅读 · 0 评论 -
令人拍案叫绝的Wasserstein GAN
在GAN的相关研究如火如荼甚至可以说是泛滥的今天,一篇新鲜出炉的arXiv论文《Wasserstein GAN》却在Reddit的Machine Learning频道火了,连Goodfellow都在帖子里和大家热烈讨论,这篇论文究竟有什么了不得的地方呢?要知道自从2014年Ian Goodfellow提出以来,GAN就存在着训练困难、生成器和判别器的loss无法指示训练进程、生成样本缺乏多样性...转载 2019-10-22 15:55:09 · 207 阅读 · 0 评论 -
[译] 理解 LSTM(Long Short-Term Memory, LSTM) 网络
转https://www.cnblogs.com/wangduo/p/6773601.html?utm_source=itdadao&utm_medium=referralRecurrent Neural Networks人类并不是每时每刻都从一片空白的大脑开始他们的思考。在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义。我们不会将所有的东西...转载 2019-06-29 16:50:40 · 355 阅读 · 0 评论 -
Siamese network 孪生神经网络--一个简单神奇的结构
名字的由来Siamese和Chinese有点像。Siam是古时候泰国的称呼,中文译作暹罗。Siamese也就是“暹罗”人或“泰国”人。Siamese在英语中是“孪生”、“连体”的意思,这是为什么呢?十九世纪泰国出生了一对连体婴儿,当时的医学技术无法使两人分离出来,于是两人顽强地生活了一生,1829年被英国商人发现,进入马戏团,在全世界各地表演,1839年他们访问美国北卡罗莱那州后来成为“玲...转载 2019-06-29 16:42:24 · 814 阅读 · 0 评论 -
变种神经网络的典型代表:深度残差网络
编者按:本书节选自图书《白话深度学习与TensorFlow》,本书本着“平民”起点,从“零”开始的初衷,介绍深度学习的技术与技巧,逐层铺垫,把微积分、梯度等知识重点化整为零,把学习曲线最大程度地拉平,让读者有良好的代入感和亲近感。随着人们对于神经网络技术的不断研究和尝试,每年都会诞生很多新的网络结构或模型。这些模型大都有着经典神经网络的特点,但是又会有所变化。你说它们是杂交也好,是变种也罢,总...转载 2019-05-27 16:29:27 · 309 阅读 · 0 评论 -
Keras中文文档
https://keras.io/zh/why-use-keras/Keras: 基于 Python 的深度学习库你恰好发现了 Keras。Keras 是一个用 Python 编写的高级神经网络 API,它能够以TensorFlow,CNTK, 或者Theano作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。...原创 2019-05-06 09:49:03 · 784 阅读 · 0 评论 -
Spyder打开一个已经存在的工程project步骤
project->new project->Existing directory->Location(选择已经存在的工程文件夹)->Create原创 2018-07-30 17:12:43 · 8153 阅读 · 3 评论 -
训练数据,验证数据和测试数据
一般做预测分析时,会将数据分为两大部分。一部分是训练数据,用于构建模型,一部分是测试数据,用于检验模型。但是,有时候模型的构建过程中也需要检验模型,辅助模型构建,所以会将训练数据在分为两个部分:1)训练数据;2)验证数据(Validation Data)。验证数据用于负责模型的构建。模型构建完后,需要利用数据验证模型的正确性,这部分数据被称为测试数据(Test Data)。测试数据不能用于模型构建...转载 2019-07-20 16:20:38 · 9945 阅读 · 0 评论 -
卷积、反卷积、转置卷积和微步幅卷积
卷积首先定义本文要用到的符号输入图片的大小: i1=i2=ii1=i2=i。 卷积核的大小: k1=k2=kk1=k2=k。 卷积步长:s1=s2=ss1=s2=s。 填充padding=ppadding=p。下图表示参数为(i=5,k=3,s=2,p=1)(i=5,k=3,s=2,p=1)的卷积计算过程,可以看出输出的图片大小是(3∗3)(3∗3)。下图是参数为(i=6...转载 2019-07-22 10:15:00 · 862 阅读 · 0 评论 -
激活函数ReLU、Leaky ReLU、PReLU和RReLU
“激活函数”能分成两类——“饱和激活函数”和“非饱和激活函数”。sigmoid和tanh是“饱和激活函数”,而ReLU及其变体则是“非饱和激活函数”。使用“非饱和激活函数”的优势在于两点: 1.首先,“非饱和激活函数”能解决所谓的“梯度消失”问题。 2.其次,它能加快收敛速度。 Sigmoid函数需要一个实值输入压缩至[0,1]的范围 σ(x) = 1 / ...原创 2019-07-22 11:21:41 · 1805 阅读 · 0 评论 -
BN(Batch Normalization) 原理与使用过程详解
论文名字:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift论文地址:https://arxiv.org/abs/1502.03167BN被广泛应用于深度学习的各个地方,由于在实习过程中需要修改网络,修改的网络在训练过程中无法收敛,就添加了BN...转载 2019-09-28 16:37:59 · 706 阅读 · 0 评论 -
GAN最新进展:8大技巧提高稳定性
GAN最新进展:8大技巧提高稳定性新智元2月12日新智元报道 来源:medium编辑:肖琴【新智元导读】生成对抗网络GAN很强大,但也有很多造成GAN难以使用的缺陷。本文介绍了可以克服GAN训练缺点的一些解决方案,有助于提高GAN性能。生成对抗网络 (GAN) 是一类功能强大的神经网络,具有广泛的应用前景。GAN 本质上是由两个神经网络组成的系...转载 2019-09-30 15:37:50 · 837 阅读 · 0 评论