QGIS 实现 3D 立体模型和地图

Qgis导出三维模型并发布 加载OSM地图 以下三维模型场景的搭建基于QGIS3.12版本。预先安装了QuickMapServices、OSMDownloader和Qgis2threejs插件。 找到安装好的插件QuickMapServices,加载地图,找到要下载的区域 下载兴趣区域的地图 在安装好OSMDownloader插件后,找到矩形截取按钮,截取兴趣的区域地图 设置数据的保存路径 选中Load layer after download,也就是下载完成后载入qgis。 其中下载的数据包含小区或者建筑的多边形图层。 修饰地 阅读详情
AI摘要

本文介绍了如何下载美国NOAA和全球30米DEM数据,并在QGIS中进行加载和设置3D视图。通过详细步骤,展示了如何配置地形、设置3D模型参数,以及将3D模型整合到地图制作中。最后,讨论了3D模型在地图中的应用和可行性。

DEM 数据下载

还是说一下数据下载吧。

美国 DEM 数据下载(NOAA):

  • NOAA Data Access Viewer.https://coast.noaa.gov/dataviewer/#/lidar/search/

全球30米 DEM 数据下载:

  • http://viewfinderpanoramas.org/Coverage%20map%20viewfinderpanoramas_org3.htm

下载非常方便,想要哪里的数据直接点击对应的方框即可。

步骤1 加载和设置 DEM

QGIS版本:3.22.4

DEM:SRTM 山东省泰山

文章最后有 QGIS 文件和 DEM 的下载链接,如果读者需要的话可以自取。

加载 DEM 到 QGIS 中,符号系统选择 Singleband pseudocolor;然后再下面的 Color ramp 选择你喜欢的颜色就好了,如果你是使用的中文,比着位置找总不会错的。

 

步骤2 设置 3D 视图

在 QGIS 的菜单栏中打开 View 下拉栏,然后选择 New 3D Map View 开启 3D 视图界面。

 

 

然后你可以打开如下图所示的悬浮窗口。你可以通过鼠标拖拉边缘来放大,或者拖拽嵌入到 QGIS 的左边、右边、中间视图。

在 3D 视图的左上角有一些功能选项,包括移动放大、图片导出、场景导出、线测量、甚至还有一个可以简单 K 帧的动画系统。

不过这些都不是下载关注的重点,我们需要点击这个图标

,再点击弹出界面中的 Configure,以进入地形设置界面。

 

 

进入地形配置界面,左侧有地形、灯光、阴影、摄像机以及高级设置。

我们的重点在地形(Terrain)上面,点击 Terrain 开启右边地形设置选项卡,在橙色框中的选项都要修改:

  • 类型(Type):DEM;

  • 高度文件(Elevation):选择你添加的 DEM 数据;

  • 垂直尺度(Vertical scale):确定 3D 模型上下拉伸程度得到值,越低的话就越平坦,越高就越崎岖,适当的调大该值可以使地形看上去更直观和立体,我们这里设置为4;

  • 采样率(Tile resolution):生成立体模型的采样率,或者说分辨率,值越大,采样越精准,越贴近于采样文件,设置成100就可以了;

  • Skirt height:不知道这玩意儿中文叫什么,裙高?反正这个参数也是比较重要的,因为这个值小了的话,3D模型可能会出现裂痕,具体什么原理就不知道了,反正这里设置成50就可以了,其他的具体看情况吧。

然后按住 Ctrl 加鼠标左键就可以在 3D 视图中调整角度,鼠标中键也可以。

然后你就可以看到 3D 模型了,通过修改选取色带可以得到不同的效果。

其他的更多功能,读者可以自己去尝试,比如 Terrain Shading 和  Skybox 选项读者可以尝试尝试,但是灯光和阴影功能我认为就是坨狗屎。

步骤3 地图制作

我们制作得到了一个 3D 模型,但这还不是地图,这一步就让我们把模型放进地图中。

在保持 3D 视图开启的状态下(不能取消掉),开启布局视图。

 

 

 

进入布局视图后,侧边栏选择添加3D地图(橙色框),然后鼠标画出地图。

 

但是这样立体模型不会显示出来,不像二维地图一样。

在右边的属性栏中点击 Copy Settings from a 3D view...,如此可以将 3D视图 中立体模型添加到布局视图(也就是地图)中。

同样的读者可以返回 3D视图,在其中修改镜头视角后,想要将修改后的视角更新到地图中,就使用 Set from a 3D View... 更新。

 

 

可行性

3D 立体模型

