树莓派5开发环境配置与VSCode远程调试实战

安装 树莓_树莓派安装VScode(最新版) 在本教程中,我们将完成将可视化工作室代码 (VS 代码) 安装到树莓派的步骤。Visual Studio 代码是您可以在树莓派上运行的最佳代码编辑器之一。代码编辑器包含许多功能,包含您放心地在设备上编写代码所需的一切内容。除了 Visual Studio 代码烘焙功能外,还有大量附加组件可用于进一步扩展其功能。最重要的是,树莓派上的 Visual Studio 代码由开发团队正式支持。这种官方支持... 阅读详情

1. 初始安装与环境准备

树莓派5到手后第一件事就是系统安装和基础配置。我建议直接从树莓派官网下载最新的Raspberry Pi OS(64位版本),这个版本对树莓派5的优化更好,性能提升明显。用Raspberry Pi Imager工具烧录镜像时有个小技巧:按住Ctrl+Shift+X可以提前配置Wi-Fi、开启SSH并设置主机名,这样烧录完插卡就能直接无线连接,省去接显示器的麻烦。

记得第一次烧录时遇到SD卡无法格式化的问题,后来发现是Windows磁盘保护机制作祟。解决办法是用管理员权限打开CMD,执行diskpart命令清理磁盘:

diskpart
list disk
select disk 2  # 根据实际磁盘号选择
attributes disk clear readonly
clean

1.1 系统初始化与远程访问

系统启动后建议立即扩容文件系统,执行sudo raspi-config选择"Advanced Options"→"Expand Filesystem"。接着配置VNC方便远程桌面操作:

sudo apt update
sudo apt install realvnc-vnc-server
sudo raspi-config  # 在Interfacing Options中启用VNC

VNC Viewer的直连功能很实用,输入树莓派IP就能远程控制桌面环境,比HDMI线方便多了。

1.2 软件源优化与基础工具

国内用户一定要换源,否则安装软件慢到怀疑人生。推荐使用中科大源,手动修改比一键工具更可靠:

sudo nano /etc/apt/sources.list
# 替换为:deb https://mirrors.ustc.edu.cn/raspberrypi/ bullseye main
sudo nano /etc/apt/sources.list.d/raspi.list
# 同样替换中科大源

换源后安装基础开发套件:

sudo apt install -y git python3-pip python3-venv
sudo apt install -y build-essential cmake pkg-config  # 编译工具链

1.3 硬件专用库安装

树莓派最大的优势就是GPIO控制,必须安装硬件操作库:

sudo apt install -y python3-rpi-lgpio python3-gpiozero

对于计算机视觉项目,AprilTag库是必备的:

pip3 install pyapriltags

这里有个坑:系统自带的pip可能版本较旧,需要先升级pip再安装第三方包。

1.4 系统备份与恢复

树莓派系统崩了是常事,一定要做好备份。推荐使用PiShrink制作压缩镜像:

wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh
chmod +x pishrink.sh
sudo mv pishrink.sh /usr/local/bin/

备份整个SD卡到外接硬盘:

sudo dd if=/dev/mmcblk0 of="/media/pi/MyPassport/backup.img" bs=4M status=progress
sudo pishrink.sh -z "/media/pi/MyPassport/backup.img"

实测64GB卡压缩后只有3GB左右,节省大量存储空间。恢复时用Imager写入压缩后的镜像即可,自动扩容到整个SD卡。

2. OpenCV开发环境搭建

在树莓派上装OpenCV是个老大难问题,直接用pip安装经常报错。最关键的是要用虚拟环境,否则会把系统搞得一团糟。

2.1 虚拟环境配置

先安装虚拟环境工具并创建独立环境:

sudo apt install -y python3-venv
python3 -m venv ~/opencv_env
source ~/opencv_env/bin/activate

激活环境后提示符会显示"(opencv_env)",这时所有操作都在隔离环境中进行。升级pip后安装OpenCV:

pip install --upgrade pip setuptools wheel
pip install opencv-contrib-python-headless

为什么用headless版本?因为服务器环境不需要GUI功能,体积小且依赖问题少。实测安装时间从2小时缩短到15分钟。

2.2 功能完整性验证

安装后写个测试脚本验证基础功能:

import cv2
print(cv2.__version__)

# 检查视频编解码支持
print("FFMPEG support:", cv2.videoio_registry.getBackendName(cv2.CAP_FFMPEG))

