满鉴霆:希望国产操作系统走出国门,走向世界

国产操作系统出海:跨越技术、生态与市场的三重挑战 操作系统作为连接硬件与软件的核心平台,其技术架构决定了系统的稳定性与性能上限。从技术原理看,基于Linux内核的系统需通过深度定制来适配硬件与优化体验,这涉及内核驱动、图形桌面环境及系统更新维护等核心环节。在工程实践中,操作系统的技术价值不仅在于自身功能的完善,更在于其构建的软件生态能否满足用户需求。当前,全球操作系统市场被Windows、macOS等巨头主导,其成熟的生态构成了极高的进入壁垒。应用场景上,新兴系统若想参与国际竞争,必须直面原生应用匮乏、兼容层方案局限等生态难题,并需在品牌信任、市场渠道等方 阅读详情

在这里插入图片描述点击查看活动详情:https://t.csdnimg.cn/L4B8

社区介绍:
RT-Thread 是一个集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台,由熊谱翔先生带领并集合开源社区力量开发而成,RT-Thread 也是一个组件完整丰富、高度可伸缩、简易开发、超低功耗、高安全性的物联网操作系统。RT-Thread 具备一个 IoT OS 平台所需的所有关键组件,例如GUI、网络协议栈、安全传输、低功耗组件等等。经过11年的累积发展,RT-Thread 已经拥有一个国内最大的嵌入式开源社区,同时被广泛应用于能源、车载、医疗、消费电子等多个行业,累积装机量超过 6亿 台,成为国人自主开发、国内最成熟稳定和装机量最大的开源 RTOS。

RT-Thread 拥有良好的软件生态,支持市面上所有主流的编译工具如 GCC、Keil、IAR 等,工具链完善、友好,支持各类标准接口,如 POSIX、CMSIS、C++应用环境、Javascript 执行环境等,方便开发者移植各类应用程序。商用支持所有主流MCU架构,如 ARM Cortex-M/R/A, MIPS, X86, Xtensa, C-Sky, RISC-V,几乎支持市场上所有主流的 MCU 和 Wi-Fi 芯片。

社区之星推荐语:满鉴霆,获得2020 年RT-Thread社区杰出贡献奖。RT-Thread社区工作小组成员之一,热衷于分享、推广RT-Thread操作系统,为RT-Thread英文社区翻译BSP文档,半年时间贡献了49个PR、11个软件包,配合RT-Thread制作中英文视频教程。

在这里插入图片描述

2020开发者大会获得RT-Thread社区杰出贡献奖

社区贡献
在使用RT-Thread之前,我使用的是uCOS-III的操作系统,因为项目的缘故需要移植一些在Linux上跑的软件包移植到STM32上,因为uCOS-III本身就是一个内核,而基于Linux开发的软件都是使用统一的read/write方式进行操作(一切皆文件),因此我费了半天劲将写了一个虚拟文件系统层,将FATFS和LWIP统一起来,而且还要实现一些标准的libc库函数,其实就是重新造了一个轮子,而且这个轮子还特别的简陋。那时候我逐渐意识到必须要向Linux看齐,于是我找到了RT-Thread操作系统。其实只要你用了RT-Thread,你就会爱上他,离不开他;因为所有的驱动开源社区的小伙伴都给你写好了,只要使用Env工具或者RT-Studio就可以快速配置出一套工程。这让我想到了王境泽的真香定理。

