Python嵌入式开发利器:MicroPython,让嵌入式系统开发更简单

MicroPython应用基础-使用Thonny IDE Thonny是由爱沙尼亚的Tartu大学开发,非常适合初学者和教学的一款轻量级IDE,提供可视化的编程界面,并可一步一步地调试运行Python程序。其中显著的特性是,提供了多种方式逐步执行代码,可以逐步求表达式的值,对调用堆栈可视化,便于用来解释引用内存和直接在堆中分配内存的概念。特别适合用来支持教育和研究工作。它可以被免费下载和使用,并可由用户在开放的框架中自行开发扩展功能。 阅读详情
AI摘要

MicroPython是一种针对资源受限设备的高效Python解释器,支持多种微控制器,提供交互式开发环境和丰富的库支持。其简洁易用,开源免费,适合快速开发和调试嵌入式系统,且拥有活跃的开发者社区。,

简介

MicroPython是一个在微控制器和受限系统上运行的精简高效的Python解释器。它使用Python 3语言规范,并为嵌入式环境做了优化,使得开发人员能够利用Python的简洁和易用性来开发嵌入式系统。MicroPython的源代码托管在GitHub上,地址为https://github.com/micropython/micropython,以下将详细介绍MicroPython的特点、优势以及如何使用。

MicroPython的特点

    1. 精简高效:MicroPython为开发者提供了一个在资源受限的嵌入式系统上运行Python的解决方案。它的设计目标是尽可能地减小内存占用和运行开销,同时保持Python的简洁和易用性。
    1. 支持多种微控制器:MicroPython已经针对多种微控制器开发了支持包,包括一些常见的硬件平台,如Arduino和ESP8266。这使得开发者可以在不同的硬件平台上使用MicroPython来进行开发。
    1. 丰富的库支持:MicroPython提供了丰富的标准库和第三方库支持,能够满足开发者在嵌入式系统上的各种需求。这些库包括网络通信、文件操作、传感器控制等功能。
    1. 易于移植:MicroPython的代码基于MIT许可证开放源代码,可以方便地移植到不同的硬件平台上。这使得开发者可以根据自己的需求将MicroPython移植到自己的项目中。

MicroPython的优势

    1. 简洁易用:MicroPython使用Python 3语言规范,具有与标准Python一致的语法和功能。这使得开发者可以直接使用Python中的语法和API来开发嵌入式系统,无需学习额外的语言和工具。
    1. 快速迭代:MicroPython提供了交互式开发环境,可以通过串口连接直接对硬件进行操作和调试,加快了开发和调试的速度。这对于嵌入式系统的开发来说非常重要,能够大大缩短开发周期。
    1. 丰富的生态:MicroPython拥有丰富的社区支持和活跃的开发者社区,可以在社区中获取到大量的技术支持和资源。此外,MicroPython还支持Python标准库和一些第三方库,为开发者提供了更多的选择和方便。
    1. 开源免费:MicroPython的代码基于MIT许可证开源,可以免费使用和修改。这对于一些商业项目来说非常有吸引力,能够节省大量的开发成本。

如何使用MicroPython

    1. 安装MicroPython:MicroPython的安装非常简单,开发者只需要在GitHub上下载对应硬件平台的固件文件,通过串口连接将固件文件烧录到硬件上即可。此外,还可以使用一些集成了MicroPython的开发板,如MicroPythonPyBoard和ESP8266。
    1. 开发应用:开发者可以通过串口连接或WiFi连接访问MicroPython的交互式开发环境。在交互式环境中,可以直接使用Python语法和API对硬件进行操作,包括GPIO控制、传感器读取、网络通信等。
    1. 调试和优化:MicroPython提供了一些调试和优化工具,例如代码性能分析、内存占用分析等。开发者可以利用这些工具对自己的代码进行优化,提高系统的稳定性和性能。
    1. 参与社区:MicroPython拥有一个活跃的开发者社区和博客论坛,开发者可以在社区中获取到大量的技术支持、交流经验和资源。同时,开发者也可以贡献自己的代码和项目,丰富MicroPython的生态。

结语