摄像头测试代码:

cap = cv2.VideoCapture(0)
if not cap.isOpened():
    print("摄像头无法打开")
else:
    print("摄像头准备就绪")
    cap.release()

遇到摄像头不工作的情况,多半是权限问题,添加用户到video组即可:

sudo usermod -a -G video $USER

2.3 Conda替代方案

如果项目需要多版本Python,推荐用Miniforge代替虚拟环境:

wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh
bash Miniforge3-Linux-aarch64.sh
conda create -n opencv python=3.9
conda activate opencv
conda install -c conda-forge opencv

Conda的优势是能自动解决依赖冲突,特别适合复杂项目。不过会占用更多磁盘空间,根据需求选择就好。

3. VSCode远程开发实战

这是我最推荐的开发方式,用本地电脑的VSCode远程连接树莓派,既能享受本地IDE的流畅体验,又能直接在高性能电脑上调试代码。

3.1 远程连接配置

首先确保树莓派开启SSH服务:

sudo systemctl enable ssh
sudo systemctl start ssh

在Windows电脑安装VSCode的Remote-SSH扩展,然后配置SSH连接:

Host raspberrypi5
    HostName 192.168.1.100  # 树莓派IP
    User pi
    IdentityFile ~/.ssh/pi_rsa  # 可选密钥认证

建议配置密钥登录避免每次输入密码:

ssh-keygen -t rsa  # 本地生成密钥
ssh-copy-id pi@192.168.1.100  # 复制公钥到树莓派

3.2 图形界面转发

OpenCV需要显示窗口,配置X11转发实现GUI远程显示。Windows端需要安装XLaunch(VcXsrv),启动时选择"Disable access control"。

树莓派端配置SSH支持X11转发:

sudo nano /etc/ssh/sshd_config
# 确保包含:
X11Forwarding yes
X11DisplayOffset 10
sudo systemctl restart ssh

测试X11转发功能:

ssh -Y pi@192.168.1.100
xeyes  # 应该能看到眼睛窗口

如果看不到图形,检查防火墙设置和XLaunch配置。

3.3 远程调试技巧

在VSCode中打开远程文件夹后,安装Python扩展即可享受完整开发体验。推荐配置调试启动文件:

{
    "name": "Python: 当前文件",
    "type": "python",
    "request": "launch",
    "program": "${file}",
    "console": "integratedTerminal",
    "env": {
        "DISPLAY": "localhost:10.0"
    }
}

这样每次调试都会自动设置DISPLAY变量。实测OpenCV窗口延迟只有几十毫秒,操作体验接近本地。

4. 系统服务与自启动管理

项目部署时需要程序开机自启动,systemd是最可靠的方案。

4.1 创建系统服务

以OpenCV摄像头服务为例,创建服务文件:

sudo nano /etc/systemd/system/opencv_service.service

写入以下配置:

[Unit]
Description=OpenCV Camera Service
After=network.target graphical.target

[Service]
Type=simple
User=pi
Environment=DISPLAY=:0
Environment=PYTHONPATH=/home/pi/opencv_env/lib/python3.9/site-packages
ExecStart=/home/pi/opencv_env/bin/python /home/pi/camera_service.py
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

关键点是设置DISPLAY环境变量和Python路径,否则无法显示窗口和导入库。

4.2 服务管理与调试

启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable opencv_service
sudo systemctl start opencv_service

查看服务状态和日志:

systemctl status opencv_service
journalctl -u opencv_service -f  # 实时日志

如果服务启动失败,重点检查权限问题和环境变量。有个常见坑:在虚拟环境中运行需要写绝对路径到解释器。

4.3 远程监控与维护

系统稳定运行后还需要远程监控,推荐安装并配置Prometheus和Grafana:

# 安装Node Exporter监控系统资源
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-arm64.tar.gz
tar xvf node_exporter-1.3.1.linux-arm64.tar.gz
sudo mv node_exporter-1.3.1.linux-arm64/node_exporter /usr/local/bin/

创建监控服务:

[Unit]
Description=Node Exporter
After=network.target

[Service]
User=pi
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target

这样就能在Grafana中实时查看树莓派的CPU温度、内存使用等情况,提前发现系统瓶颈。