我也将RT-Thread推荐给其他的工程师使用,但是工程师们的心态都是,我已经使用了uCOS或者FreeRTOS,我也习惯了自己写设备驱动,你还让我再学一个其他的操作系统,多麻烦。所以很多工程师都是,RT-Thread听过、了解过,就是没有用过,不愿意走出自己的舒适圈。于是我发现了RT-Thread在推广上面临的一个巨大阻力,即市场是有惯性的。于是针对这个痛点,我决心为我国独立自主的操作系统做些什么,既然这些工程师不愿意走出自己的舒适圈,那么好,我就走进你的舒适圈。于是从2020年6月末开始,每天熬到凌晨3-4点钟,花了一个月的时间,编写出了RT-Thread的uCOS-III兼容层(https://github.com/mysterywolf/RT-Thread-wrapper-of-uCOS-III),让工程师可以沿用已有的uCOS-III的编程经验,以前编写的应用层和业务逻辑模块都不需要做任何修改,就可以直接运行在RT-Thread上,即只要你有其他RTOS的基础,借助兼容层,入门RT-Thread不需要任何额外的成本。

在uCOS-III兼容层发布之后,有小伙伴希望我编写uCOS-II兼容层,于是我在2020年9月开始编写uCOS-II兼容层,由于学业缘故,uCOS-II兼容层的编写比较慢,花了将近3个月的时间,已经于12月发布(https://github.com/mysterywolf/RT-Thread-wrapper-of-uCOS-II)。真心希望,尤其是在中美贸易战的背景之下,中国的工程师尽量使用我们国家自己的操作系统。

同时,我还负责给RT-Thread英文社区翻译一些BSP文档,在半年时间里,我贡献了49个PR,除了RT-Thread源码的PR之外,这其中的一小半是在翻译文档。现在我正在忙于撰写和录制英文教学视频,配合RT-Thread的“Going Global”计划,让RT-Thread走出国门,走向世界。目前RT-Thread的第一支以英语、系统性讲解RT-Thread的教学视频就要发布啦!

自从我加入RT-Thread开源社区,我接触到了很多技术大佬。在2020年深圳开发者大会上,终于有机会见到了他们,听他们谈话甚至一些术语我听都没听过,这也让我意识到自己还有很多东西要去学习。

技术展望

目前,嵌入式领域在迎来一场革新,以RTOS+MCU的设计方案正在挤占和逐渐取代传统的Linux+MPU的方案的市场,加之MCU与MPU之间的界限越来越模糊,一些MCU也具备了丰富的资源和超群的性能,这种低成本的解决方案使得高性能物联网终端得以大范围普及。我认为AI在终端上的运用将是未来的趋势,以RTOS+MCU为平台的设备也将实现AI算法,并使产品落地。这倒逼传统AI算法的迭代和升级,以适应MCU资源受限的情况。因此AIoT将是未来的趋势。

开发者寄语

RT-Thread不同于uCOS或者FreeRTOS这类实时内核(real-time kernel),RT-Thread是一个完整的实时操作系统(real-time operating system),除了基本的实时内核之外,还有设备框架、虚拟文件系统等一系列“上层建筑”。因此若沿用uCOS或FreeRTOS的学习方法,即什么都要搞明白是不现实的,建议初学者用到什么学什么,在运用过程中搞清机理,而不是盲目的死磕源码。如果你还没有接触过RTOS,或者刚从其他RTOS转过来,建议先使用RT-Thread Nano版本(该版本仅是一个实时内核+必要组件)学习,学习成本大大降低。然后再转入完整版进行学习,用到什么学什么。

在这里给初学者介绍一下如何高效检索RT-Thread的相关资料。自RT-Thread3.0发布之后,在社区小伙伴和RT-Thread工程师们的共同努力下,RT-Thread的中文资料得到了极大丰富。但是与此同时,面对现如今信息碎片化的网络资源,对于刚刚入门RT-Thread的小白来说,如何找到自己想要的学习资料就变成了一个麻烦的问题。在这里我和大家分享一下经验。

1) 搜索引擎的选择
在此之前,我们搜索嵌入式相关的资料时,一般使用百度和Google,这两个搜索引擎各有侧重,百度一般侧重于中国本土的技术博客和论坛等资料,而Google一般侧重于外文资料和文献。但是无论是百度还是谷歌都有一个很大的问题就是没有办法搜索微信公众号的文章,因为微信公众号的搜索权限仅授权给了搜狗搜索引擎。而在微信公众号上,除了RT-Thread官方以外,还有很多嵌入式相关的微信公众号也推送了相当多质量极高的教学文章。如果使用百度或者谷歌去搜索,这些文章将不会被检索到。因此我建议如果大家要检索RT-Thread基础教学资料的话,一定要考虑使用搜狗搜索引擎的微信搜索功能,当然也可以直接在微信中搜索。

2) 官方文档中心
官方的文档中心是由RT-Thread工程师撰写的说明文档,具有很高的权威性,一些基础的概念与使用方法,建议到官方文档中心查找(https://www.rt-thread.org/document/site/ )。为了能够加速官方文档中心的文档丰富速度,日后,官方文档中心将开放权限给社区小伙伴,可以类似于提PR一样修改或者增加文档的内容。

3) 视频资源
视频资源建议大家去B站 (www.bilibili.com) 去搜索,B站没有广告,不需要登陆也可以看视频,目前除了官方账号以外,还有很多社区的小伙伴也上传了大量关于RT-Thread的教学视频。欢迎大家关注RT-Thread B站官方账号 (https://space.bilibili.com/423462075/)。

RT-Thread官方网站:https://www.rt-thread.org/index.html

RT-Thread团队:开源是我们的基因和文化 | Gitee 封面人物第 20 期 本期嘉宾 RT-Thread 团队:包括熊谱翔、邹诚、邱祎、朱天龙等人以及社区贡献者满鉴霆、卢华东、李涛。 RT-Thread:RT-Thread 是一个集实时操作系统(RTOS)内核、中间件组件和开发者社区于一体的技术平台。同时 RT-Thread 也是一个组件完整丰富、高度可伸缩、简易开发、超低功耗、高安全性的物联网操作系统。 「没有开源就没有 RT-Thread」 开发 RT-Thread 的初衷是什么? 熊谱翔(RT-Thread 创始人): 由于个人兴趣及项目需求动手写了一个 R... 阅读详情

相关推荐

深入理解rt_thread实时系统:设计与实战

rt_thread是一个轻量级的实时操作系统(RTOS),特别为资源受限的嵌入式设备设计。它支持广泛的硬件平台,从微控制器到复杂的系统处理器,具有模块化、可裁剪、组件化的特点,能够为开发者提供灵活的系统架构选择。实时系统(Real-Time System,RTS)是一种特殊的计算机系统,它需要在预定的时间内对外部或内部的事件做出响应。其核心特征在于时间约束的严格性,即系统的正确性不仅依赖于计算结果的逻辑正确性,而且依赖于计算结果的产生时间。实时系统通常被分为两类:硬实时系统和软实时系统。

weixin_36212459的博客 801

2020·RDC·RT-Thread开发者大会圆满落幕!

大会现场近日,由睿赛德科技主办的一年一度2020·RDC·RT-Thread 开发者大会在深圳圆满落幕!活动以“万物智能·轻时代”为主题,并携手RT-Thread众合作伙伴,与现场近千名...

rtthreadiotos的博客 1704

鸿蒙_rtthread_Linux_Android驱动开发比较.7z

001_移植RTOS要做的事 002_必备知识

第十届开源操作系统年度技术会议(OS2ATC)完美落幕,十年征程砥砺前行!

OS2ATC 十年征程,汇聚开源力量,助力中国开源行稳致远。

优快云云计算 1285

【科研导航】【计算机视觉与图像处理】从顶刊到潜力股:跨学科(电子/电气/信息)SCI期刊投稿全景图

本文全面解析了计算机视觉与图像处理领域的SCI期刊投稿策略,涵盖从顶刊到潜力股的各类期刊特点。重点介绍了IEEE Transactions系列、Elsevier旗舰期刊以及二区优质期刊的审稿偏好和投稿技巧,特别适合电子/电气/信息交叉学科的研究者。文章还提供了三区、四区期刊的实用投稿建议,帮助科研新手快速找到适合的发表平台。

weixin_30897233的博客 81

Flotherm XT学习历程

大家好,通过半年的热仿真软件学习使用,最终发现最好用,最好上手的软件就是Flotherm XT,对新手非常友好,但由于软件近几年才发布,网上教程非常少,后面我将在这里持续分析软件使用心得,和大家一起学习。

xiaoredred的博客 6255

rt-thread学习之路第六十二章--LVGL和触摸屏移植

的推动下,RT-Thread 社区与 LVGL 社区已经完成了源码对接,LVGL 官方 Github 源码仓库已经成为 RT-Thread 的软件包,RT-Thread 社区小伙伴只需要使用 Env 工具或者 RT-Studio 即可拉取到 LVGL 的最新源码,并自动加入到 RT-Thread 工程中。关于是否需要对接RT-Thread显示设备框架与触摸框架的问题,用户可以自由处理,如果不愿意对接RT-Thread显示和触摸框架,可以直接将驱动怼到LVGL侧的对接函数上也是没有问题的。

weixin_43554326的博客 2102

python k线顶分型_【缠论】分型、笔的定义及其程序化

K线包含关系处理和分型的定义如果一个K线的高低点全在另一K线的范围里,称之为包含关系。针对这种K线,需要进行一些处理,去除包含关系,处理方法:向上时,把两K线的高点当高点,而两K线低点中的较高者当成低点;反之,当向下时,把两K线的低点当低点,而两K线高点中的较低者当成高点,这样就把两K线合并成一新的K线。经过这样的处理,所有K线图都可以处理成没有包含关系的图形。两K线的包含关系,可以分成四种:1)...

