百度地图API使用第一弹------动态轨迹运动封装

Html+JavaScript+百度地图api:GPS功能单点运动 在学习jQuery时,浏览到一个比较有意思的网页:jQuery插件库 http://www.jq22.com/,里面有很多封装好的插件库,然后,在地图插件里看到一个比较有意思的功能—路书,一个小车自己在地图上跑。百度一下这个路书,感觉发现了 百度地图javascript api 这个新世界,有许多现成的示例可以参考 这里,主要是参考百度地图示例demo中的GPS功能-单个标注点的轨迹运动 功能实 阅读详情

百度地图API使用第一弹     ——动态轨迹运动封装

你还在为冗杂的百度地图API看着看着就想睡觉而犯愁吗?
你还在不会使用百度地图生成动态轨迹而犯愁吗?
你还在为百度地图默认的路线不符合自己的轨迹而犯愁吗?
别愁了,向下看,–> 此法为你节约时间,愿你能把更多时间留给生活

一步步来:

  1. 高手第一步都是 –> 度娘关键词:bmap,进入第一条,这里你可以找到bmap的所有API;
    ps: 我是菜鸟,我不走这一步@@_ ,直接进入下一步:
  2. 打开IDE,新建HTML类文档,弄个div接收地图,
  3. 问题出来了,地图哪儿来的?”*.js”这样的文件能生成地图吗?先写个标签试试吧: <script type="text/javascript" src="这里放什么呢?向下看"></script>

  4. 点击链接:生成百度地图开发者密钥,一路疯狂点击配置,直到配置完,给你密钥了回来继续。

  5. 没错,就是它:<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的密钥"></script>
  6. var map = new BMap.Map("allmap");生成地图就是这么简单
  7. 或许,你可以加上:map.centerAndZoom(new BMap.Point(116.404, 39.915), 15);