3D 立体模型,也就是说的 3D diorama,差不多是可行了。在布局视图(地图设置界面)手动绘制几何面把下边包住,得到这种立体模型的效果,由于绘制几何面没有跟踪功能(可能是自己没有找到),所以只能自己手画咯,很丑,见谅!

 

 

QGIS 3D地图制作全流程指南 QGIS的3D功能已从基础可视化发展为涵盖建模、分析与发布的综合工具链。通过合理选择数据、优化渲染参数及扩展插件,用户可高效制作科研级或展示级三维地图。未来,随着WebGL与实时渲染技术的整合,QGIS在虚拟地理环境(VGE)中的应用潜力将进一步释放。QGIS自3.0版本起集成原生3D视图功能,支持地形模型、矢量要素的三维渲染及动态交互。 阅读详情

相关推荐

QGIS最受欢迎的20个插件

QGIS是一个非常优秀的开源地信软件,如果你和我一样:用arcgis用到想吐,可以试试这个软件,会带来全新的体验。我之前已经更新过一些qgis教程,后续也将持续更新这一领域的内容。

锐多宝的地理空间 8766

QGIS 3D功能操作说明

QGIS可以轻松快速地创建 3D 地图和可视化。可用于3d数据效果浏览及与2D数据的对比及数据的打印输出。具体功能如下。

GIS工具 4108

QGIS介绍

QGIS的官方网站为:https://www.qgis.orgGithub地址:https://github.com/qgis/QGISQGIS采用开源证书GNU GPLv2 (GNU General Public License version 2)发布,主要采用C++语言开发,用户界面依赖Qt平台。

weixin_39676449的博客 3314

如何在 QGIS 中创建 3D 地图

就快结束了!现在我们将更新我们的符号系统。首先打开 DEM 的符号系统并将渲染类型设置为单带伪彩色。接下来,打开色带并将“类型”设置为“离散”。然后,单独选择要表示地图中各种高程值的颜色。(您的 DEM)→图层属性→符号系统现在你应该有一个漂亮的 3D 地图了!您可以设置不同的图层和符号,例如正射影像和等高线图层。您可以使用3D 配置工具旁边的另存为图像功能保存地图图像。下面是一些自定义 3D 地图的可能方法的幻灯片。

GIS工具 3926

不止于地图:通过QGIS源码中的qgis_analysis和qgis_3d模块,探索GIS软件的扩展开发实战

本文深入探讨了QGIS二次开发实战,重点解析了`qgis_analysis`和`qgis_3d`模块的源码级开发。通过算法扩展、三维渲染定制及插件系统集成,展示了如何利用QGIS的模块化架构实现GIS软件的深度定制,为开发者提供了从接口调用到完整插件开发的全面指南。

weixin_33737134的博客 524

QGIS 3D进阶:DEM数据与影像底图融合的山体晕染实战

本文详细介绍了在QGIS中实现DEM数据与影像底图融合的山体晕染技术,涵盖数据获取、预处理、3D可视化及效果优化等关键步骤。通过QGIS内置工具和Qgis2threejs插件,用户可创建专业级地形渲染效果,适用于户外规划、地质勘探等场景。文章还提供了常见问题解决方案和进阶应用拓展,助力地理信息可视化工作。

weixin_29231263的博客 1019

QGIS开发笔记(四):QgsRasterLayer加载Cesium二维地图的瓦片地图数据到QGIS

文章摘要 本文介绍了如何在Qt中使用QGIS开发工具加载瓦片地图,重点讲解了QgsRasterLayer类的核心功能与操作方法。文章概述了栅格数据的基本概念(波段、图层、栅格格式等),并演示了如何创建栅格图层、获取图层属性、读取像素值以及设置渲染方式。同时提供了在线XYZ瓦片地图的XML配置示例,展示了QGIS集成瓦片服务的技术实现。通过代码示例和动图演示,帮助开发者快速掌握在Qt项目中嵌入QGIS并加载瓦片地图的完整流程。

长沙红胖子 Qt・西安|省级科研团队从业背景,深耕双一流体系高精尖技术配套研发|剥离高精尖机理,沉淀高端特种行业领域 Qt 工程化落地经验|博文仅分享通用技术总结,输出公开普适工程思路。 1万+

【QGIS入门实战精品教程】12.1:QGIS制作三维地形沙盘、3D地图

在QGIS中显示三维,需要新建3D地图视图。在软件的内容列表中,勾选加载的影像数据,结合三维DEM,即可自动生成三维真实地形沙盘。我们制作得到了一个 3D 模型,但这还不是地图,这一步就让我们把模型放进地图中。在左侧的工具栏中,点击相应的工具,可以添加指北针、图例、比例尺等进行地图整饰。注意:在保持 3D 视图开启的状态下(不能取消掉),开启布局视图。在图纸区域,绘制一个地图显示范围,此时地图并未显示出来。在创建的三维地图1窗口,点击【配置】。点击【新建】,输入布局名称,点击确定。