weixin_39717152的博客 2823

Arduino库可以直接在RT-Thread上运行啦!

1 简介RTduino为RT-Thread的Arduino生态兼容层,是RT-Thread社区的下属子社区,旨在兼容Arduino社区生态(如上千种分门别类的Arduino库,以及Arduino社区优秀的开源项目),来丰富RT-Thread社区软件包生态,并降低RT-Thread操作系统以及与RT-Thread适配的芯片的学习门槛。可以让用户通过Arduino的函数和编程方法,轻松地将RT-Thr...

rtthreadiotos的博客 2570

『言善信』Fiddler工具 — 1、Fiddler介绍与安装

文章目录1、Fiddler简介2、Fiddler功能3、Fiddler工作原理4、Fiddler安装 1、Fiddler简介 Fiddler是强大的抓包工具之一,它能记录所有客户端和服务器之间的HTTP和HTTPS请求,是web调试的利器。 Fiddler是位于客户端和服务端之间的HTTP代理,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改。 Fiddler可以抓取支持HTTP代理的任意程序的数据包,如果要抓取https会

繁华似锦Fighting 1463

python3.12 在用django5.0创建超级用户时,遇到AttributeError: module ‘hashlib‘ has no attribute ‘pbkdf2_hmac‘的问题

产生问题的原因是python3.12的hashlib没有自带pbkdf2_hmac函数,该函数是加密算法的一种,只要通过别的函数导入pbkdf2_hmac即可。还有一种方法是将django默认使用的pbkdf2_hmac改为hashlib自带的sha2或其他算法返回加密的密码,笔者以后会尝试用此类办法解决问题。2.找到报错文件的位置/usr/local/lib/python3.12/site-packages/django/utils/crypto.py。保存修改的文件,重新执行创建超级用户的命令成功。