MicroPython是一个为微控制器和受限系统而生的精简高效的Python解释器,具有精简高效、简洁易用、丰富的生态和开源免费等优势。开发者可以通过GitHub获取MicroPython的源代码,并参与到MicroPython的开发和社区中,体验Python在嵌入式系统上的魅力。MicroPython的不断发展和壮大也为嵌入式系统的开发带来了新的可能性和机遇。

项目地址:https://github.com/micropython/micropython

`黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

4.工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

MicroPython条件与循环实战:嵌入式开发的核心控制流 在嵌入式系统与物联网开发中,控制流是程序逻辑的骨架,决定了设备如何感知、决策与执行。条件判断(if/else)和循环结构(while/for)作为编程基础,是实现设备智能行为的关键。其原理在于通过布尔逻辑和迭代机制,让微控制器能对外部输入做出响应并持续工作。在资源受限的MCU(如ESP32、RP2040)上,高效运用这些结构能显著提升代码可靠性与能效。典型应用场景包括传感器数据阈值判断、状态机实现、轮询输入以及低功耗循环控制。本文聚焦MicroPython环境,深入解析条件与循环在嵌入式项目中的实战技巧、常 阅读详情

相关推荐

MicroPython嵌入式开发实战:从架构解析到物联网应用

Python作为一门高级编程语言,以其简洁的语法和丰富的生态著称。在嵌入式开发领域,MicroPython将Python 3解释器移植到资源受限的微控制器(MCU)上运行,其核心原理是通过词法分析、语法解析生成紧凑的字节码,再由微型虚拟机解释执行,实现了在ESP32、STM32等硬件上的动态编程能力。这一技术价值在于极大地降低了嵌入式开发的门槛,开发者无需深入掌握C语言指针和内存管理,即可利用熟悉的Python语法快速进行原型验证和产品开发。其典型应用场景包括对实时性要求不苛刻的智能家居传感器、数据采集器、

weixin_29189373的博客 244

什么是MicroPython:python入门介绍

什么是MicroPython:python入门介绍

shi1804134022的博客 1万+

Pico+MicroPython硬件开发入门:从点灯到电机控制

GPIO和PWM是嵌入式硬件开发中最基础、最常用的技术概念,其本质是微控制器与物理世界交互的底层接口。理解GPIO工作模式(如推挽输出、开漏、上拉输入)和PWM调制原理(占空比、频率、分辨率),是实现LED控制、传感器读取、电机驱动等应用的前提。MicroPython通过高度抽象的API(如Pin、PWM类)将这些硬件操作简化为可读性强、学习门槛低的Python语句,显著降低初学者的认知负荷。它并非Python精简版,而是专为资源受限MCU设计的运行时环境,具备确定性外设控制、轻量级内存管理与硬件穿透能力。

weixin_34378969的博客 426

张高兴的 MicroPython 入门指南:(一)环境配置、Blink、部署

目录什么是 MicroPython环境配置硬件部分软件部分Hello World!BlinkPico 的引脚常见电子元件面包板跳线开关发光二极管电阻使你的 Pico 闪烁部署参考什么是 MicroPython MicroPython 是一个基于 Python 3.4 的高效实现,它专为微控制器和嵌入式系统设计。它提供了一个小型的 Python 环境,包含了一些标准库的部分,并且能够在资源受限的设...

张高兴的博客 6373

【雕爷学编程】一款功能强大、易于使用、适用范围广泛的嵌入式Python解释器:MicroPython

1、语法方面:Micropython与Python语法基本相同,但是由于Micropython是专门为嵌入式设备设计的,因此它对标准Python的功能进行了精简和优化,去掉了一些不必要的功能,同时增加了一些嵌入式系统特有的功能。3、库方面:Micropython与Python完全不同的是,它的标准库并不完全与Python的标准库一致,特别是一些底层库和硬件相关的库。5、丰富的库和工具支持:MicroPython有丰富的库和工具支持,如GPIO控制、网络连接、传感器数据采集等,可满足各种应用需求。

雕爷学编程 5194

【雕爷学编程】MicroPython动手做(29)——物联网之SIoT

物联网的概念最早是在1999年由Kevin Ashton在一次演讲中提出来的,当时他是一个RFID研究机构的执行主任,这家研究机构是在宝洁公司和吉列公司的赞助下成立的。例如你带的手表、你骑的共享单车、马路上的汽车、家里的冰箱、路边的路灯、甚至是一棵树。物联网(Internet of Things,缩写IoT)是互联网的一个延伸,互联网的终端是计算机(PC、服务器),而物联网的终端是硬件设备,无论是家电、工业设备、汽车、监测仪器,所有这些终端都可以互联,可以总结为万物互联。(4)支持数据导出。

雕爷学编程 1988

micropython入门教程-我的MicroPython入门之路

我刚工作的时候,部门花大价钱买了一套基于FPGA的实时仿真系统,编译的时候看到.py的文件生成让我很感兴趣,从此开始接触python。后来,我利用空闲时间开始学习python,近几年正是python2到python3的过度阶段,不兼容让新手真是头疼,好多书的作者前一版还在说支持python2,那么多库都是2的版本写的,后一版就全面转向3....我在学习过程中深深感觉python简单易用,脚本语言不...

q6q6q的专栏 2151

26、MicroPython:微控制器编程的强大利器

本文全面介绍了MicroPython在微控制器编程中的应用,重点讲解其在Raspberry Pi Pico上的使用方法。内容涵盖MicroPython的基础知识、语言结构、硬件控制(如GPIO操作)、库的使用方式以及在物联网和嵌入式系统中的优势。文章还展示了实际代码示例、操作步骤和流程图,并探讨了MicroPython的跨平台能力与未来发展前景,适合初学者和专业开发者快速上手并应用于机器人、可穿戴设备、家庭自动化等项目中。

Python的专栏 97

Raspberry Pi Pico入门指南:从MicroPython到PIO的嵌入式开发实战

微控制器(MCU)作为嵌入式系统的核心,通过执行预编程指令来控制硬件设备。其工作原理基于处理器、存储器和输入输出接口的协同工作,实现对传感器、执行器等外设的精准管理。在物联网和智能硬件领域,MCU的技术价值在于其低功耗、高实时性和低成本,使其成为智能家居、可穿戴设备和工业自动化等应用场景的理想选择。本文聚焦于Raspberry Pi Pico这款基于RP2040芯片的流行开发板,详细解析其硬件规格、开发环境搭建及项目实践。通过**MicroPython**快速上手指南和**C/C++** 专业开发路径的对比

congbao6525的博客 496

《遥感大模型生产级实战:从数据到决策的端到端AI工程》系列第三部分:城市洪涝灾害应急响应与评估平台实战-文章 14:项目二启动与多源异构数据对齐

我们将系统性地梳理城市洪涝场景下的所有关键数据源,从天上的卫星(光学与SAR)、空中的无人机,到地面的物联网传感器和社交媒体信息流,深入剖析每种数据在洪涝响应中的独特价值、获取方式与内在局限性。本章的核心将是一个详尽的、生产级的数据对齐技术全景,我们将分步解决三大核心对齐难题:空间对齐(将所有数据投影到统一的地理坐标系)、时间对齐(处理不同采样频率的时间序列)以及最困难的语义对齐(将文本描述与物理观测相关联)。

panshengwu的博客 2003

树莓派5外接RTX显卡:从PCIe到驱动的完整踩坑指南

在ARM架构与GPU加速的交汇点,树莓派5凭借其PCIe接口为DIY爱好者打开了外接独立显卡的大门。然而,PCIe x1的带宽限制、供电差异以及NVIDIA驱动在ARM Linux上的兼容性,使得这一组合成为一场高强度的系统底层排错训练。从理解PCIe总线原理、驱动加载机制到CUDA环境配置,每一步都充满挑战。本文以工程实践视角,梳理外接RTX显卡的完整流程、常见故障与性能瓶颈,并探讨其在边缘计算、AI推理等场景下的真实价值,帮助你理性评估这一实验性方案的可行性与替代路径。

chubaisheng8627的博客 351

MicroPython函数优化:嵌入式开发中的高效设计与内存管理实践

在嵌入式系统开发中,函数作为代码复用的核心单元,其设计直接影响程序性能和资源利用率。MicroPython作为Python在微控制器上的精简实现,其函数机制在资源受限环境下展现出独特特性。理解函数调用栈、参数传递机制及内存管理原理,对于优化嵌入式应用至关重要。通过合理设计函数接口、控制内存分配,开发者能够提升代码执行效率并降低功耗。在物联网设备、传感器数据处理等场景中,高效的函数设计能显著改善响应速度和稳定性。本文聚焦MicroPython函数优化,深入探讨参数传递的陷阱、内存泄漏风险及内置高效函数的使用,

weixin_30546189的博客 332

PLL锁相环基础知识(一)

本文介绍了锁相环(PLL)的核心组件及其工作原理,重点阐述了压控振荡器(VCO)的结构与调谐机制。VCO作为PLL的关键部分,通过变容二极管实现频率调谐,但易受温度、电压等因素影响稳定性。文章详细讲解了VCO的谐振电路原理、硅基集成方案,以及通过分频器和调制器实现的频率控制技术。特别分析了整数型和分数型N分频器的差异,指出高阶德尔塔-西格玛调制器可有效降低分数杂散。文章还探讨了预分频器的应用及其对频率分辨率的影响,揭示了PLL通过反馈环路实现频率锁定的基本原理。

weixin_49761275的博客 3035

Python嵌入式开发实战:从MCU到嵌入式Linux的选型与避坑

嵌入式开发并非单一技术点,而是一个包含MCU裸机、嵌入式Linux和异构SoC的分层生态。Python作为解释型语言,虽然无法在底层固件和实时中断场景取代C/Rust,却在MicroPython驱动的ESP32、RP2040等低功耗节点,以及树莓派、RK3568等嵌入式Linux平台上展现出强大的应用层优势。理解其原理与性能边界,才能发挥Python在设备控制、协议解析、边缘计算中的快速开发价值;结合GPIO操作、硬件解码调度、授权管理等工程实践,可显著缩短物联网产品落地周期。本文基于真实项目经验,梳理Py

weixin_29171129的博客 304

Rocky Linux 9 离线环境Docker部署全攻略:从依赖打包到服务启动

本文详细介绍了在Rocky Linux 9纯离线环境中部署Docker的完整流程。从在联网环境精准下载Docker静态二进制包及所有系统依赖RPM包,到在隔离服务器上按顺序安装依赖、部署二进制文件、配置systemd服务并进行权限与网络调优,提供了从零到一的可复现实战指南。文章重点解决了离线部署的核心难题,并分享了搭建私有镜像仓库等进阶技巧,是运维人员在严格网络管控环境下部署容器服务的必备参考。

pytorchlight8的博客 138

ICESat-2数据下载及处理分析随笔

ICESat-2全称是Ice,Cloud and land Elevation Satellite -2。看名字我们能知道它的任务是测ice,cloud和land elevation,而且这是一个Satellite,是一颗卫星。那么这里我们就要分清ICESat-2和ATLAS的关系,ICESat-2是星载平台,是一个space observatory,ATLAS是这个星载平台上搭载的单光子激光雷达系统。

u011322358的博客 1万+

MicroPython条件判断与循环实战:嵌入式开发流程控制核心解析

在嵌入式系统与物联网开发中,程序流程控制是实现设备智能决策与自动化任务的核心基础。其原理在于通过条件判断(如if/else)和循环结构(如while/for),使微控制器能够根据传感器输入或内部状态做出不同响应,并高效执行重复操作。这项技术的核心价值在于,它能将简单的硬件转化为可感知环境、自主运行的智能节点,是构建状态机、实现非阻塞多任务以及优化资源受限系统性能的关键。在ESP32、RP2040等热门开发板的实际应用场景里,无论是实现智能浇花系统的土壤湿度判断与定时检查,还是构建带软件去抖的按钮轮询与多传感

weixin_34034261的博客 372

【YOLOv10[基础]】热力图可视化实践③ | 热力图脚本升级 | 优化可视化效果 | 论文必备 | GradCAMPlusPlus, GradCAM, XGradCAM, EigenCAM等

热力图可视化实践③ | 热力图脚本升级 | 优化可视化效果 | 论文必备 | 遥遥领先

静谧、淡雅 3221

终极MicroPython调试指南:从REPL交互到断点调试的完整技巧

MicroPython是一款专为微控制器和受限系统设计的精简高效Python实现,它让开发者能够在资源有限的嵌入式设备上轻松编写和运行Python代码。本文将分享一套完整的MicroPython调试技巧,帮助你快速定位和解决代码问题,提升开发效率。 [![MicroPython调试环境](https://raw.gitcode.com/gh_mirrors/mi/micropython/raw/

gitblog_00119的博客 997

到底什么是指令集?什么是微架构?他们是什么关系?

指令集、处理器架构、芯片厂商、ARM、x86,其间关系还在迷糊吗?一文迅速理清!!

车载系统攻城狮 7813

【ATC/DTC方法第一期】经典平均/昼夜温度周期ATC/DTC方法介绍(含Python代码实现)

【ATC/DTC方法第一期】经典平均/昼夜温度周期ATC/DTC方法介绍(含Python代码实现)

WW、forever的博客 484

XIAO RP2040对比树莓派Pico:微型嵌入式开发板选型与实战指南

在嵌入式系统与物联网开发领域,微控制器选型是项目成功的关键基础。RP2040作为一款高性能双核Cortex-M0+芯片,以其灵活的PIO(可编程IO)和丰富外设成为热门选择。其技术价值在于平衡了性能、功耗与成本,特别适用于传感器数据采集、电机控制和通信协议实现等场景。基于RP2040的开发板形态多样,其中XIAO RP2040通过极致的小型化设计,将核心功能浓缩在邮票孔模块中,为可穿戴设备和紧凑型控制器提供了全新的硬件基石。本文聚焦于XIAO RP2040与树莓派Pico的对比,从物理尺寸、引脚布局到实际项

weixin_30254435的博客 292

精雕软件(JDpaint) 5.5 绿色版

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

从GPIO控制到MicroPython实践:双LED闪烁项目入门指南

GPIO(通用输入输出)是嵌入式系统与外部设备交互的基础接口,通过控制引脚的高低电平实现数字信号输出。其工作原理基于微控制器的引脚驱动能力,能够直接连接LED、传感器等外设。在物联网和智能硬件开发中,GPIO控制是实现设备感知与执行的核心技术,广泛应用于智能家居、工业自动化等场景。本文以ESP32开发板和MicroPython为例,结合**限流电阻**计算与**共阴极接法**电路设计,详细讲解如何通过代码独立控制多个GPIO引脚,完成双LED交替闪烁的实践项目,帮助初学者建立嵌入式开发的基础认知。

weixin_33713350的博客 396

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

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

OpenIOE MicroPython IDE V1.6 发布!

OpenIOE MicroPython IDE V1.6 发布!OpenIOE IDE是一款为与物联网软硬件开发的一体化IDE,目前侧重于设备端 MicroPython C51 设计,目前支持 Windows 系统。 最新版本集成非常多的功能。是开发MicroPython绝无仅有的利器。下载地址 http://openide.celerstar.com/...

赛灵社区官方博客 1518

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Raspberry Pi Pico实战指南:从微控制器到物联网应用开发

微控制器作为嵌入式系统的核心,通过直接控制硬件执行特定任务,在物联网和智能设备领域发挥着关键作用。其工作原理基于处理器、内存和输入输出接口的协同,开发者通过编写固件实现底层硬件操作。在技术价值上,微控制器以低成本、低功耗和高可靠性,成为连接物理世界与数字世界的桥梁。常见的应用场景包括传感器数据采集、执行器控制和物联网节点部署。本文聚焦Raspberry Pi Pico,这是一款基于RP2040芯片的微控制器开发板,以其双核架构和独特的可编程IO(PIO)特性,在物联网原型开发中表现出色。通过MicroPyt

296

10个最佳Python电子工程工具:电路设计与信号处理完整指南

Python在电子工程领域已经成为不可或缺的工具,从简单的电路设计到复杂的信号处理,Python都能提供强大的支持。如果你正在寻找高效的电子工程开发工具,那么这个终极指南将为你展示10个最实用的Python工具,帮助你在电子工程项目中取得突破性进展!🚀 ## 为什么选择Python进行电子工程开发? Python以其简洁的语法和丰富的库生态系统,在电子工程领域展现出巨大优势。无论是硬件控制、

gitblog_01072的博客 436
上一篇: FoFa 查询工具
下一篇: 网络基础之IP地址和子网掩码(非常详细)零基础入门到精通,收藏这一篇就够了
网络安全大白
博客等级 码龄5年 7305粉丝 698原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值