切入正题: 动态运动轨迹

  • 听着好高大上哇,肯定很难吧@—@
  • 对于路痴来说,肯定知道手机百度地图上有路线规划:最短时间路线,最近距离路线… …
  • 我想说的是,这里一样有这些:
  • 你要从学校去网吧,那么需要两点间动态轨迹运动:(详情见文档)
    // 百度地图实例化          
    var map = new BMap.Map("allmap");         
    map.centerAndZoom(new BMap.Point(113.962196, 22.545144), 13);         
    map.enableScrollWheelZoom(); // 允许滚轮缩放         

    // 怎么走的选择         
    var myIcon = new BMap.Icon("http://developer.baidu.com/map/jsdemo/img/Mario.png", new BMap.Size(32, 70), {  //小车图片         
        offset: new BMap.Size(0, -5),    //相当于CSS精灵         
        imageOffset: new BMap.Size(0, 0)    //图片的偏移量。为了是图片底部中心对准坐标点。         
    });         
    var p01 = new BMap.Point(113.962196, 22.545144);         
    var p02 = new BMap.Point(113.987268, 22.54884);         
    var p03 = new BMap.Point(113.976281, 22.53543);         
    var p04 = new BMap.Point(113.957956, 22.539636);         

    //生成轨迹线路         
    function run(p3, p2) {         
        p1 = arguments[0];         
        p2 = arguments[1];         
        // 生成路径         
        var walking2 = new BMap.WalkingRoute(map, {
            renderOptions: { map: map, enableDragging: true, autoViewport: true }
        });
        walking2.search(p1, p2);         

        var walking = new BMap.WalkingRoute(map);         
        walking.search(p1, p2);         
        walking.setSearchCompleteCallback(function () {         
            var pts = walking.getResults().getPlan(0).getRoute(0).getPath(); //得到一个数组         

            console.log(pts);         
            setTimeout(function () {         
                jumps(pts);         
            }, 1000);         
        });         
    }         

    // 可以根据轨迹线路跑起来的函数         
    function jumps(pts) {         
        var carMk = new BMap.Marker(pts[0], { icon: myIcon });         
        map.addOverlay(carMk);         
        var i = 0;         
        function resetMkPoint(i) {         
            carMk.setPosition(pts[i]);         
            if (i < pts.length) {         
                setTimeout(function () {         
                    i++;         
                    resetMkPoint(i);         
                }, 2);         
            } else {         
                return         
            }         
        }
        setTimeout(function () {         
            resetMkPoint(1);         
        }, 2)         
    }         

    //传入两个点,跑起来吧         
    run(p03, p02);         
  • 两点间很简单,但是这位同学说放学后我要先去食堂吃个饭,再去超市买瓶水,然后去朋友家找朋友,再一起去网吧…唉,唉,我说这位同学,你咋就这么复杂呢…………——#¥%(×(……&×%…………我–擦–前方高能!!!重点来啦。
    //前面的路线选择,轨迹线就不粘贴了,自己补一下
    // 运动轨迹封装
    function run(ar) {
        var arg = ar;
        function p(x, y) {
            var r = [];
            for (var h = 0; h < arguments.length; h++) {
                r.push(arguments[h]);
            }
            var p1 = r[0];
            var p2 = r[1];
            console.log('原始值', arg.indexOf(p1));

            var driving = new BMap.DrivingRoute(map);    //驾车实例
            driving.search(p1, p2);
            driving.setSearchCompleteCallback(function () {
                var pts = driving.getResults().getPlan(0).getRoute(0).getPath();
                var carMk = new BMap.Marker(pts[0], { icon: myIcon });
                map.addOverlay(carMk);
                var i = 0;
                function resetMkPoint(i) {
                    carMk.setPosition(pts[i]);
                    var s = arg.indexOf(p1);
                    if (i < pts.length) {
                        setTimeout(function () {
                            i++;
                            resetMkPoint(i);
                        }, 20);
                    } else {
                        console.log('当前值', s);
                        if (s < arg.length - 1) {
                            s++;
                            carMk.hide();
                            p(arg[s], arg[s + 1]);
                            console.log('加过后的值', s, arg[s], arg);
                        }
                    }
                }
                setTimeout(function () {
                    resetMkPoint(5);
                }, 100)

            });
        }
        p(arg[0], arg[1]);
    }

    //调用,小菜一碟,放进去几个位置的坐标就好了
    run([学校,食堂,超市,朋友家,网吧]);
  • 贴上未封装的动态轨迹来比较下吧,懒懒的小编已经不想回头再看了,太多了
    window.run = function () {
        var driving = new BMap.DrivingRoute(map);    //驾车实例
        driving.search(myP1, myP2);
        driving.setSearchCompleteCallback(function () {
            var pts = driving.getResults().getPlan(0).getRoute(0).getPath();    //通过驾车实例,获得一系列点的数组
            var paths = pts.length;    //获得有几个点

            var carMk = new BMap.Marker(pts[0], { icon: myIcon });
            map.addOverlay(carMk);
            i = 0;
            function resetMkPoint(i) {
                carMk.setPosition(pts[i]);
                if (i < paths) {
                    setTimeout(function () {
                        i++;
                        resetMkPoint(i);
                    }, 2);
                } else {
                    carMk.hide();
                    window.runs();
                }
            }
            setTimeout(function () {
                resetMkPoint(5);
            }, 100)

        });
    }
    window.runs = function () {
        var driving = new BMap.DrivingRoute(map);    //驾车实例
        driving.search(myP2, myP3);
        driving.setSearchCompleteCallback(function () {
            var pts = driving.getResults().getPlan(0).getRoute(0).getPath();    //通过驾车实例,获得一系列点的数组
            var paths = pts.length;    //获得有几个点

            var carMk = new BMap.Marker(pts[0], { icon: myIcon });
            map.addOverlay(carMk);
            i = 0;
            function resetMkPoint(i) {
                carMk.setPosition(pts[i]);
                if (i < paths) {
                    setTimeout(function () {
                        i++;
                        resetMkPoint(i);
                    }, 20);
                } else {
                    window.runss();
                }
            }
            setTimeout(function () {
                resetMkPoint(5);
            }, 100)

        });
    }

    window.runss = function () {
        var driving = new BMap.DrivingRoute(map);    //驾车实例
        driving.search(myP3, myP4);
        driving.setSearchCompleteCallback(function () {
            var pts = driving.getResults().getPlan(0).getRoute(0).getPath();    //通过驾车实例,获得一系列点的数组
            var paths = pts.length;    //获得有几个点

            var carMk = new BMap.Marker(pts[0], { icon: myIcon });
            map.addOverlay(carMk);
            i = 0;
            function resetMkPoint(i) {
                carMk.setPosition(pts[i]);
                if (i < paths) {
                    setTimeout(function () {
                        i++;
                        resetMkPoint(i);
                    }, 50);
                }
            }
            setTimeout(function () {
                resetMkPoint(5);
            }, 100)

        });
    }

    setTimeout(function () {
        run();
    }, 1500);
  • 最后还是献上封装原理吧,方便各位大侠少虾们使用:
    1. 写一个两点间动态轨迹的必包函数p(),
    2. 通过父级函数run()给p()传递参数,这里是有讲究的,传参需要转换arguments参数
    3. 在run();里面执行一次p(argument[0],arguments[1]);
    4. 一次执行完才走出去一步,那就再来执行一次呗,判断第一次执行完了,就把参数的index加1,执行第二次,(详见示例中控制台打印的三组index数据)
    5. 判断run()传回去的所有参数全部执行完毕,结束运动。
    6. 自己动手实践下吧~~

demo地址:

Android百度地图(四):百度地图运动轨迹纠偏、去噪、绑路之百度鹰眼 上一篇文章介绍了地图画轨迹的基本原理和实现。不难发现,当位置处于建筑物密集区、桥梁、高架桥下,gps信号较差时,画出来的轨迹效果会比较差。即使是在空旷地带,也难免会出现gps漂移的情况而造成轨迹的偏差。这时就需要我们对位置点进行纠偏、去噪、抽稀、绑路操作。百度鹰眼sdk则提供了相应的api,本篇文章将介绍如何使用百度鹰眼sdk画出效果相对较好的轨迹。 先来看看效果图 1.百度地图(三)文章 阅读详情

相关推荐

vue3:百度地图实时渲染车辆移动+轨迹路径,支持多辆小车的实时移动渲染轨迹及定时刷新车辆位置功能+轨迹回放示例,实时更新汽车位置及展示自定义图标图片文字,百度地图车辆实时长链接服务器端(详细代码)

vue3实现小车实时渲染车辆轨迹,vue3实现多辆汽车实时渲染车辆轨迹,百度地图+vue 多辆小车的实时移动,实现车辆轨迹拖动和回放,vue3百度地图行车路径规划以及路线记录绘制,百度地图 - 轨迹回放,消息框内展示车辆信息且随车辆移动,百度地图marker和轨迹显示,vue3百度地图实现驾车轨迹显示,Vue3使用百度地图展现行车轨迹,基于vue3+百度地图的多车实时运动及轨迹追踪实现,实现小车实时渲染车辆轨迹,小车实时移动后端控制,实现地图上绘制车辆实时运动轨迹图,Vue3+百度地图巡航轨迹,实现轨迹回放

✅ 精选推荐文章 4132

百度地图的一些用法