weixin_67057943的博客 851

列举RT-Thread操作系统的竞争对手

在嵌入式操作系统领域,还有其他一些操作系统也具有一定的竞争力,例如 VxWorks、embOS、LynxOS 、sylixos等。而 RT-Thread 具有资源占用低、组件丰富、简单易用、高度可伸缩等特点,在物联网等领域得到了广泛的应用。操作系统的竞争也促使各个产品不断发展和完善,以满足市场和用户的需求。在选择操作系统时,开发者通常会考虑诸如硬件支持、开发难度、功能需求、成本等多种因素。- 鸿蒙操作系统:华为开发的操作系统,具有分布式、场景化、互联互通等特点,强调万物互联,覆盖手机、物联网等多个领域。

低速无人驾驶自动技术 532

GN算法边介数计算优化指南:如何提升大规模社交网络分析效率

本文深入探讨了GN算法在大规模社交网络分析中的核心瓶颈——边介数计算,并提供了从算法优化到工程部署的完整性能提升方案。通过引入Brandes算法、并行计算、增量更新及分布式处理等策略,有效解决了传统GN算法在处理百万级网络时效率低下的问题,为社交网络社区划分等实际应用提供了高效解决方案。

weixin_29196613的博客 485

2020年度“社区之星”出炉!原来社区里的技术大佬们是这样成长起来的!

