精华内容
下载资源
问答
  • 深度学习 模型 剪枝

    万次阅读 热门讨论 2018-12-19 18:58:40
    参考文章: ...为了在手机上加速运行深度学习模型,目前实现的方式基本分为两类:一是深度学习框架层面的加速,另一个方向是深度学习模型层面的加速。 深度学习模型的加速又可以分为采用新的卷...

    参考文章:

    Pruning Filters for Efficient Convnets

    Compressing deep neural nets

    压缩神经网络 实验记录(剪枝 + rebirth + mobilenet)

    为了在手机上加速运行深度学习模型,目前实现的方式基本分为两类:一是深度学习框架层面的加速,另一个方向是深度学习模型层面的加速。

    深度学习模型的加速又可以分为采用新的卷积算子来加速模型,另一个方向是通过对已有模型进行剪枝操作得到一个参数更少的模型来加速模型。

    通过观察深度学习模型,可以发现其中很多kernel的权重很小,均在-1~1之间震荡,对于这些绝对值很小的参数,可以视其对整体模型贡献很小,将其删除,然后将剩余的权重构成新的模型,以达到模型压缩,加速,并保证精准度不变的目的。

    基本步骤:

    1.实现原始网络,并将其训练到收敛,保存权重

    2.观察对每一层的权重,判断其对模型的贡献大小,删除贡献较小的kernel,评判标准可以是std,sum(abs),mean等

    3.当删除部分kernel后,会导致输出层的channel数变化,需要删除输出层对应kernel的对应channel

    4.构建剪枝后的网络,加载剪枝后的权重,与原模型对比精准度。

    5.使用较小的学习率,rebirth剪枝后的模型

    6.重复第1步

    上图展示了conv的kernel剪枝后导致的输出维度变化

    对于conv层后面接续全连接层的情况:

    conv层在接续全连接层前,会先reshape为一个维度。假设conv层输出为 (h,w,c),其会reshape为 h*w*c, 假设删除的kernel下标为[ 2,5,7],对应的conv输出通道也会减少 [2,5,7] 。reshape后 会减少 [2,5,7,...,h*w*2,h*w*5,h*w*7]。

    全连接层接全连接层的逻辑基本和conv接conv层的逻辑一样。

    一个使用mnist的简单示例

    # 读取保存的权重和所有训练的var
    model_path = './checkpoints/net_2018-12-19-10-05-17.ckpt-99900'
    reader = tf.train.NewCheckpointReader(model_path)
    all_variables = reader.get_variable_to_shape_map()
    {'conv1/biases': [16],
     'conv1/weights': [3, 3, 1, 16],
     'conv2/biases': [32],
     'conv2/weights': [3, 3, 16, 32],
     'conv3/biases': [32],
     'conv3/weights': [3, 3, 32, 32],
     'fc1/biases': [128],
     'fc1/weights': [512, 128],
     'fc2/biases': [256],
     'fc2/weights': [128, 256],
     'global_step': [],
     'logits/biases': [10],
     'logits/weights': [256, 10]}
    # 分析 conv1 的权重
    conv1_weight = reader.get_tensor("conv1/weights")
    # 计算每个kernel权重的和 (也可以使用其他指标,如std,mean等)
    conv1_weight_sum = np.sum(conv1_weight, (0,1,2))
    sort_conv1_weights = np.sort(conv1_weight_sum)
    # 绘制conv1的
    x = np.arange(0,len(sort_conv1_weights),step=1)
    plt.plot(x,sort_conv1_weights)
    

    # 保留权重和最大的8个kernel
    pure_conv1_weight_index = np.where(conv1_weight_sum >= sort_conv1_weights[8])
    pure_conv1_weight = conv1_weight[:,:,:,pure_conv1_weight_index[0]]
    # conv1对应的bias 也做相同处理
    conv1_bias = reader.get_tensor("conv1/biases")
    pure_conv1_bias = conv1_bias[pure_conv1_weight_index[0]]
    # 对后面接续的 conv 层的kernel做相同处理
    conv2_weight = reader.get_tensor("conv2/weights")
    conv2_bias = reader.get_tensor("conv2/biases")
    conv2_weight = conv2_weight[:,:,pure_conv1_weight_index[0],:]

    后面层重复以上操作

    剪枝后结果对比

    原始模型精度

    剪枝后模型精度

    模型权重大小从400多kb减小到了100多kb

    jupyter文件及代码

    展开全文
  • 用于心电疾病诊断的深度学习模型库 github: https://github.com/hzzhangqf0558/ECG_Nets Baseline model collection of deep learning applied into ECGs. Those baseline models include 1D-ResNet, 1D-DenseNet, ...

    用于心电疾病诊断的深度学习模型库

    github: https://github.com/hzzhangqf0558/ECG_Nets
    Baseline model collection of deep learning applied into ECGs. Those baseline models include 1D-ResNet, 1D-DenseNet, 1D-SE_ResNet, 1D-ResNext,1D-SE_ResNetV2, 1D-SE_ResNext and 1D-Top1Net(the champion model in Tianchi competition).

    The F1-scores of those baseline models are in range of 0.83-0.90. you could fine-tune the parameters to reach a better level.

    Step 1:
    downloading datasets. The datasets from Tianchi competition includes dataset A and dataset B. The dataset A consists of 24106 ECGs, of which each has 8 leading records(I,II,V1,V2,V3,V4,V5, V6). while the dataset B consists of 20036 ECGs. Dataset can be downloaded from website.
    https://pan.baidu.com/s/1fmCuV5i9oifnUNOsFhV0sA pwd: 8hs2

    Please put the datasets into the fold: all_data. 
    Finally, unzip the data packages.
    

    step 2: build environment
    python 3.7 is required. And the requirements can be used directly.

    pip install -r requirements.txt
    

    step 3: create csv file.
    config the dataset path in the data_preparing.py. Then

    python data_preparing.py
    

    step 4: choose a baseline model you like.
    7 models are presented in the models fold and configs fold. Those

    python main.py --config configs/ResNet50.yaml
    
    if you want ensemble, please config the file configs/ensemble.
    
    python ensemble.py --config configs/ensemble.yaml
    

    Reference:

    https://tianchi.aliyun.com/competition/entrance/231754/information
    https://www.hindawi.com/journals/cmmm/2019/7095137/
    https://ieeexplore.ieee.org/abstract/document/9113436

    展开全文
  • 深度学习模型稳定可复现 深度学习这一块奥,稳定性奥,必须拿捏的死死的奥。 深度学习的一个项目,其中的随机性会非常的大 1 随机生成的模型参数, 2 可能是随机选取的训练样本顺序 3 随机dropout 以上等等,会...

    深度学习模型稳定可复现

    深度学习这一块奥,稳定性奥,必须拿捏的死死的奥。

    深度学习的一个项目,其中的随机性会非常的大

    1 随机生成的模型参数,
    2 可能是随机选取的训练样本顺序
    3 随机dropout

    以上等等,会使得模型具有一定的随机性,其实也并非完全算作坏事
    因为模型性能的抖动能够让模型性能更高一些,可以报告跑出来的最高性能,是吧。
    但是在某些阶段时,我们必须使得性能稳定,这样才可以明显的对比。
    比如:

    1 调整一些超参数
    2 改进模型结构
    3 优化算法

    等等上述情况时候,会需要稳定模型。因为改进模型结构,可能就提升了0.5%-1%的性能,但是模型本身会有2%的性能抖动(更有甚者会有5%-10% FaceNet这种训练embedding的方式抖动会更大,triplet semihard loss详解,懂得都懂)。
    本身具有抖动,在实验的时候,就不一定能验证出改进的有效性了。
    大家不必笑,模型的改进往往就是这0.5%, 0.5%的累积
    举个例子现在做目标检测任务的,每次在sota上提升个2%,就已经非常了不得了。

    所以建议大家每次将模型固定好,进行优化的调整,确定最终模型之后,再进行随机化或者设定新的随机种子,这样可以再把模型性能抖动的更高。

    当然其实现在的这么大的深度模型,很少存在性能抖动这么厉害的情况,但是相对小的模型上,情况还是很普遍的

    下面关于tensorflow, pytorch, keras, random, numpy等库,给大家一些代码,方便确定随机数,以固定模型结果。

    Tensorflow

    import tensorflow as tf
    seed = 42 # 可以自己设置
    tf.set_random_seed(seed)
    

    这一块主要是设置了graph级别的随机种子,大家也可以设置成为单个点确定的随机种子(但我觉得对一个模型来说,这样完全是没有任何必要的)
    (tensorflow生成的是静态图,所以为graph级别的)

    Keras & numpy

    import tensorflow as tf
    from tensorflow import keras as K
    import numpy as np
    seed = 42
    np.random.seed(seed)
    

    大家可能会觉得为什么没有keras的?其实本质原因是keras内核的random number generator用的就是numpy的。也就是说keras内部调用了numpy的随机数生成器,只要将numpy确定随机种子,那么keras的生成数就是确定的。

    random

    import random
    seed = 42
    random.seed(seed)
    

    randompython自带的一个包,存在的操作会有random.choice等等,从一个list中随机取一个或多个元素。

    hashseed

    seed = 42
    os.environ['PYTHONHASHSEED'] = str(seed)
    

    HASHSEEDHASH映射函数时,保证每一次新的运行进程,对于一个相同的object生成的hash是相同的。

    PyTorch

    seed = 42
    torch.manual_seed(seed)
    torch.cuda.manual_seed(seed)
    torch.cuda.manual_seed_all(seed) # multi gpu
    torch.backends.cudnn.deterministic = True
    torch.backends.cudnn.benchmark = False
    torch.backends.cudnn.enabled = False
    

    额外介绍一下:最后三行使用了cudnn:
    cuDNN 是英伟达专门为深度神经网络所开发出来的 GPU 加速库,针对卷积、池化等等常见操作做了非常多的底层优化,比一般的 GPU 程序要快很多。大多数深度学习框架都支持 cuDNN,PyTorch 也不例外。在使用 GPU 的时候,PyTorch 会默认使用 cuDNN 加速。
    其中:

    1 torch.manual_seed(seed)是cpu情况下的seed
    2 torch.cuda.manual_seed(seed)单GPU情况下的seed
    3 torch.cuda.manual_seed_all(seed)多GPU情况下的seed
    4 torch.backends.cudnn.deterministic = True和下述的benchmark搭配使用,确定卷积算法的类型。
    5 torch.backends.cudnn.benchmark = False是cudnn使用确定性卷积,而不是使用优化提速型的卷积
    (这个的意思是cudnn在开始时会对模型的每个卷积层使用合适的卷积算法加速,由于卷积网络的kernel大小,数量,计算方式等等,选用合适的卷积算法会使得后续计算加快) 速度会慢,但是可复现
    6 torch.backends.cudnn.enabled = False 直接不使用cudnn底层加速。

    这边给大家两份代码吧,分别是pytorch和tensorflow的所有相关随机数整理的函数,于主程序运行之前一次即可

    PyTorch

    def seed_torch(seed=42):
        seed = int(seed)
        random.seed(seed)
        os.environ['PYTHONHASHSEED'] = str(seed)
        np.random.seed(seed)
        torch.manual_seed(seed)
        torch.cuda.manual_seed(seed)
        torch.cuda.manual_seed_all(seed)
        torch.backends.cudnn.deterministic = True
        torch.backends.cudnn.benchmark = False
        torch.backends.cudnn.enabled = False
    

    Tensorflow

    def seed_tensorflow(seed=42):
        random.seed(seed)
        os.environ['PYTHONHASHSEED'] = str(seed)
        np.random.seed(seed)
        tf.set_random_seed(seed)
    
    展开全文
  • 常用的深度学习模型

    万次阅读 多人点赞 2018-07-16 14:04:41
    神经网络有时可以与乐高积木进行比较,在那里你可以构建几乎任何简单到复杂的结构,你的想象力可以帮助你构建。 ...深度相机:RGB-D相机,例如手势识别、骨骼跟踪、增强现实等 视觉导航:视觉...

    神经网络有时可以与乐高积木进行比较,在那里你可以构建几乎任何简单到复杂的结构,你的想象力可以帮助你构建。

    计算机视觉任务类型

    目标识别:物体识别是得到一个原始的图像,任务是给出目标位置和识别物体属于哪个类,另外还有人脸识别,行为识别等

    三维重建:摄像机标定,立体匹配

    图像描述:根据给定图像,给出描述文字等

    深度相机:RGB-D相机,例如手势识别、骨骼跟踪、增强现实等

    视觉导航:视觉SLAM,例如ORB-SLAM

    图像分割:图像分割是一项复杂的任务,目标是将每个像素映射到它的合法类,例如语义分割、实例分割等

    深度学习模型

    现在我们已经了解了什么是高级体系结构,并探索了计算机视觉的任务,下面列出最重要的体系结构及其描述:

    AlexNet

    AlexNet是深度学习的先驱之一——Geoffrey Hinton和他的同事们引入的第一个深层架构。它是一个简单而又强大的网络架构,它为深度学习的突破性研究铺平了道路。下面是作者提出的体系结构的表示。

    AlexNet看起来是一个包含卷积层和池化层的简单架构,顶部是全连接层。区分这个模型的是它执行任务的规模和使用GPU进行训练。在20世纪80年代,CPU被用于训练神经网络。而AlexNet仅通过使用GPU提升了10倍的训练速度。

    虽然现在有点过时了,但是AlexNet仍然在所有任务上应用深度神经网络的起点,无论是计算机视觉还是语音识别。

    Paper     Code

    VGG Net

    VGG网络是由牛津大学视觉图形组的研究人员引入的(因此有了VGG这个名字)。这个网络的特点是它的金字塔形状,最接近图像的底层是宽的,而最上层是深的。

    如图所示,VGG包含随后的卷积层和池化层。池层负责使层更窄。在他们的论文中,他们提出了多种这种类型的网络,随着架构深度的变化。

    VGG的优势是:
    对于特定任务的基准测试来说,这是一个非常好的体系结构。
    此外,VGG的预培训网络在互联网上是免费的,所以它通常用于各种应用程序的开箱即用。

    另一方面,它的主要缺点是,如果从头开始训练,训练速度非常慢。即使是在一个像样的GPU上,它也需要一个多星期才能投入使用。

    Paper     Code

    GoogleNet

    GoogleNet(或先启网络)是谷歌研究人员设计的一类架构。谷歌是2014年ImageNet的赢家,在那里它被证明是一个强大的模型。

    在这种体系结构中,随着深入(它包含22层,而VGG有19层),研究人员还提出了一种叫做初始模块的新方法。

    如上所述,它与我们前面看到的顺序体系结构相比发生了巨大的变化。在单层中,存在多种类型的“特征提取器”。这间接地帮助网络更好地执行任务,因为训练网络本身在解决任务时有很多选择。它既可以选择对输入进行卷积,也可以直接将其池化。

    最终的架构包含了这些叠在一起的初始模块的多个。甚至在GoogleNet中,训练也略有不同,因为大多数最顶层都有自己的输出层。这种细微差别有助于模型更快地收敛,因为对于层本身有联合训练和并行训练。

    GoogleNet的优点是:
    谷歌的火车比VGG快。
    一个预先训练好的GoogleNet的大小比VGG要小。VGG模型可以有>500 MB,而GoogleNet只有96 MB

    GoogleNet本身并没有直接的缺点,但是它提出了对体系结构的进一步修改,从而使模型执行得更好。其中一个变化被称为Xception网络,在这个变化中,inception模块发散的极限(如上图所示,是GoogleNet中的4)增大了。它现在理论上可以是无限的(因此被称为极端的开端!)

    Paper     Code

    ResNet

    ResNet是真正定义了深度学习体系结构的深度架构之一。残差网络(简称ResNet)由多个后续残差模块组成,这些模块是ResNet体系结构的基本构件。残差模块的表示如下

    简单地说,一个残差模块有两个选项,要么它可以对输入执行一组函数,要么它可以跳过这一步。

    现在类似于GoogleNet,这些残差模块相互堆叠,形成一个完整的端到端网络。

    ResNet还介绍了一些新技术:
    使用标准的SGD而不是花哨的自适应学习技术。这是与一个合理的初始化函数,保持训练完整
    对输入进行预处理的更改,其中输入首先被划分为补丁,然后进入网络

    ResNet的主要优点是,可以使用数百甚至数千个残差层来创建网络并进行训练。这与通常的顺序网络稍有不同,在顺序网络中,随着层数的增加,性能升级会减少。

    Paper     Code

    ResNeXt

    ResNeXt据说是目前最先进的对象识别技术。它构建在inception和resnet的概念之上,以实现一个新的和改进的体系结构。下图总结了ResNeXt模块的剩余模块的外观。

    Paper     Code

    R-CNN

    基于区域的CNN架构被认为是应用于目标检测问题的所有深度学习架构中最有影响力的一个。为了解决检测问题,RCNN做的是尝试在图像中出现的所有对象上绘制一个边界框,然后识别图像中的对象。它的工作原理如下:

    Faster-RCNN结构

    Paper     Code

    YOLO

    YOLO是目前最先进的实时系统,建立在深度学习的基础上,以解决图像检测问题。如下图所示,首先将图像划分为定义好的边界框,然后并行运行所有这些框的识别算法,以识别它们属于哪个对象类。在识别了这些类之后,它继续聪明地合并这些框,以形成围绕对象的最佳边界框。

    所有这些都是平行进行的,所以它可以实时运行;每秒处理多达40幅图像。

    尽管与RCNN相比,它的性能有所下降,但它仍然具有实时性的优势,可以在日常问题中使用。下面是YOLO的架构表示

    Paper     Code

    SqueezeNet

    snizenet体系结构是一个更强大的体系结构,在移动平台等低带宽场景中非常有用。这个架构只占用了4.9MB的空间,而《盗梦空间》占用了~100MB的空间!这种剧烈的变化是由一种叫做消防模块的特殊结构引起的。下图是消防模块的表示。

    snizenet的最终架构如下:

    Paper     Code

    SegNet

    SegNet是一种用于解决图像分割问题的深度学习架构。它由一系列的处理层(编码器)和相应的一组解码器组成,按像素分类。下面的图片总结了赛格网的工作。

    SegNet的一个关键特征是它保留了分割图像中的高频细节,因为编码器网络的合用索引连接到解码器网络的合用索引。简而言之,信息传递是直接的而不是卷积的。SegNet是处理图像分割问题的最佳模型之一

    Paper     Code

    GAN

    GAN是一种完全不同的神经网络体系结构,其中一个神经网络用来生成一个全新的图像,这个新的图像没有出现在训练数据集中,但足够真实地出现在数据集中。例如,下图是对甘斯的分解。在本文中,我已经介绍了GANs是如何工作的。如果你感到好奇,请仔细阅读。

    Paper     Code

     

    展开全文
  • 评估深度学习模型

    千次阅读 2018-07-15 12:15:23
    深度学习模型和评估 设计和配置深度学习模型时,面临选择(比如网络的层数、大小和类型,以及损失函数的选择等),必须做出决策来选择合适的设计与配置。最好的选择是设计小型实验,并用实际数据来评估各个选项。 ...
  • 深度学习模型部署技术方案

    千次阅读 2020-07-12 17:13:55
    深度学习模型部署技术方案训练好的深度学习模型如何进行部署的相关技术方案1 什么是模型部署?2 数据科学项目整个开发流程3 使用flask 将 Keras深度学习模型部署为Web应用程序 训练好的深度学习模型如何进行部署的...
  • 深度学习模型加速方法

    千次阅读 2019-10-22 16:46:58
    深度学习模型加速方法 ...
  • 深度学习-30: 基础CNN模型和深度学习模型。神经网络是人工智能启蒙,卷积神经网络是人工智能的里程碑,卷积神经网络最终演化出各种使用的基于卷积神经网络的人工智能算法。目前基于卷积神经网络的人工智能算法逐渐和...
  • 推荐一篇文章,主要讲述如何调试深度学习模型。 文章链接:用不确定性来解释和调试你的深度学习模型 随着深度学习发展,深度学习的规模也变得越来越复杂,深度学习模型的调试也变得越来越重要。...
  • MobileNets—深度学习模型的加速

    万次阅读 多人点赞 2017-06-08 22:29:18
    本篇博文来介绍一个深度学习模型加速的算法:MobileNets,可以在基本不影响准确率的前提下大大减少计算时间和参数数量。论文:MobileNets Efficient Convolutional Neural Networks for Mobile Vision Applications ...
  • 深度学习模型提取特征

    千次阅读 2020-04-17 20:20:12
    深度学习模型不仅可以用于分类回归,还能用于提取特征。通常使用训练好的模型,输入图片,输出为提取到的特征向量。 加入特征之后,结果往往不尽如人意,大致有以下原因: 深度学习模型一般有N层结构,不能确定...
  • 不同深度学习模型间的转换参考: [Github-Deep Learning Model Convertors].
  • 利用深度学习模型预测双色球

    千次阅读 2020-06-02 09:30:12
    深度学习模型可以简单理解为一个高度非线性的复合函数,网路输入可以看作自变量x,输出可以看作因变量y。看过网上其他人做的一些双色球预测,基本上是基于BP神经网络(也就是全连接神经网络)和LSTM的预测方法。...
  • 想把训练好的深度学习模型部署到服务器上,但是因为加载模型的时候速度较慢,所以web工程启动时就直接加载模型,通过请求URL接口去进行目标检测,考虑到多并发问题,无法同时处理多个请求,看看大神们都什么好的办法...
  • 深度学习模型测试方法总结

    千次阅读 2019-12-17 18:06:26
    深度学习模型测试的方法和标准整理 深度学习模型测试,是指系统性地对深度学习算法的可靠性、可移植性、效率进行评估。简单来说,算法测试主要做的是三件事:收集测试数据,思考需要什么样的测试数据以及数据的标注...
  • 深度学习模型优化+模型蒸馏+模型压缩 、https://blog.csdn.net/shentanyue/article/details/83539382 经典论文: (1)Distilling the Knowledge in a Neural Network 地址:...
  • ArcGIS10.8深度学习模型更新和进展

    千次阅读 2020-04-06 15:53:15
    ArcGIS10.8深度学习模型梳理1、ArcGIS Pro2.5深度学习模型介绍2、ArcGIS10.8深度学习模型介绍2.1 SingleShotDetector2.2 UnetClassifer2.3 FeatureClassifer2.4 Retina...
  • 深度学习模型训练流程

    千次阅读 2018-02-02 19:02:31
    工作中训练了很多的深度学习模型,目前到了上升到方法论的角度来看了。日常工作中有的人可能已经在遵循方法论做事,可能自己没有注意,有的人可能没有遵循方法论在做事,虽然可能最后的结果差不多,但花费的时间和...
  • 深度学习调优深度学习模型

    千次阅读 2017-09-25 21:50:34
    深度学习调优
  • 如何选择深度学习模型

    千次阅读 2017-07-07 21:56:13
    如何根据自己的问题,来选择合适的深度学习模型呢?
  • 深度学习模型融合stacking

    千次阅读 2019-03-19 11:03:00
    当你的深度学习模型变得很多时,选一个确定的模型也是一个头痛的问题。或者你可以把他们都用起来,就进行模型融合。我主要使用stacking和blend方法。先把代码贴出来,大家可以看一下。 1 import numpy as np 2...
  • 深度学习模型训练技巧

    千次阅读 2016-07-30 10:30:27
    进行训练深度学习模型时的一些技巧
  • 常见轻量级深度学习模型

    千次阅读 2018-01-11 15:16:28
    深度学习模型参数很多(模型很大)是制约深度学习模型部署在移动端一个很大的瓶颈,最近有不少轻量级的深度学习模型提出,以下是对一些经典轻量级深度学习模型的总结: 1、Squeeze...
  • 深度学习模型提升性能的策略

    千次阅读 2020-04-28 14:12:45
    缺乏数据的问题是,我们的深度学习模型可能无法从数据中学习模式或功能,因此它可能无法在未看到的数据上提供良好的性能。 我们可以利用数据增强技术来代替花费数天时间来收集数据。 数据增强是在不实际收集...
  • 近年来深度学习模型在计算机视觉、自然语言处理、搜索推荐广告等各种领域,不断刷新传统模型性能,并得到了广泛应用。随着移动端设备计算能力的不断提升,移动端AI落地也成为了可能。相比于服务端,移动端模型的优势...
  • 深度学习模型在移动端的部署

    千次阅读 多人点赞 2019-04-27 14:47:28
    而深度学习也成了机器学习领域内的热点,现在人工智能、大数据更是越来越贴近我们的日常生活,越来越多的人工智能应用开始在移植到移动端上,那能够快速高效地在移动端部署深度学习模型就变成亟待解决的问题了。...
  • Opencv调用深度学习模型

    万次阅读 2018-04-13 15:19:54
    OpenCv 从V3.3版本开始支持调用深度学习模型,例如Caffe, Tensorflow, darknet等.详细见下图,具体的使用方法,可以参考官网: https://docs.opencv.org/3.4.1/d6/d0f/group__dnn.html  目前Opencv可以支持的网络有...
  • Keras下深度学习模型性能评估

    万次阅读 2018-07-17 17:04:43
    在设计和配置深度学习模型时,需要做很多决定。大多数决策都必须通过试验和错误来解决,并通过实际数据进行评估。 因此,拥有一种可靠的方法来评估神经网络和深度学习模型的性能是至关重要的。 在本文中,您将发现...
  • 进入了AI领域,学习了手写字识别等几个demo后,就会发现深度学习模型训练是十分关键和有挑战性的。选定了网络结构后,深度学习训练过程基本大同小异,一般分为如下几个步骤 定义算法公式,也就是神经网络的前向...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,438
精华内容 16,175
关键字:

深度学习模型