经过这样一套完整配置,树莓派5就变成了强大的嵌入式开发平台。我实际项目中跑过多个计算机视觉模型,性能完全满足原型开发需求。最关键的是随时可以远程调试,再也不需要抱着显示器和键盘折腾了。

从零到一:树莓派5无屏开发环境搭建与VSCode远程调试实战 本文详细介绍了树莓派5无屏开发环境的完整搭建流程,包括系统烧录、网络配置、SSH与VNC远程访问,以及VSCode远程调试的实战步骤。通过优化系统设置和依赖安装,实现高效的无头模式开发,特别适合嵌入式开发和教育场景。 阅读详情

相关推荐

树莓派系统入门教程(三)—— 使用Windows上的VSCode远程连接树莓派进行Python开发

很多开发者更喜欢在大屏幕和强大的开发环境中编写代码,但同时他们希望能在树莓派这样的微型计算机上执行和测试代码。VSCode提供了一个强大的远程开发工具,可以让你在Windows主机上编写代码,同时在树莓派上执行。VSCode的Remote - SSH扩展为开发者提供了一个非常强大的工具,使得你可以在喜欢的开发环境中编写代码,同时利用树莓派的硬件和软件环境进行测试和运行。现在,你应该已经成功地通过SSH连接到了你的树莓派。使用VSCode的远程开发功能,你可以直接在树莓派上运行调试,非常方便。

qq_41866091的博客 2979

使用XStream需注意的问题

         这些问题是我在实际工作中遇到的,遇到一个问题就记一个问题,因为我这人脑子不太好,过段时间就会想不起来怎么解决了。(一) 类的继承关系,在转化为xml时,父类节点应添加class属性,指明当前是哪个子类继承了它,否则在由xml转化为Object时会出错,因为XStream并不知道该把当前节点实例化为哪种类型。 (1)一个抽象类 Animal.javapackage 

hbcui1984的专栏 1万+

VSCode远程连接树莓派:打造无缝嵌入式开发环境

在嵌入式开发和物联网项目中,远程开发环境搭建是提升效率的关键环节。SSH(Secure Shell)协议作为远程访问的基石,通过加密隧道实现安全可靠的命令行连接。结合现代集成开发环境(IDE),开发者可以在本地使用强大的编辑和调试工具,同时在目标硬件上执行代码,有效解决了开发环境与运行环境分离的痛点。Visual Studio Code(VSCode)凭借其轻量化和高扩展性,通过Remote - SSH扩展将这一理念工程化,实现了代码智能感知、集成终端和端口转发等核心功能。这种模式特别适用于树莓派等资源受限

weixin_30363509的博客 595

树莓派5-vscode安装

Download Visual Studio Code - Mac, Linux, Windows 包: 包: 安装包: 所以我这里选择的是包—arm64、并将下好的code_1.87.0-1709077383_arm64.deb传到树莓派的/Downloads。系统配置必要的环境,以便于安全地从Microsoft的官方仓库中安装适用于ARM64架构的Visual Studio Code编辑器等软件 更新系统的软件包列表,确保获取到最新的软件包信息。 安装curl和gpg工具。curl是一个用于

chen_0717的博客 8172

树莓派5从零到一:VSCode远程开发与systemd服务部署实战

本文详细介绍了树莓派5从开箱到VSCode远程开发与systemd服务部署的全流程实战指南。内容包括基础配置、开发环境搭建、VSCode远程调试技巧以及systemd服务化部署方案,帮助开发者高效利用树莓派5的强大性能进行项目开发。特别针对树莓派5的硬件特性提供了优化建议和实测数据。

weixin_28738397的博客 359

VSCode Remote-SSH连接树莓派5开发环境配置指南

SSH(Secure Shell)是一种加密网络协议,广泛用于远程登录和安全文件传输。通过SSH协议,开发者可以在本地计算机上安全地访问和操作远程服务器。VSCode的Remote-SSH插件将这一能力集成到IDE中,实现了远程开发的无缝体验。这种方法特别适合物联网开发场景,如在树莓派5上进行Python应用开发时,可以充分利用VSCode的代码补全、调试工具等特性,显著提升开发效率。本文详细介绍如何配置VSCode Remote-SSH连接树莓派5,包括SSH服务检查、连接配置、性能优化等实用技巧,帮助开

weixin_28828243的博客 303

树莓派5安装VScode迎接2024年元旦节