点击直达“社区之星”成长故事放送现场 我们认为,那些积极探索技术边界并持续对社区做出贡献的开发者是真正的技术英雄,是开发者的学习榜样,也是各个技术社区发展的生命力! 在2020年末,优快云特向所有技...

程序人生的博客 4500

【学习系列】SAP RAP 8:行为定义-Authorization Control

本文介绍了SAP RAP中的授权控制实现方法,主要分为读取操作和修改操作两种场景。读取操作通过ABAP CDS的数据控制语言(DCL)实现,使用访问控制对象限制数据可见范围;修改操作则通过行为定义中的权限检查,包括全局授权、实例授权和预检查三种方式。文章详细说明了如何使用DCL创建访问控制规则,并通过实例演示了全局授权和实例授权的代码实现方法,以及预检查功能在数据更新前的权限验证。这些授权控制机制共同确保用户只能访问和操作其权限范围内的数据,有效保障系统安全性。

DeveloperMrMeng的博客 432

MAC(m1)-VMWare Fusion安装CentOS7.9

MAC(m1)-VMWare Fusion安装CentOS7.9

兴趣是最好的老师 1766

OS2ATC|第十届开源操作系统年度技术会议圆满落幕

第十届开源操作系统年度技术会议(OS2ATC)2022 活动回顾

OS2ATC的博客 884

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

RT-Thread开发学习笔记

rt-thread开发学习笔记

weixin_44531081的博客 1293

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【新年洞见】开发者大会见闻,以RT-Thread为核心的IoT生态圈正在逐步建立

作者-马超1999年美国召开的移动计算和网络国际会议上麻省理工大学的阿什顿教授提出了基于互联网、RFID技术、EPC标准,在计算机互联网的基础上,利用射频识别技术、无线数据通信技术等,构造...

rtthreadiotos的博客 980

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

RT-Thread团队回应社区关切:鸿蒙OS带来的影响-合作远远大于竞争

关于HarmonyOS2019年8月9日,华为正式向全球发布了全新的自有系统 HarmonyOS 1.0——基于微内核的面向全场景的分布式操作系统,并宣布开源;2020年9月10日,...

FILLMOREad的博客 6743

【大赛直播】如何基于国产芯片进行RT-Thread的移植与开发?还有云接入噢!

作为整个信息系统的“大脑”,芯片无处不在。过去由于技术、生态等各种原因,导致国产芯片推广难、应用难。但现在,事情正在悄悄发生变化。可能国产芯片还没进入你的笔记本电脑,但你使用的个人征信...

FILLMOREad的博客 2179

CAN设备应用指南

CAN 是控制器局域网络 (Controller Area Network, CAN) 的简称,是由以研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为...

FILLMOREad的博客 2343

今天来点不一样的:从RTOS 到 IoT OS:技术、产品与商业化如何发展

作者 / 沈建华 华东师范大学 计算机科学与软件工程学院(上海 200062) 本文引用地址:http://www.eepw.com.cn/article/201802/376162.htm *本文源于“嵌入式系统联谊会主题讨论会(总第22次)——物联网操作系统现状与发展前景研讨会”上的报告。此会议主办方:嵌入式系统联谊会,时间:2017年11月12日,地点:北京航空航天大学。   沈建华...

FILLMOREad的博客 1580

鸿蒙cortex,RT-Thread与鸿蒙OS,是对立面还是合作共赢

今年9月10日,华为正式发布了HarmonyOS 2.0,并开源代码。目前开源的代码中,包含了kernel_liteos_a(针对Cortex-A系列处理器)和kernel_liteos_m(针对Cortex-M系列处理器)两大内核,主要面向大屏、手表和车机等内存在128KB – 128MB范围内的终端设备。而作为自06年来就一直坚持开源开放的RT-Thread,面对这一刚迈入物联网系统领域的新星...

weixin_29948389的博客 330
上一篇: 致敬2020——打工人的成长故事
下一篇: 开源爱好者李涛:三人行必有我师
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值