智慧空间实验室 3033

QGIS二维建筑轮廓转3D建筑模型导入blender

摘要:本文介绍了使用QGIS将二维建筑轮廓快速转换为三维模型并导入Blender的完整流程。通过创建高度字段或直接计算(如"Floor"*3),在QGIS中设置3D拉伸效果并调整视角,可生成带阴影的三维城市模型。随后导出为OBJ格式,在Blender中导入进行动画和光影效果处理。该方法结合电子地图展示,能有效提升城市规划效率,实现从GIS数据到三维场景的无缝转换。教程包含详细图文步骤和视频教学,适用于零基础用户快速掌握三维建模技巧。

GIS思维的博客 2254

QGIS003:【04地图导航工具栏】-地图显示、新建视图、时态控制、空间书签操作

摘要:QGIS地图导航工具栏包括平移地图、居中显示、放大、缩小、全图显示、缩放到选中要素、缩放到图层、缩放到原始分辨率、上一视图、下一视图、新建地图视图、新建3D地图视图、新建空间书签、打开空间书签、时态控制面板、刷新等选项,本文介绍各选项的基本操作。

qq_31762031的博客 2699

QGIS至Three.js:3D地图转换实战

QGIS(原名Quantum GIS)是一个开源的地理信息系统,它提供了对GIS数据的编辑和分析功能,支持各种矢量、栅格数据格式,并且可以通过插件扩展其功能。QGIS适合专业GIS开发者和数据分析师,以及教育和研究领域。qgis2threejs是QGIS中用于创建3D Web场景的插件,它将GIS数据转换为WebGL格式,提供了一种简单有效的方式让GIS数据在网页中以3D形式展示。安装qgis2threejs插件,用户首先需要确保QGIS已安装在其计算机上。

weixin_42596011的博客 1763

QGIS 3D:三维DEM数据加载渲染漫游

QGIS跟arcgis一样,也能加载DEM数据,进行渲染漫游。 一、数据获取 现在国内的公共数据资源做的也很不错了。我们可以从地理空间数据云上获取。 http://www.gscloud.cn/search 网站需要注册,注册之后,就能下载数据了。 我要下载的是30M分辨率数字高程数据,根据矩形检索出来数据列表,点击下载就行了。 我下载了2个,ASTGTM_N26E098和ASTGTM_N26E099,下载速度也还可以。 下载的数据是zip格式的,解压之后就是img文...

吴道简的博客 6293

Rust嵌入式开发环境搭建指南(基于Stm32+Vscode)

本文档旨在指导开发者如何搭建基于Rust语言的STM32嵌入式开发环境。相比传统的C/C++开发方式,Rust提供了更强的内存安全保障和现代化的语言特性,非常适合嵌入式系统开发。本指南将详细介绍从环境搭建到项目配置的全过程,特别关注VSCode作为IDE的配置以及STLink和DAPLink调试器的使用。

u014627020的博客 2601

qgis 热力图_qgis加载天地图(轨迹热力、高德影像等)

因为天地图改版的缘故,原先单独的key被细分为了浏览器端和服务器端key,然而arcgis不属于任何一种,所以不可能打开,而之前天地图的key不分情况都能用。之前制作的各种天地图lyr都不能使用了。但是qgis是一直能使用的,qgis作为开源软件,使用起来还是比较简单的,也直接有简体中文。我使用的qgis3版本,打开界面,找到XYZ tile,右键新建xyz链接输入链接天地图矢量和注记图...

weixin_39868248的博客 2273

FTPClient使用中,碰到SocketTimeoutException 坑

ftpclient设置soTimeout无效

u010379794的博客 1951

饥荒联机版Mod开发——modmain环境与API深度解析

本文深入解析饥荒联机版Mod开发中的modmain.lua环境与核心API,详细讲解环境表构建原理、API注册与调用时机,并提供高级开发技巧与最佳实践。通过源码分析和实际案例,帮助开发者掌握Mod开发核心技术,解决常见问题,提升开发效率与代码质量。

weixin_30312563的博客 433

qgis导入在线地图网址

https://webst01.is.autonavi.com/appmaptile?style%3D6%26x%3D%7Bx%7D%26y%3D%7By%7D%26z%3D%7Bz%7D&zmax=18&zmin=0 type=xyz&url=http://www.google.cn/maps/vt?lyrs=s@820&gl=cn&x={x}&...