2023年岁末的晚上,好友遇到Debian 12 Bookworm 中 Python 安装好虚拟环境用 Thonny IDE不能运行程序的问题。当场解决的办法是激活。

weixin_41589183的博客 939

Python Miniforge3配置[代码]

本文详细介绍了如何在Windows系统下配置Python Miniforge3环境。首先从清华大学开源软件镜像站下载最新版本的Miniforge3,并选择指定路径安装。安装完成后,需要设置环境变量,添加Miniforge3的安装路径。接着,通过命令行检查mamba版本和默认环境,创建一个新的mamba环境,并使用清华大学的镜像源安装dash库。最后,通过Python shell检查dash库是否安装成功。整个过程涵盖了从下载安装到环境配置的完整步骤,适合需要快速搭建Python开发环境的用户参考。

在Linux下使用VSCode开发python3.6的环境配置及一些坑

听说最近python很火,火到不行。 操作系统: 我使用的是CentOS7.2-x64系统,类似的版本都差不多。 开撸: 1. 安装vscode 去https://code.visualstudio.com/下载rpm包,丢到系统里安装。完成后右键open in terminal执行 code 启动vscode。 2. 安装vscode-python

Encoder的博客 2万+

Windows如何使用Anaconda 3进行keras环境的配置

** Windows如何使用Anaconda 3进行keras环境的配置 搭建Keras环境* Anaconda3如何安装keras,主要包括下面三步: 1.安装mingw libpython 2.安装theano 3.安装keras 若你还没有按装anaconda,赶紧下载安装吧! 下载途径有两个 (1)Anaconda版本为Anaconda 4.4.0,对应的python版本为3.6,附上An...

Lance_liangliang的博客 1602

鱼眼相机去畸变(图像拉直/展开/矫正)算法及实战总结

1、算法说明经纬度矫正法, 可以把鱼眼图想象成半个地球, 然后将地球展开成地图,经纬度矫正法主要是利用几何原理, 对图像进行展开矫正。经过P点的入射光线没有透镜的话,本应交于相机成像平面的e点。然而,经过鱼眼相机的折射,光线会交于相机成像平面的d点,就产生了畸变,因此畸变图像整体上呈现出像素朝图像中心点聚集的态势。而去畸变,就是将折射到d点的点,重新映射回到e点,因此去畸变之后的图像与原始的鱼眼图像相比,仿佛是把向心聚集的像素又重新向四周铺展开来。AVM环视系统——鱼眼相机去畸变算法 - 知乎。

大胡子大叔的专栏 2万+

树莓派5开发环境搭建与远程调试全攻略

本文介绍了树莓派5的环境配置与开发环境搭建全流程。首先详述了系统镜像烧录、VNC配置及SD卡故障处理方法,接着介绍了换源工具chsrc的使用和基础依赖库的安装。重点讲解了OpenCV-Python的安装方法,包括虚拟环境配置和功能测试。此外,还提供了VSCode远程开发环境的搭建指南,涵盖Windows端的X Server配置和SSH连接设置。最后介绍了镜像备份压缩工具PiShrink的使用方法,帮助开发者高效管理树莓派系统镜像。

weixin_73987691的博客 2085

LangChain面试内容整理-知识点27:LangChain性能调优

LLM应用可能面临响应慢、成本高等性能问题。LangChain提供了一些优化方法和经验来提升性能和效率。

不务正业的猿 328

树莓派与VSCode远程开发环境高效配置实战

本文详细介绍了如何高效配置树莓派与VSCode远程开发环境,涵盖硬件选购、SSH优化、VSCode扩展安装及开发环境配置等关键步骤。通过实战案例和性能优化方案,帮助开发者提升物联网和嵌入式项目的开发效率,实现流畅的远程开发体验。

gg901的博客 899

把 NAST 变成你的遥控器:用 ABAP 程序精确触发与处理 Output Type

