MXNet

Mxnet (26): 梯度下降(GD&SGD)

五迷三道 提交于 2020-10-03 05:28:01
这里我们介绍梯度下降的基本概念。尽管很少实际中很少用到,但是了解梯度下降有益于理解随机梯度下降算法的关键。例如,由于学习率过高,优化问题可能会有所不同,这在梯度下降中也会出现。同样预处理是梯度下降中的常用技术。我们先从简单的入手。 1 一维梯度下降 一维梯度下降是一个很好的例子,可以用于理解梯度下降算法如何减小目标函数的值。对于连续可微的实值函数 f : R → R f: \mathbb{R} \rightarrow \mathbb{R} f : R → R 。使用泰勒展开公式: f ( x + ϵ ) = f ( x ) + ϵ f ′ ( x ) + O ( ϵ 2 ) f(x + \epsilon) = f(x) + \epsilon f'(x) + \mathcal{O}(\epsilon^2) f ( x + ϵ ) = f ( x ) + ϵ f ′ ( x ) + O ( ϵ 2 ) 也就是说, f ( x + ϵ ) f(x+\epsilon) f ( x + ϵ ) 近似为 f ( x ) f(x) f ( x ) 以及在 x x x 处的一阶导数 f ′ ( x ) f'(x) f ′ ( x ) 之和。假设 ϵ \epsilon ϵ 向梯度相反移动将会减少 f f f 是合理的。为了简化,我们选择固定步长 η > 0 \eta > 0 η > 0 以及 ϵ =

Mxnet (6):过拟合和欠拟合