u014397092的博客 1万+

华为[ENSP]OSPF的配置实例(单区域+多区域)

华为[ENSP]OSPF的配置实例(单区域+多区域)

weixin_62594100的博客 2万+

QGIS 3D地图场景教程:3D视图、高程渲染与LAS点云可视化完整指南

QGIS 是一款免费、开源、跨平台(Linux / Windows / macOS)的地理信息系统(GIS)软件,而 **QGIS 3D视图** 是它最直观的功能之一:你可以把普通的 DEM 高程栅格渲染成立体地形,把建筑物面状要素拉伸成 3D 体块,甚至直接可视化 LAS/LAZ 三维激光点云。本教程带你快速上手 QGIS 3D地图场景:从打开 3D 视图、配置高程渲染,到 LAS 点云分类可视

gitblog_00384的博客 441

电子纸价签实战:基于SSD1680的墨水屏驱动开发与优化

本文详细介绍了基于SSD1680驱动芯片的电子纸价签开发实战,涵盖硬件连接、驱动框架搭建、核心流程解析及性能优化。重点剖析了初始化配置、波形文件加载、图像数据写入与刷新触发等关键步骤,并提供了功耗优化、显示效果提升及代码健壮性等实用避坑指南,帮助开发者高效实现稳定低功耗的墨水屏驱动。

weixin_28278377的博客 229

【软件系统架构】系列六:MBSE(基于模型的系统工程)

基于模型的系统工程(MBSE)是一种以模型为核心的系统工程方法论,通过结构化、可视化的模型取代传统文档,实现从需求到验证的全生命周期管理。MBSE采用SysML建模语言,包含需求、功能、架构和验证四大要素,支持自动追踪、仿真分析和代码生成。相比文档式工程,MBSE具有变更影响自动分析、跨团队协作和高可视化等优势,广泛应用于航空航天、汽车电子等领域。典型开发流程包括需求建模、行为建模、架构建模等阶段,配合MagicDraw、Cameo等工具链实现。MBSE正与数字孪生、AI技术融合,推动自动化建模和智能验证的

moton2017的博客 2783

QGIS 现已支持 3D Tiles

该团队开发了一个3D Tiles格式的解析器和一个3D渲染器,该渲染器根据适当的3D视图细节级别动态加载和显示3D Tiles的特征、要素。“地理空间社区正在通过发展开源经济来合作,这是一项接近我们的本心和我们的核心业务的合作方式。通过在商业软件和开源软件之间的合作,Cesium认可了开源软件作为地理空间标准操作程序使用的合法性,促进了开放性和互操作性,”North Road的产品经理/高级GIS分析师Emma Hain说。随着3D地理空间的不断发展,总会有创新的空间:有影响力的集成、开源贡献和教育机会。

碳学长的博客 2165

Open3D (C++) 使用点云创建数字高程模型DEM

Open3D (C++) 使用点云创建数字高程模型DEM

点云侠的博客 1392

QGIS二次开发(地图符号库操作)

QGIS二次开发,在自制作的GIS系统中应用地图符号库功能

CUGLin的博客 2569

qiankun 主子应用部署教程(Nginx 小白版)

本地开发:不用 Nginx,直接localhost:端口即可。本地模拟线上:用hosts + Nginx + 自定义域名,效果和生产接近。线上部署主应用只要配置 history 模式子应用必须支持 CORS + history + 缓存能跑是因为默认 server 兜底,但推荐写真实域名。主应用 vs 子应用的 Nginx 配置区别为什么本地和线上表现不一样history 模式 + 跨域的最佳实践。

专注于前端开发与实战技巧,记录从零到一的学习与项目经验。分享 Vue3 / JavaScript / TypeScript / Flutter /Uniapp等前端技术,以及 性能优化、工程化、最佳实践。 999

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

五步轻松搞定QGIS三维地形浏览

下载DEM数据 https://dwtkns.com/srtm30m/ 网站提供了便捷的全球30米分辨率DEM数据下载服务,数据格式为美国航空航天局(NASA)和国防部国家测绘局(NIMA)联合测量的SRTM数据(Shuttle Radar Topography Mission,即航天飞机雷达地形测绘使命)。SRTM数据使用16位整数表示高程数值,最大正高程值为9000米,最大负高程值为海平面以下12000米。 该网站以地图切片的形式提供数据下载导航服务,点击选择某切片,在弹出的信息框中点击【Downlo.

QGISClass的博客 1万+

深度学习工具包 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")

下一篇: ArcGIS自制符号库、兴趣点符号库、poi符号库
sky
J
博客等级 码龄5年 3533粉丝 225原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值