最近的开发中,需要引入百度地图进行一些功能演示。以下是工作中用到的一些操作(部分代码):   1. 谷歌地图经纬度转换成百度经纬度     new BMap.Point(lnglat.Lng, lnglat.Lat)   2.路线规划   var walking = new BMap.WalkingRoute(this.map, {//WalkingRoute 步行路线规划 ...

aodeng1737的博客 306

百度地图JS版多车轨迹动态演示包:含平滑行驶、历史回放与即用型封装模块

直接可用的百度地图车辆轨迹可视化方案,基于v3.0 API开发,无需构建工具,浏览器打开HTML文件就能运行。包含基础定位(index.html)、单辆车平滑移动(updatePoint.html)、多车同步运行(map.html)、增强版轨迹回放(maptest2.html)等完整示例;核心动画逻辑由lushu.js实现,支持点位插值计算、定时刷新、覆盖物高效更新;提供两个集成模块——轻量级baiduMapGo和功能更全的baiduMapGo_Pro,适配不同业务场景对性能与扩展性的要求;配套中文使用说明

grass的博客 193

java百度地图路线规划_浅谈百度地图WEB开发中的四种路线规划

百度地图在3.0的Javascript api中增加了四种路径规划,分别是:步行、骑行、自驾、公交。关于路线规划的引用也相当简单,我们以步行为例://实例化地图var map = new BMap.Map("container");//定位地图中心点及缩放级别map.centerAndZoom(new BMap.Point(116.404, 39.915), 14);//定义步行路线规划实例var...

weixin_34230075的博客 1110

Autosar开发实战:DaVinci Configurator Pro新建工程保姆级教程(附目录结构解析)

本文详细介绍了使用DaVinci Configurator Pro创建Autosar工程的完整流程,包括环境准备、工程配置、目录结构解析及常见问题排查。通过实战演示和深度解读,帮助开发者快速掌握工具使用技巧,优化工程管理,提升开发效率。特别适合需要理解Autosar开发中DaVinci Config工具链的工程师。

weixin_30872157的博客 463

LAP-D协议概述

Q.921协议由称为LAPD(链路访问协议-D通道),与HDLC的关系密切,它是在ISDN D通道上使用的数据链路协议。 注:http://www.freesoft.org/CIE/Topics/125.htm LAP-D的帧格式 标志、位填充技术和FCS校验计算与HDLC一致。 16位的地址包括C/R字段、SAPI(服务访问点标识)和TEI(端点标识)。TEI用于区分使用相同ISDN...

系统运维 1914

vue baidu Map 百度路书去掉动画

有时候,根据不同的客户需要,需要把路书 play()的开始动画清除掉,因为 lushu.js 都是开源代码,直接找到对应的代码,如,我是在 npm 用 vue Baidu Map ,直接在 node_modules / vue-baidu-map / index.js ,搜索 “ e.setAnimation(BMAP_ANIMATION_DROP)...

837

Prokka实战:10分钟搞定细菌基因组注释(附详细参数解析)

本文深入解析Prokka细菌基因组注释工具的核心参数与实战策略。通过拆解其集成化工作流程,详细解读物种分类、功能注释、输出控制等关键参数,并提供快速初筛、高质量发表、质粒注释及批量处理四种典型场景的高效参数组合方案,帮助用户精准掌控注释过程,将原始序列转化为有价值的生物学见解。

weixin_29271053的博客 445

数据可视化API之轨迹图实现

前言 数据可视化API(Web),是基于腾讯位置服务JavaScript API GL实现的专业地理空间数据可视化渲染引擎。 通过这套API,可以实现轨迹数据、坐标点数据、热力、迁徙、航线等空间数据的可视化展现。 使用步骤 1、注册成为腾讯位置服务开发者,并进入控制台 -> key管理界面创建key; 2、数据可视化API(以下简称可视化API),所提供的可视化效果是以图层的方式叠加在JavaScript API GL之上,图层中所显示的数据由实例化的对象统一管理。 3、加载可视化API 可视化A

腾讯位置服务 4408

电源工程师必看:平均电流模式BUCK双环控制详解(从传递函数到Psim仿真)

本文详细解析了平均电流模式BUCK变换器的双环控制策略,从传递函数推导到Psim仿真实现。针对电源工程师关注的环路设计和稳定性问题,深入比较了电压模式、峰值电流模式和平均电流模式的优缺点,并提供了12V/3A BUCK变换器的完整设计案例,帮助工程师掌握平均电流控制这一中高功率应用的首选方案。

weixin_42696271的博客 399

【YOLOv11】014、YOLOv11模型导出:PyTorch到ONNX格式转换与优化

摘要:本文详细介绍了如何将PyTorch训练的YOLOv11模型高效转换为ONNX格式。重点包括:分离模型特征提取与后处理、设置动态维度、优化ONNX算子、验证转换正确性等关键步骤。作者分享了实际项目中的经验教训,如版本对齐、算子兼容性处理、后处理分离等实用技巧,并推荐使用onnx-simplifier工具优化模型。文章强调模型转换是一个需要反复调试的过程,建议保留转换记录形成知识库,以提高部署效率并避免常见错误。

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 307

百度离线地图示例之一:地图展示

前言介绍: 主要是基于v3.0的API版本进行的离线,纯内网可操作,基本上实现了现有90%以上的功能点,能兼容jpg和png格式的瓦片图层,实现了原生和基于Vue两个版本,实现的功能点概要如下: 地图示例: 地图展示 同时加载两个地图 设置地图最大及最 小级别移动地图 缩放地图 拖拽地图 设置地图显示范围 获取地图显示范围 测距 地图控件: 工具条、比例尺控件 地图类型 缩略图控件 添加版权控件 添加自定义控件 覆盖物示例: 添加/删除覆盖物 折线上添加方向箭头 添加动画标注点 设置点的新图标 设

xiaoge_586的博客 7681

高级数据库--作业及答案

中科大金培权老师的高级数据库课程作业及答案

一杯水果茶!足矣~ 1660

【在Vue3项目中集成百度地图实现轨迹绘制】

在Vue3项目中集成百度地图实现轨迹绘制

qq_41238459的博客 2487

【论文复现】——基于LM优化的NDT点云配准算法

传统的正态分布变换配准算法处理初始位姿变换相差较大的两帧点云时,存在无法收敛或者陷入局部最小值的问题。为了提高算法的收敛性能,提出了一种基于LM方法改进的三维正态分布变换配准算法。

点云侠的博客 1163

Vue3 + uniapp 踩坑:iOS 真机调试一直报错Maximum call stack size exceeded,和(in promise)MiniProgramError err的解决方法

不是你写错代码,是微信开发工具和 iOS 真机调试的兼容问题。开个空项目都报错,勾个设置就没问题,不是你,是工具的锅。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1269

HarmonyOS运动开发:如何集成百度地图SDK、运动跟随与运动公里数记录

本文将详细介绍如何在 HarmonyOS 应用中集成百度地图 SDK,实现运动跟随以及运动公里数的记录。通过这些步骤,开发者可以轻松实现一个功能强大的运动应用,为用户提供实时的运动数据和地图跟随功能。本文详细介绍了如何在 HarmonyOS 应用中集成百度地图 SDK,实现运动跟随以及运动公里数的记录。在运动应用中,记录用户的运动轨迹并计算运动的总距离是核心功能之一。HarmonyOS运动开发:如何集成百度地图SDK、运动跟随与运动公里数记录。鸿蒙实战开发:网络层的艺术——优雅封装与搭建指南(中)

weixin_42619061的博客 176

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 欢迎使用优快云-markdown编辑器
下一篇: ES6学习之路~~let和const申明
EricLua
博客等级 码龄10年 34粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值