mxnet
风极_陨
这个作者很懒,什么都没留下…
展开
-
MXNET深度学习框架-30-样式迁移
如果你喜欢拍照,可能接触过滤镜(如下图,图片来源于(动手学深度学习))。它能改变照片的颜色样式,从而使风景照更加锐利或者令人像更加美白。但一个滤镜通常只能改变照片的某个方面。如果要照片达到理想中的样式,经常需要尝试大量不同的组合,其复杂程度不亚于模型调参。具体的原理本章就不做介绍了,请读者自行百度或阅读相关论文。基本结构原创 2020-05-25 16:18:51 · 616 阅读 · 0 评论 -
MXNET深度学习框架-29-语义分割(FCN)
语义分割计算机视觉领域中的一个重要模块,它与之前的图像分类、目标检测任务不同,它是一个精细到每个像素块的一个图像任务,当然,它包括分类和定位。更多关于语义分割的方法和原理请读者自行搜索相关论文和博文,本文不做过多阐述。...原创 2020-05-23 14:48:23 · 1084 阅读 · 3 评论 -
MXNET深度学习框架-28-SSD(单发多框检测器)目标检测
有关SSD的基本原理本文不做多余的赘述,具体参考其他大神的博文,如:目标检测之SSD本章我们利用SSD来检测图片中的皮卡丘:mxnet中已经有一个皮卡丘的检测数据集,下面对它进行下载:# 下载皮卡丘数据集root_url = ('https://apache-mxnet.s3-acceler...原创 2020-05-05 15:22:13 · 1393 阅读 · 1 评论 -
MXNET深度学习框架-27-微调(Fine-tuning)-迁移学习
众所周知,深度学习最重要的一个特性就是所需数据量大,一旦数据量比较小,而采用深度学习去训练的话,最终的结果只有一个:过拟合!但自己的数据集能达到上万的量吗?估计很少吧,就算有,也可能是斥巨资收集的吧。所以,为了应对这种情况,迁移学习(Transfer Learning)就被提出来了。它的主要思想是将从源...原创 2020-05-01 16:38:58 · 611 阅读 · 0 评论 -
MXNET深度学习框架-26-Hybridize:更快更好地移植
到目前为止我们所使用的全部是命令式编程,事实上我们用的大部分Python代码都是采用的命令式编程,比如下面这个例子:def add(x,y): return x+ydef func_add(A,B,C,D): E=add(A,B) F=add(C,D) G=add(E...原创 2020-04-29 15:35:43 · 886 阅读 · 0 评论 -
MXNET深度学习框架-24-使用gluon的DenseNet
ResNet的跨层链接思想影响了后面的模型发展,本章我们介绍DenseNet。下图主要展示了这两个区别(左图:ResNet,右图:DenseNet): &nbs...原创 2020-04-25 11:21:06 · 333 阅读 · 0 评论 -
MXNET深度学习框架-22-使用gluon的GoogleNet
GoogleNet和VGG是2014年ImageNet挑战赛(ILSVRC14)的双雄,其中,GoogLeNet获得了冠军、VGGNet获得了亚军。对于上述两种结构来说,它们的共同点都是比较深的CNN模型,不同的是,GoogleNet更深,且模型大小比VGGNet还要小一写。 &...原创 2020-04-24 13:58:19 · 315 阅读 · 0 评论 -
MXNET深度学习框架-21-使用gluon的NiN(Network in Network)
我们通常所使用的卷积神经网络,它的结构一般是这样的【左图】(卷积工作做完了之后直接全连接),而另一个更自然的想法是这样的【右图】(卷积+全连接,之后又跟上卷积+全连接,俗称“网中网”): &nbs...原创 2020-04-23 15:52:14 · 332 阅读 · 0 评论 -
MXNET深度学习框架-20-使用Gluon的Batch Normalization(批量归一化)
上一篇使用了BN相关算法以及建立了一个从0开始的LeNet来训练一个数据,从代码的量级来看,有点多,本章我们使用如何用mxnet里的高阶API—gluon来构建模型(包含BN)。import mxnet.ndarray as ndimport mxnet.autograd as agi...原创 2020-04-23 10:46:32 · 377 阅读 · 0 评论 -
MXNET深度学习框架-19-从0开始的Batch Normalization(批量归一化)
通常来说,数据标准化预处理对于浅层模型就足够有效了。随着模型训练的进行,当每层中参数更新时,靠近输出层的输出较难出现剧烈变化。但对深层神经网络来说,即使输入数据已做标准化,训练中模型参数的更新依然很容易造成靠近输出层输出的剧烈变化。这种计算数值的不稳定性通常令我们难以训练出有效的深度模型。...原创 2020-04-22 17:10:01 · 445 阅读 · 0 评论 -
MXNET深度学习框架-18-使用gluon实现VGGNet
VGGNet与上一章的AlexNet相比,模型更深,非线性表达能力更强,原因在于它将一系列7×77×77×7、5×55×55×5的卷积核变成了几个反复堆叠的3×33×33×3卷积,比如:2个3×33×33×3的卷积可以替代7×77×77×7的卷积、3个3×33×33×3的卷积可以替代5×55×55×5的卷积。这样做不仅不会增加...原创 2020-04-21 16:49:16 · 329 阅读 · 0 评论 -
MXNET深度学习框架-17-使用gluon实现AlexNet
Alexnet可以说是使深度学习大火的深度模型。它在2012年被Hinton等人提出,该模型凭借一个8层卷积神经网络而赢得了ImageNet的图像识别挑战,这个模型与经典的LeNet-5有点类似。 这个模型有一些显著的特性:1)网络层数比LeNet-5深...原创 2020-04-21 15:32:53 · 320 阅读 · 0 评论 -
MXNET深度学习框架-16-使用gluon实现dropout
上一章从0开始实现了dropout方法,已经dropout应用在mlp中的实例,本章我们使用gluon实现带有dropout的mlp:import mxnet.gluon as gnimport mxnet.autograd as agimport mxnet.ndarray as ndimpo...原创 2020-04-21 10:51:00 · 278 阅读 · 0 评论 -
MXNET深度学习框架-15-从0开始的dropout
dropout最早出现在AlexNet中,它对CNN的发展起到了一定程度的推进作用,本章我们从0开始来实现一个dropout方法。实现dropout:def dropout(X, drop_probability): keep_prob = 1 - drop_probability # 留着的概率 ...原创 2020-04-20 15:21:33 · 339 阅读 · 0 评论 -
MXNET深度学习框架-14-自定义网络层
通常在创建网络时,我们也只是会使用mxnet的api而已,根本无法理解它内部的真正含义。接下来我们创建一些自定义层,来看看网络是如何实现的:# 自定义层class mydense(gn.nn.Block): def __init__(self,out_units,in_units,**kwa...原创 2020-04-17 16:10:44 · 344 阅读 · 0 评论 -
MXNET深度学习框架-13-读写存模型
如果一个深度网络(几十层的网络)在训练时出现突然断电,内存溢出,电脑蓝屏等情况,是不是会很抓狂?所以模型存储就变得很重要。本章我们在mxnet下学习如何进行模型存储与读写。1、读写NDArray (1) N...原创 2020-04-16 15:26:31 · 371 阅读 · 0 评论 -
MXNET深度学习框架-12-使用gluon实现LeNet-5
上一章从0开始实现了一个简单的CNN,但是有点麻烦,接下来使用gluon中的api来实现经典的LeNet-5:代码如下:import mxnet.ndarray as ndimport mxnet.autograd as agimport mxnet.gluon as gnimport mxnet as mximport matplotlib.pyplot as pltimport ...原创 2020-04-15 16:41:33 · 281 阅读 · 0 评论 -
MXNET深度学习框架-11-从0开始的卷积神经网络(CNN)
之前几章所用的MLP、逻辑回归等方法是直接将图像拉成一维向量,这样做有2个很大的问题:1、相近像素在向量中可能会变得很远,模型很难捕捉到它们之间的空间关系;2、对于255X255X3的图像,输出层为1000,模型大小可能达到1个多G。上述的结果显然是我们都不想要的,因此,卷积神经网络(...原创 2020-04-14 17:04:57 · 433 阅读 · 0 评论 -
MXNET深度学习框架-10-使用正则化方法解决过拟合问题(以使用gluon的线性回归为例)
上一章没有使用gluon实现了L2正则化解决过拟合问题,本章使用过gluon来实现以下相关代码:import mxnet.ndarray as ndimport mxnet.autograd as agimport mxnet.gluon as gnimport matplotlib.pyplot as pltimport randomnum_train=20num_test=10...原创 2020-04-11 10:27:26 · 225 阅读 · 0 评论 -
MXNET深度学习框架-09-使用正则化方法解决过拟合问题(以从0开始的线性回归为例)
本章我们使用一个高维线性回归的例子来做解决过拟合的问题。相关公式: y=0.05+∑i=1p0.01xi+noisey=0.05+\sum_{i=1}^p0.01x_i+noisey...原创 2020-04-10 15:36:35 · 291 阅读 · 0 评论 -
MXNET深度学习框架-08-使用gluon实现多层感知机(MLP)
使用gluon实现MLP比较简单,本章不作过多理论说明。下面是相关代码:1、数据读取batch_size = 100transformer = gn.data.vision.transforms.ToTensor()train_data = gn.data.DataLoader(da...原创 2020-04-10 09:52:28 · 348 阅读 · 0 评论 -
MXNET深度学习框架-07-从0开始实现多层感知机(MLP)
多层感知机(multilayer perceptron,MLP)其实与逻辑回归没有太大的区别,主要就是在输入层和输出层之间加了几层隐层:下面来实现一下这个网络:PS:与上两章一样,依旧使用服饰类的mnist数据集。1、数据集获取mnist_train = gn.data.visio...原创 2020-03-21 17:40:41 · 485 阅读 · 0 评论 -
MXNET深度学习框架-06-使用gluon实现逻辑回归
上一章没有使用gluon实现了一个逻辑回归,本章我们使用gluon来实现逻辑回归。由于本章与上一章并没有什么本质上的区别,所以直接贴代码:import mxnet.gluon as gnimport mxnet.autograd as agimport mxnet.ndarray as nddef transform(data, label): return data.asty...原创 2020-03-21 15:02:05 · 281 阅读 · 0 评论 -
MXNET深度学习框架-05-从0开始的多分类逻辑回归
上一篇说到了线性回归,它是一个回归的例子,那么本章主要介绍一个分类的例子(逻辑回归)。如上图所示,分类模型与回归模型主要的区别就是输出节点从一个变成了多个。PS:本章做分类所使用的数据集是一个服饰类的数据集,它与mnist数据集非常像。...原创 2020-03-20 18:02:34 · 323 阅读 · 0 评论 -
MXNET深度学习框架-04-使用gluon实现线性回归
上一章我使用autograd和ndarray实现了一个线性回归,但那只适用于学习,想要快速开发模型最好还是使用gluon来完成。1、数据集生成 与上一章一样,还是随机生成一些数据:import mxnet...原创 2020-03-17 14:26:53 · 283 阅读 · 0 评论 -
MXNET深度学习框架-03-采用ndarray和autograd实现线性回归
采用ndarray和autograd实现线性回归 虽然现在有很多深度学习框架,但它们大多继承了所有的回归/分类任务,我们也只能使用它,无法了解其原理,所以,本文只用ndarray和autograd从0开始实现一个简单的线性回归。 &...原创 2020-03-17 10:15:22 · 388 阅读 · 0 评论 -
MXNET深度学习框架-02-autograd求导
Autograd求导在机器(深度)学习中,我们通常使用梯度下降的方法来求解参数的最优解,在回归\分类模型中,通常对损失函数进行梯度(优化)求解,但在一个数据量十分庞大的模型中,手工沿着梯度方向更新模型并不现实。因此,mxnet中提供了一个autograd包来自动化求导。1、为变量附上梯度首先先定义一个函数f(x)=2*x^2,接下来对其进行求导。x=nd.array([[1,2],[3,4...原创 2020-03-15 16:47:38 · 275 阅读 · 0 评论 -
MXNET深度学习框架-01-ndarray最基本的使用(数据结构)
mxnet之ndarray的使用最近在学习mxnet这个深度学习框架,俗话说:“好记性不如烂笔头”,现将学习的过程及内容记录下来,以备自己可以随时查看回顾。PS:在我的笔记本电脑上,我安装的是mxnet-gpu版,便于后面的深度神经网络搭建,语言为python 3.6.7,IDE为PyCharm。首先需要导入ndarray的包(ndarray与numpy非常像):from mxnet im...原创 2020-03-15 15:14:16 · 426 阅读 · 0 评论