摘要 SAP中的Message Control机制通过NAST表记录输出状态,支持自动触发打印、邮件等操作。关键步骤包括: 构造NAST记录:定义输出类型、介质、处理状态等参数 调用处理函数:使用RV_MESSAGE_UPDATE_SINGLE更新表,通过WFMC_MESSAGES_PROCESS执行输出 典型应用场景: 单据补发(如PO邮件重发) 外部系统集成触发输出 故障恢复处理积压消息 注意事项: 需提交事务确保更新生效 区分S/4HANA新旧输出体系 正确处理派发时间(VSZTP)和状态(VSTAT

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 261

QT编程之OSG

OSG(OpenSceneGraph)与Qt的集成为开发3D可视化应用提供了一个强大的平台。Qt提供了图形用户界面(GUI)工具,而OSG负责高效的3D渲染和场景管理。通过将OSG嵌入Qt应用程序中,开发者可以实现丰富的用户界面与复杂的3D渲染效果的结合。

深之JohnChen的专栏 1601

树莓派5高效开发:VSCode远程调试与自动化部署实战

本文详细介绍了树莓派5的高效开发实践,重点讲解VSCode远程调试与自动化部署流程。涵盖系统配置优化、SSH安全设置、VNC远程桌面应用,以及Docker容器化开发和Git钩子自动化部署,帮助开发者构建稳定高效的树莓派开发环境。

h0i1j2k3l的博客 752

Altium Designer(AD24/25)PCB编辑的几种方法介绍

本文介绍了Altium Designer(AD24/25)软件中PCB编辑的四种操作方法:1)通过菜单栏"Place→Component"激活;2)点击工具栏元器件图标;3)右键快捷菜单选择;4)快捷键P+C组合操作。建议初学者先通过菜单栏和快捷菜单熟悉操作,熟练后转为工具栏和快捷键以提高效率。文章配有操作示意图,帮助用户快速掌握PCB元器件放置技巧。

fydar的博客 947

VSCode与树莓派开发平台搭建完全指南

通过本指南,您已经了解了如何使用VSCode与树莓派构建一个高效的开发环境。从初始设置到实际项目开发,再到性能优化和常见问题解决,本指南涵盖了开发过程中的各个方面。树莓派与VSCode的结合为IoT开发、物理计算和嵌入式系统编程提供了一个强大而灵活的平台。随着经验的积累,您可以开发出越来越复杂和有趣的项目。

小宝哥Code的专栏 5825

【异常】Claude Code 400错误(Extra inputs are not permitted)解决方案

摘要:Claude Code 2.0.37+版本因API请求包含未支持的custom.input_examples参数导致400错误,使核心功能失效。解决方案是降级至稳定版v2.0.32:先卸载当前版本(npm uninstall -g @anthropic-ai/claude-code),再安装指定版本(npm install -g @anthropic-ai/claude-code@2.0.32),最后验证请求是否恢复正常。该问题确认在v2.0.32版本不存在。(148字)

奶爸的编程之路,也就一周冷个三天 2041

一分钟了解OpenSpec (规格)

OpenSpec是由Fission AI开源的轻量级规范驱动开发(SDD, Spec-Driven Development)CLI工具。它专为AI编程助手(如Cursor、Claude Code)设计,核心是**“先约定,后编码”:在AI写代码前,先通过结构化规范文档达成共识,让开发过程可预测、可审计、可协作**。轻量无侵入:单CLI、无依赖、不改造项目、1分钟接入存量友好:增量Spec、不重构旧文档、1→n王者完全可控:每步审查、AI按图施工、零返工协作利器。

h a 6 6 6 c k 为 你解决复杂难题! 2763

使用VSCode对树莓派远程C++调试

使用VSCode对树莓派远程C++调试

PaguC的博客 3095

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

在VSCode上使用gdb,gdbServer远程调试树莓派程序

使用gdb和gdbserver在VSCode上远程调试

HappyEventKing的博客 1746

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

假人有限元模型

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

树莓派5系统配置与VSCode远程开发一站式指南

本文提供树莓派5系统配置与VSCode远程开发一站式指南,涵盖从官方系统烧录、国内源配置、Python虚拟环境搭建到OpenCV安装。重点讲解如何通过VSCode Remote-SSH插件实现远程调试和开发环境搭建,并详细介绍使用systemd管理自启动服务的最佳实践,助力开发者高效利用树莓派5进行项目开发。

kkk56的博客 680

VScode远程连接树莓派

本文简要介绍了VScode远程连接树莓派的方法,读者可参照本文步骤,使用VScode远程连接树莓派亦或是服务器

qq_57270297的博客 949
上一篇: 电机控制_STM32系列实战选型指南:从FOC性能到成本优化
下一篇: Nuclei N200系列中断机制深度解析:从CLIC到ECLIC的设计与优化
sql99
博客等级 码龄19年 168粉丝 1905原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值