强颜欢笑 提交于 2020-10-01 16:05:33
1.过拟合 究其根本我们训练模型,目的是预测也好,分类也好,希望的是无论输入的数据是否训练过,都要维持在高的准确率,就是说普适性。打个比方,我们学习数学的过程,这个过程其实就很像在训练我们大脑中的模型,我们做的练习题就时训练过程,参加考试就是测试模型,对于一个考试,A同学逻辑思维很好,通过平日的练习训练出了解题的逻辑,在考试中拿到了高分;B同学记忆力特别好,做过的每一道题都能记住,恰好这次考试考的题目他都做过,分数比A还高;又一次考试,A还是那些分,但是这次考的题目B都没做过,拿了低分。B同学的训练的模型只适用于他做过的题,而A同学的模型使用于所有题;那么B同学就属于过拟合了。 使训练数据拟合得比拟合基础分布更紧密的现象称为 过拟合 ,而用来对抗过度拟合的技术称为正则化。在前面的部分中,您在尝试使用Fashion-MNIST数据集时可能已经观察到这种效果。如果您在实验期间更改了模型结构或超参数,您可能已经注意到,如果神经元,层数和训练时期足够,即使测试数据的准确性下降,模型最终仍可以在训练集上达到理想的准确性。 同样我们平时思考,处理问题的时候也要知其然知其所以然,不要死记硬背、人云亦云,不然的话大脑也会过拟合,降低判断的准确性 2.训练误差和泛化误差 为了更清晰的理解上面的问题,我们需要区分训练误差(training error)和泛化误差(generalization

Mxnet (3): Softmax 回归(Softmax regression)

强颜欢笑 提交于 2020-10-01 03:31:42
有一种logistic回归的一般形式,叫做Softmax回归,用于处理多类型的分类问题。 0.Softmax操作 我们将在此处采用的主要方法是将模型的输出解释为概率。我们将优化参数以产生使观察到的数据的可能性最大化的概率。然后,为了生成预测,我们将设置一个阈值,例如,选择具有最大预测概率的标签。 正式地说,我们想要任何输出 y ^ j \hat{y}_j y ^ ​ j ​ 被解释为给定项目属于类别的概率 j 。然后我们可以选择具有最大输出值的类别作为我们的预测 argmax ⁡ j y j \operatorname{argmax}_j y_j a r g m a x j ​ y j ​ . 。例如,如果 y ^ 1 \hat{y}_1 y ^ ​ 1 ​ , y ^ 2 \hat{y}_2 y ^ ​ 2 ​ , 和 y ^ 3 \hat{y}_3 y ^ ​ 3 ​ 分别为0.1、0.8和0.1。然后预测是第二类。 您可能会倾向于建议我们解释日志 o 直接作为我们感兴趣的输出。然而,将线性层的输出直接解释为概率存在一些问题。一方面,没有什么约束这些数字的总和为1。另一方面,取决于输入,它们可以取负值。 为了将我们的输出解释为概率,我们必须保证(即使在新数据上)它们也将是非负的并且总和为1。此外,我们需要一个训练目标来鼓励模型忠实地估计概率。在分类器输出0.5的所有实例中

Mxnet (15): 网络中的网络(NiN)

梦想的初衷 提交于 2020-09-30 06:43:51
1. 网络中的网络(NiN) LeNet、AlexNet和VGG在设计上的共同之处是就是都是先通过卷积提取特征,然后通过全链接层进行分类。NiN使用了另外一种思路,将简单的卷积和全链接结构协程Block,然后将这些block串联形成网络。 1.1 NiN块 卷积层的输入和输出通常是四维数组(样本,通道,高,宽),而全连接层的输入和输出则通常是二维数组(样本,特征)。如果想在全连接层后再接上卷积层,则需要将全连接层的输出变换为四维。这里通过 1 × 1 1×1 1 × 1 卷积层作为全链接层,每一个 1 × 1 1×1 1 × 1 相当于一个样本,用到相当于特征。 下图通过VGG和NiN的比较展示其结构。 NiN块包含一个卷积层,然后是两个卷积层 1 × 1 1×1 1 × 1 卷积层充当具有ReLU激活的按像素的全连接层。第一层的卷积窗口形状通常由用户设置。随后的窗口形状固定为 1 × 1 1×1 1 × 1 。 from d2l import mxnet as d2l from mxnet import np , npx , init , gluon , autograd from mxnet . gluon import nn import plotly . graph_objs as go npx . set_np ( ) ctx = npx . gpu ( ) if npx

如何舒服地在图书馆用ipad入门深度学习【windows jupyter远程】

╄→гoц情女王★ 提交于 2020-09-25 07:05:48
目录 前言 选择 与 特点 实现过程 jupyter远程: 蒲公英组网: bat文件,一键激活环境 效果展示 过程中遇到的问题 改进方向 最后,感谢您的阅读,如果能从您这里再收获点建议就更好了。 前言 小伙伴们中有考研的、考法考的,预定好暑假一起去图书馆学习,互相监督, 目前我的任务是入门python 以及 深度学习,这肯定需要电脑。 我的游戏本,算上适配器好几斤重,去图书馆几天就受不了 (省图书馆有插座但很难抢到座位,市图书馆有座位没插座,没电源不管是笔记本还是surface几小时就得gg,更别提性能了)。 树莓派也试过,用ipad vnc控制 画面延迟实在难以忍受。就算勉强用来入门,万一后面模型大点树莓派那点算力还是拙荆见肘,同理也不打算采购地平线的开发板(麻烦,穷,而且教材上的框架能不能跑起来还是个问题)。 我的老ipad重量轻,可用充电宝供电,但是无法直接编程。 想来想家里才装的台式机2070super( win10 )不拿来用属实有些心痛(买前生产力,买后打游戏), 所以我需要一个办法,让我在图书馆内用ipad就能入门深度学习,最好还有很强的算力。 #此方案可能考虑不周,请抱着娱乐的心态观看,欢迎一切建议 选择 与 特点 经过调查本地编写、远程运行的常见方式有三种:code-server , remote-ssh , jupyter 远程,其特点大致如下: 方式 优点

Tensorflow模型量化4 --pb转tflite(uint8量化)小结

六月ゝ 毕业季﹏ 提交于 2020-08-20 08:41:52
Tensorflow模型量化4 --pb转tflite小结(uint8量化) 实验环境:tensorflow-gpu1.15+cuda10.0 模型的fp16量化和int8量化我之前有写,参考: 龟龟:Tensorflow模型量化实践2--量化自己训练的模型​zhuanlan.zhihu.com 这次发现uint8量化时有参数设置,所以准备是从头再梳理一遍 2.参与量化的模型: 训练tensorflow-object-detection API 得到的ssdlite_mobilenet _ v2模型,导出为frozen_inference_graph.pb 3.获取输入输出节点 进行frozen_inference_graph.pb模型解析,得到输入输出节点信息 代码入下: """ code by zzg """ import tensorflow as tf import os os.environ["CUDA_VISIBLE_DEVICES"] = "0" config = tf.ConfigProto() config.gpu_options.allow_growth = True with tf.Session() as sess: with open('frozen_inference_graph_resnet.pb','rb') as f: graph_def = tf

使用GluonCV运行目标检测模型

左心房为你撑大大i 提交于 2020-08-16 06:54:06
GluonCV是分布式机器学习社区(DMLC)发布的深度学习计算机视觉工具箱,提供了计算机视觉顶级的算法实现与基本运算(另一个是自然语言处理工具箱GluonNLP). GluonCV简单易用,有很多训练好的模型,通过一行代码就可以下载使用,非常方便. 由于GluonCV是基于MXNet,所以,要先安装MXNet: pip install mxnet 然后,再安装GluonCV: pip install gluoncv GluonCV包含了分类、检测、语义分割等多种计算机视觉应用的模型.下面,以目标检测Faster-RCNN模型为例,说明怎样下载并调用GluonCV的模型. 定义网络: net = model_zoo.get_model( ' faster_rcnn_resnet50_v1b_voc ' , pretrained=True) 其中,'faster_rcnn_resnet50_v1b_voc'为模型名称,pretrained=True表示使用预训练的模型,也就是直接下载GluonCV已经训练好的模型. 定义用到的图片: im_fname = [ ' C:\\Users\\hadoop\\.mxnet\\models\\aa554c60229540cfb4d4999f72134bcb_th.jpg ' ] 对图片进行处理: x, orig_img = data

【完结】12大深度学习开源框架(caffe,tf,pytorch,mxnet等)快速入门项目

别说谁变了你拦得住时间么 提交于 2020-08-15 14:34:17
转自: https://www.jianshu.com/p/16f69668ce25 这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork。 https://github.com/longpeng2008/yousan.ai 1 概述 1.1 开源框架总览 现如今开源生态非常完善,深度学习相关的开源框架众多,光是为人熟知的就有caffe,tensorflow,pytorch/caffe2,keras,mxnet,paddldpaddle,theano,cntk,deeplearning4j,matconvnet等。 如何选择最适合你的开源框架是一个问题。有三AI在前段时间里,给大家整理了 12个深度学习开源框架快速入门的教程和代码 ,供初学者进行挑选,一个合格的深度学习算法工程师怎么着得熟悉其中的3个以上吧。 下面是各大开源框架的一个总览。 在这里我们还有一些框架没有放上来,是因为它们已经升级为大家更喜欢或者使用起来更加简单的版本,比如从torch->pytorch,从theano到lasagne。另外这些框架都支持CUDA,因此编程语言这里也没有写上cuda。 在选择开源框架时,要考虑很多原因,比如开源生态的完善性,比如自己项目的需求,比如自己熟悉的语言。当然

阿里云飞天AI加速器+Serverless容器,帮助图森未来提升资源利用率

守給你的承諾、 提交于 2020-08-15 13:20:15
简介: 今年年初,图森未来的无人驾驶卡车还上了“钢铁侠”的扮演者小罗伯特·唐尼主持的科技聚集剧集《The Age of A.I.》(《AI时代》),在剧中不仅顺利完成无人驾驶的行驶任务,还与围追堵截的摄像车“斗智斗勇”,在摄像车各种找拍摄角度的情况下,自动自我调整,化险为夷,避让既礼貌又安全! 图森未来(TuSimple)成立于2015年,是一家专注于L4级无人驾驶卡车技术研发与应用的人工智能企业,已经实现卡车在干线物流场景和半封闭枢纽场景下的无人干预驾驶。图森未来品牌旗下产品——图森未来 L4 级别无人驾驶卡车能够实现环境感知、定位导航、决策控制等自动驾驶核心功能,可应用于高速公路货运和港内集装箱码头运输及其相似场景。 公司于2019年9月完成总额2.15亿美元D轮融资,资方:UPS、鼎晖资本、万都中国、累计融资超过3亿美元,最新估值超过12亿美元,是卡车无人驾驶头部企业,也是全球第一家无人驾驶卡车独角兽企业。 图森未来的业务主要在美国和国内两地展开,在美国主要是高速公路干路货运场景,国内业务开始以连接枢纽场景的干线物流货运为主。 在美国,图森未来已经向包括UPS、USPS、McLane、U.S. Xpress在内的18家客户提供无人驾驶物流服务。 今年年初,图森未来的无人驾驶卡车还上了“钢铁侠”的扮演者小罗伯特·唐尼主持的科技聚集剧集《The Age of A.I.》(

【2万字干货】利用深度学习最新前沿预测股价走势

∥☆過路亽.° 提交于 2020-08-13 06:45:07
https://zhuanlan.zhihu.com/p/56509499 正文 在本篇文章中,我们将创建一个完整的程序来预测股票价格的变动。为此,我们将使用生成对抗性网络(GAN),其中LSTM是一种递归神经网络,它是生成器,而卷积神经网络CNN是鉴别器。我们使用LSTM的原因很明显,我们试图预测时间序列数据。为什么我们使用GAN,特别是CNN作为鉴别器?这是一个好问题,后面会有专门的部分介绍。 当然,我们将对每个步骤会进行详细的介绍,但最难的部分是GAN:成功训练GAN非常棘手的部分是获得正确的超参数集。因此,我们将使用贝叶斯优化(以及高斯过程)和深度强化学习(DRL)来决定何时以及如何改变GAN的超参数(探索与开发的两难境地)。在创建强化学习时,我们将使用该领域的最新进展,如Rainbow和PPO。 我们将使用许多不同类型的输入数据。随着股票的历史交易数据和技术指标,我们将使用NLP最新的进展(使用Bidirectional Embedding Representations from Transformers,BERT,一种传输学习NLP)创建情绪分析(作为基本分析的来源),傅里叶变换提取总体趋势方向,stacked autoencoders识别其他高级特征,寻找相关资产的特征组合,ARIMA用于股票函数的近似度等等,以便尽可能多地获取关于股票的信息、模式、相关性等