【程序员必备技能】:3步搞定VSCode左右分屏高效协作模式

分享六个 Vue3 开发必备的 VSCode 插件 今天分享的 6 个插件,大家可以按需安装使用。我比较强烈推荐实用Volar 和Vue VSCode Snippets 这 2 个插件。 阅读详情

第一章:VSCode分屏编辑的核心价值

在现代软件开发中,高效利用屏幕空间和提升多任务处理能力是提高编码效率的关键。VSCode 提供了强大的分屏编辑功能,使开发者能够同时查看和编辑多个文件,极大优化了代码导航与上下文对照的工作流。

提升代码对比与协作效率

分屏编辑允许开发者将同一项目中的不同文件并排展示,便于快速比对逻辑差异或进行函数调用追踪。例如,在调试时可将主逻辑文件与配置文件同时打开,实时核对参数传递是否正确。

操作方式与快捷指令

可通过以下方式实现分屏:
  1. 右键文件标签,选择“在侧边打开”
  2. 使用快捷键 Ctrl+\(Windows/Linux)或 Cmd+\(macOS)快速拆分当前编辑器
  3. 拖拽文件标签至编辑器区域边缘以手动布局

支持多种布局模式

VSCode 支持横向与纵向分屏,并可组合成复杂的多窗格布局。用户可通过菜单栏的“视图 → 编辑器布局”自定义结构,如“上下分屏”、“左右分屏”或“网格布局”。

实际应用场景示例

在开发前端组件时,常需同时编辑模板与样式文件。通过分屏,可将 .vue 或 .tsx 文件与对应的 .css 文件并列显示,避免频繁切换标签带来的上下文丢失。
// 示例:React 组件与其样式同步编辑
import React from 'react';
import './Button.css'; // 对应右侧分屏打开的 CSS 文件

function Button() {
  return <button className="primary">点击我</button>;
}
export default Button;
布局类型适用场景
左右分屏代码与文档对照阅读
上下分屏长文件分段编辑
四宫格布局多文件协同开发

第二章:分屏模式的基础操作与配置

2.1 理解VSCode多窗格布局的设计理念

VSCode的多窗格布局旨在提升开发者在复杂项目中的上下文管理能力,通过空间分割实现并行操作,显著提高编辑、预览与调试的协同效率。
布局结构与用户意图匹配
多窗格设计遵循“视图即工作流”的理念,允许用户根据任务逻辑划分界面。例如,左侧浏览文件结构,右侧并排查看两个源码文件,底部保留终端输出。
常用布局模式示例
  • 横向双窗格:对比不同版本代码
  • 垂直拆分:同时编辑组件及其样式文件
  • 三窗格组合:代码 + 预览 + 控制台输出
{
  "workbench.layout.enabled": true,
  "window.splitInGroupLayout": "horizontal"
}
上述配置启用布局功能,并设置新编辑器默认水平拆分。参数 splitInGroupLayout 支持 vertical 与 horizontal,直接影响窗格扩展方向。

2.2 快速实现左右分屏的三种方法

在现代前端开发中,左右分屏布局广泛应用于编辑器、对比工具等场景。以下是三种高效实现方式。
1. 使用 CSS Flexbox 布局

.container {
  display: flex;
  width: 100%;
  height: 100vh;
}
.left, .right {
  flex: 1;
  padding: 20px;
}
该方法通过 display: flex 将容器设为弹性布局,flex: 1 实现两栏等宽自适应,结构简洁且响应式良好。
2. 利用 CSS Grid 网格布局
属性说明
grid-template-columns定义两列等宽分布
gap设置列间距

.container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  height: 100vh;
}
Grid 布局更适用于复杂二维结构,此处通过 1fr 1fr 平分容器宽度,语义清晰。
3. 浮动布局(传统方案)
  • 兼容旧浏览器
  • 需清除浮动以防止塌陷
  • 响应式适配较复杂

2.3 自定义分屏窗口的初始布局策略

在多视图界面设计中,分屏窗口的初始布局直接影响用户体验。合理的布局策略应基于屏幕尺寸、用户偏好和功能优先级进行动态配置。
布局模式选择
常见的初始布局模式包括均分型、主从型和自适应型:
  • 均分型:左右或上下视图各占50%
  • 主从型:主视图占70%,辅视图占30%
  • 自适应型:根据内容自动调整比例
代码实现示例

// 初始化分屏布局
function initSplitLayout(mode = 'primary-secondary') {
  const container = document.getElementById('split-container');
  if (mode === 'primary-secondary') {
    container.style.gridTemplateColumns = '70% 30%'; // 主从比例
  }
}
该函数通过设置 CSS Grid 的 gridTemplateColumns 属性,实现主从式布局。参数 mode 支持扩展多种预设模式,便于后续动态切换。
配置优先级表
场景推荐模式比例分配
代码编辑器主从型70%/30%
文件对比均分型50%/50%

2.4 分屏后文件打开与拖拽的最佳实践

在多窗口协同工作场景中,分屏后的文件操作效率直接影响开发体验。合理利用系统级拖拽事件与编辑器响应机制,可显著提升交互流畅度。
拖拽事件监听与数据解析
// 监听拖拽进入分屏区域
element.addEventListener('dragover', (e) => {
  e.preventDefault();
  e.dataTransfer.dropEffect = 'copy';
});

// 处理文件投放
element.addEventListener('drop', async (e) => {
  e.preventDefault();
  const files = e.dataTransfer.files;
  for (let file of files) {
    await openFileInPane(file, targetPane);
  }
});
上述代码通过阻止默认行为并设置允许的拖拽效果,确保文件可被正确投放。`dataTransfer.files` 获取原生文件对象,逐个分发至目标窗格进行异步加载。
推荐操作流程
  • 优先使用鼠标中键或右键拖入以触发预览模式
  • 投放前确认目标窗格已激活且具备读取权限
  • 批量操作时建议启用延迟渲染,避免界面卡顿

2.5 利用快捷键高效切换焦点面板

在现代集成开发环境(IDE)和代码编辑器中,熟练掌握快捷键是提升开发效率的关键。通过预设的键盘组合,开发者可在不同功能面板间快速切换,避免频繁依赖鼠标操作。
常用焦点切换快捷键
  • Ctrl + Tab:在多个打开的面板或标签页之间循环切换;
  • Ctrl + \:显示或隐藏侧边栏(如项目资源管理器);
  • F12:跳转到定义所在面板,实现上下文快速定位。
自定义快捷键配置示例
{
  "key": "ctrl+shift+p",
  "command": "workbench.action.focusPanel",
  "when": "editorFocus"
}
该配置将 Ctrl+Shift+P 绑定至聚焦面板命令,适用于需高频访问调试输出的场景。其中,when 条件确保仅在编辑器获得焦点时生效,避免冲突。 合理利用快捷键体系,可显著缩短界面操作路径,形成流畅的“手眼分离”编程节奏。

第三章:协同编辑中的工作流优化

3.1 对比查看代码文件的典型应用场景

在版本控制和协作开发中,对比查看代码文件是不可或缺的操作。通过差异分析,开发者能够快速识别变更内容,确保代码质量与一致性。
常见使用场景
  • 代码审查(Code Review):团队成员通过比对分支间的差异,评估逻辑修改是否合理
  • 合并冲突解决:当多个开发者修改同一文件时,需逐行对比以决定最终版本
  • 回归问题排查:通过对比历史版本,定位引入缺陷的具体更改
Git diff 示例

git diff HEAD~3 HEAD -- src/main.py
该命令展示最近三次提交中 `src/main.py` 文件的变化。参数 `HEAD~3` 表示当前提交的前三代祖先,`--` 分隔符用于明确路径参数,避免歧义。此操作适用于精确追踪特定文件的演进过程。

3.2 主辅编码模式下的分屏协作技巧

在主辅编码模式中,主开发者负责核心逻辑实现,辅助开发者同步审查并提供实时反馈。合理利用分屏布局可显著提升协作效率。
分屏布局策略
  • 左侧为主开发区,运行编辑器与调试工具
  • 右侧为辅开发区,展示代码审查注释与文档参考
  • 双屏共享同一版本控制终端,确保状态一致
实时同步配置示例
// VS Code Live Share 配置片段
{
  "liveshare.autoAcceptInvitations": false,
  "liveshare.followRequests": true,
  "liveshare.syncSettings": true
}
该配置确保辅助方能及时响应协作请求,同时保持设置同步,避免环境差异导致误解。
角色切换流程
[主开发者] → 提交功能分支 → [触发CI检查] → [辅开发者审查] → [角色互换迭代]

3.3 结合终端与调试器的双屏联动方案

在复杂系统调试中,将终端操作与图形化调试器分离至双屏显示,可显著提升开发效率。主屏运行 IDE 调试界面,副屏实时展示命令行输出与日志流,实现上下文并行观察。
数据同步机制
通过共享内存或本地套接字实现终端与调试器间的状态同步。以下为基于 WebSocket 的消息广播示例:

// 启动本地 WebSocket 服务
const wss = new WebSocket.Server({ port: 8081 });
wss.on('connection', (ws) => {
  ws.on('message', (data) => {
    // 将终端输入广播至所有调试器客户端
    wss.clients.forEach(client => client.send(data));
  });
});
该服务监听端口 8081,接收终端输入后推送至连接的调试器,确保断点状态与命令执行时序一致。
工作流布局建议
  • 左侧屏幕:集成终端 + 日志监控(tail -f)
  • 右侧屏幕:IDE 调试面板 + 变量观察窗口
  • 使用 tmux 分割终端区域,保留历史会话

第四章:高级功能与个性化定制

4.1 同步滚动与独立滚动模式的取舍

在实现多视图联动时,同步滚动与独立滚动成为关键设计决策。同步滚动确保多个内容区域保持视觉对齐,适用于对比查看场景;而独立滚动提供更高的操作自由度,适合信息密度差异大的布局。
典型应用场景
  • 同步滚动:代码编辑器与预览窗格
  • 独立滚动:仪表盘中不同尺寸的图表容器
性能权衡
模式响应性资源消耗
同步滚动高较高
独立滚动中低
实现示例

// 监听滚动事件并同步位置
elementA.addEventListener('scroll', () => {
  elementB.scrollTop = elementA.scrollTop; // 保持垂直对齐
});
上述代码通过监听源元素的 scroll 事件,将滚动偏移量复制到目标元素。需注意避免循环触发,可在更新时判断当前位置是否已同步,减少重排开销。

4.2 多显示器环境下分屏的扩展应用

在多显示器配置中,分屏技术不再局限于单屏分割,而是向跨屏协同、任务分区和动态布局演进。现代操作系统通过虚拟桌面与窗口管理器实现高效的空间利用。
跨屏窗口布局策略
常见布局包括主副屏模式、对称扩展模式和画中画模式。通过系统API或脚本可编程控制窗口位置:

# 将窗口移动至第二显示器(X11环境)
wmctrl -r "Chrome" -e 0,1920,0,960,1080
该命令将标题为“Chrome”的窗口移至起始坐标(1920,0)的副屏,宽度960px,高度1080px,适用于双1080p横向扩展场景。
自动化分屏工具集成
  • Windows:PowerToys Awake + FancyZones 实现自定义区域拖拽
  • macOS:Magnet 支持快捷键触发预设布局
  • Linux:i3wm 配合 xrandr 动态管理多屏输出

4.3 使用工作区设置保存分屏偏好

在多文件协同开发中,分屏布局能显著提升编码效率。通过工作区设置,可将编辑器的分屏状态持久化,确保每次打开项目时恢复至熟悉的界面布局。
配置工作区设置文件
VS Code 的工作区设置存储在 `.vscode/settings.json` 文件中。添加以下配置可保存当前编辑器的分屏状态:
{
  "workbench.editor.enablePreview": false,
  "window.splitInGroupLayout": "vertical",
  "editor.splitInGroupLayout": "horizontal"
}
上述配置中,`window.splitInGroupLayout` 控制新窗口的拆分方向,`editor.splitInGroupLayout` 定义编辑器内部的分屏方式。启用后,用户手动创建的分屏结构将在下次打开时自动还原。
工作区与全局设置的区别
  • 工作区设置仅作用于当前项目,避免影响其他项目的编辑环境;
  • 全局设置适用于所有打开的项目,灵活性较低;
  • 团队协作时,可将设置提交至版本控制,统一开发视图规范。

4.4 插件推荐:增强分屏体验的实用工具

现代操作系统中的分屏功能虽已较为完善,但借助第三方插件可显著提升多任务处理效率。以下推荐几款广受好评的实用工具。
FancyZones(Windows)
由 Microsoft PowerToys 提供的 FancyZones 允许用户自定义窗口布局,支持拖拽窗口至预设区域自动对齐。

{
  "customLayouts": [
    {
      "name": "Developer Dual",
      "zones": [
        { "x": 0, "y": 0, "width": 960, "height": 1080 },
        { "x": 960, "y": 0, "width": 960, "height": 1080 }
      ]
    }
  ]
}
上述配置定义了一个开发者专用双屏布局,左右各占一半屏幕宽度,适用于代码编辑与文档查阅场景。
Magnet(macOS)
Magnet 通过快捷键实现窗口快速分屏,支持将窗口拖拽至屏幕边缘触发四分之一、半屏或全屏布局。
  • 快捷键自定义:支持修改默认热键以适配个人习惯
  • 多显示器兼容:每个屏幕均可独立设置分屏规则
  • 系统资源占用低:后台运行几乎无感知

第五章:从分屏到高效编程的思维跃迁

重构你的开发工作区
现代IDE与终端工具支持高度定制化的分屏布局。将编辑器、调试控制台与文档查阅窗口并列展示,可显著减少上下文切换成本。例如,在 VS Code 中使用 `Ctrl+\` 拆分编辑器,并通过多光标功能批量修改变量名。
实战中的多任务协同
在实现 REST API 时,左侧屏幕编写 Go 处理函数,右侧运行 curl 测试请求,底部终端持续监听日志输出:

// 用户创建接口
func CreateUser(w http.ResponseWriter, r *http.Request) {
    var user User
    if err := json.NewDecoder(r.Body).Decode(&user); err != nil {
        http.Error(w, "无效JSON", http.StatusBadRequest)
        return
    }
    // 保存至数据库(此处省略)
    w.WriteHeader(http.StatusCreated)
}
提升信息密度的策略
  • 使用 tmux 分割窗格,持久化会话避免中断
  • 配置双屏:主屏编码,副屏显示架构图或数据库Schema
  • 启用 IDE 内联文档提示,减少跳转外部浏览器
自动化辅助决策
结合脚本监控代码变更并自动运行测试,利用分屏实时反馈结果:
操作命令目标窗口
监听文件变化inotifywait -m *.go底部终端
自动测试go test -run TestUser右侧窗格
[ 编辑区 ] │ [ 终端: 日志 ] ───────────┼────────────── [ 浏览器调试面板 ]
VScode神仙插件,程序员必备 程序员必备 阅读详情

相关推荐

双屏异显 完美code

基于 某方案的双屏异显全部code

vscode分屏和合并分屏快捷键

上面除了ctrl + \,其他快捷键都是我自定义的(我用起来最舒服)修改方法:输入编辑器,找到对于的命令进行快捷键修改即可。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 4970

论文阅读——Bayesian Knowledge Fusion(贝叶斯知识融合)

该篇论文解决了不确定环境中的信息融合问题。想象一下,有多位专家针对同一情况构建概率模型,我们希望汇总他们提供的信息。直接合并每个信息可能会遇到几个问题。例如,专家们可能不同意某个事件发生的概率,或者他们可能不同意两个事件之间因果关系的方向(例如,一个人认为 A 导致 B,而另一个人认为 B 导致 A)。他们甚至可能不同意概率网络中一组变量之间的整个依赖结构。

qq_64164071的博客 1497

VScode实现分屏显示浏览器(一边写前端代码一边可以实时查看结果)

写在开始前:闲来无事自己开发了一个网站,需要进行前端的开发,因为又是写代码又是打开浏览器的非常的不方便,于是找到了以下的方法 第1步 安装live server插件 第2步 在文件->设置->首选项->扩展中找到这款插件,然后如图一样勾选这个选项 第三步 安装browser preview这个插件 第四步 在你写代码的地方打开Open with Live Server就会出现下图的界面,代表完成配置 ...

liuyunye的博客 2万+

从数据到图片:手把手构建FMCW雷达人体行为识别数据集(行走、跌倒、喝水等6类动作)

本文详细解析了如何利用FMCW雷达构建人体行为识别数据集,涵盖行走、跌倒、喝水等6类动作。通过多普勒特征可视化、图像标准化处理和自动化流水线设计,将原始雷达信号转化为高质量时频图像数据集,为智能家居和健康监护等应用提供可靠数据支持。

weixin_30706691的博客 384

从UE4到Unity:双叶高光技术在角色皮肤渲染中的移植全流程

本文详细解析了将UE4中的双叶高光技术移植到Unity引擎的全流程。该技术通过模拟皮肤油脂层和真皮层的不同反射特性,能显著提升角色皮肤渲染的真实感。文章从核心原理、贴图资产处理、Shader代码重构到参数调校,提供了完整的跨引擎移植实战指南,帮助开发者实现高质量的皮肤质感还原。

alice7model的博客 478

VS code多个显示屏编辑同一个项目

问题描述 有时候写代码/论文时希望能够做到两个显示屏都显示这个project的代码,但VS code的Open Folder并不允许打开两个相同的Folder. 解决 参考:Vscode怎么分屏在两个独立窗口中? - 李永江的回答 - 知乎 ctrl + shift + P 输入下面内容即可 Workspace: Duplicate As Workspace in New Window ...

NLOS的博客 1万+

Voronoi算法构建多晶

孪晶多晶 采用孪晶的原子链作为种子通过voronoi算法可以得到孪晶多晶结构。 孪晶种子: txt文件不需要特殊设置 box 150 150 150 random 8 得到孪晶多晶: 通过改变孪晶种子的长度可以得到不同孪晶片层厚度的多晶。 准二维柱晶 所有晶粒在某一维度的晶向一致,晶粒仅在平面内具有旋转关系,所有晶界为旋转对称晶界,这种结构的多晶其位错滑移在某些方向受限,但是能极大的提高晶粒...

yamatachi的博客 5280

Vscode 最常用插件,very nice

VS Code的安装和常用插件 下载地址:https://code.visualstudio.com/ 进入官网,点击下载按钮,根据电脑系统进行下载 然后下载完成后,一直点下一步,下一步,进行安装即可,这里就不过多介绍了。 下面我来说一下,我在前端开发中觉得比较好用的一些插件吧 1.Chinese (Simplified) Language Pack 一个汉化的语言包,可以把vs的英文界面进行中文翻译,当然你英文很卧槽的情况下,几乎可以略过 2.HTML Snippets 智能提示HTML标签,以及标签含

weixin_45881749的博客 828

当知识图谱遇见多模态:突破文本界限的智能认知革命

本文探讨了知识图谱与多模态技术的融合,揭示了其在医疗诊断、文化保护等领域的革命性应用。通过图神经网络、对比学习框架和跨模态注意力机制等技术,实现了文本、图像和音频数据的智能关联与认知。文章还分享了在Neo4j等图数据库中的实践案例和优化策略,为构建下一代智能认知系统提供了技术参考。

weixin_29197835的博客 463

红外气体检测方案解析:从NDIR原理到物联网终端设计实践

气体检测是工业安全与环境监测的核心需求,其技术原理主要基于气体分子对特定物理或化学信号的响应。非色散红外(NDIR)技术作为一种物理检测方法,通过测量气体分子对特定波长红外光的吸收来定量浓度,因其不依赖化学反应,具备寿命长、抗干扰强和响应快等优势。在工程实践中,红外气体检测方案的价值在于为物联网终端设备提供了高可靠、低功耗的感知能力,广泛应用于工业过程监控、环境空气质量监测以及智能家居安全预警等场景。本文以一套集成了Microchip MCU、Axetris红外光源和Pyreos热释电传感器的参考设计为例,

weixin_30954817的博客 393

【高效写作必备】:3步搞定VSCode Markdown目录结构搭建

快速掌握VSCode Markdown目录搭建技巧,提升写作效率。通过安装插件、生成目录、自动更新三步操作,轻松实现文档结构化管理,适用于技术笔记、博客撰写等场景。支持实时预览与导出,结构清晰便于维护。高效写作必备,值得收藏。

FastSolve的博客 788

蓝牙EDR模式中GFSK调制如何过渡到DPSK调制

这两份文档片段揭示了蓝牙Modem设计中非常精深的部分。它的核心思想是:通过精心的脉冲形状设计和重叠,来保证幅度连续;通过在保护间隔内执行一套复杂的“相位平滑算法”(重复、斜率保持、寻找基准点、冻结),来保证相位连续。Figure 3-2 则是将这个思想用图形化的方式展现出来,说明了脉冲在时间轴上的对齐和叠加关系。这种设计确保了发射机能够严格符合蓝牙规范的要求,实现不同调制方式之间的平滑、无毛刺切换,从而保障了通信的可靠性和高效的频谱利用率。

m0_49540263的博客 282

【VSCode Markdown转PDF终极指南】:5步实现高效文档导出,程序员必备技能

掌握VSCode Markdown PDF转换技巧,5步高效导出专业文档。适用于技术笔记、报告撰写等场景,支持自定义样式与批量处理,提升程序员工作效率。操作简单,结果精准,值得收藏。

LearnFlow的博客 1475

RAP 值帮助实战:用 CDS 注解把 Fiori Elements 的输入体验做得又快又准

本文系统介绍了如何在SAP RAP应用中实现高效的值帮助(Value Help)功能。通过复用标准CDS View和自定义View Entity,开发者可以快速为字段添加弹窗选择、搜索和下拉框功能。文章详细讲解了三种核心实现方式:复用标准值帮助CDS View实现快速集成;构建自定义View Entity支持企业特定编码;利用搜索注解(@Search)和下拉框注解(@ObjectModel)优化用户体验。特别强调了文本显示、模糊搜索和小结果集下拉等实用技巧,并提供了可直接复用的国家代码值帮助示例。这些方法能

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

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

分享 6 个 Vue3 开发必备的 VSCode 插件

今天分享的 6 个插件,大家可以按需安装使用。我比较强烈推荐实用Volar和这 2 个插件。👍大家有更好的插件,欢迎评论分享~🔥欢迎关注我的微信公众号“前端自习课”。

pingan8787 2万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【Web开发必备技能】:3步搞定VSCode HTML格式化缩进设置

轻松掌握VSCode HTML格式化缩进设置,3步完成个性化配置。适用于前端开发、团队协作场景,支持自动对齐、统一代码风格,提升编码效率与可读性。图文详解设置方法,简单易操作,值得收藏。

BreakVein的博客 859

深度学习工具包 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&#39;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(&#39;DeepLearnToolbox&#39;));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(&#39;state&#39;,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&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,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 = &#39;sigm&#39;;%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, &#39;Too big error&#39;);```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(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;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)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;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, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% 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&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 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, &#39;Too big error&#39;);```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(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,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, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % 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, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);%% 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(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % 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, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

假人有限元模型

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

【程序员必备AI技能】:3步完成VSCode与Claude深度集成

掌握AI编程新技能,3步实现VSCode与Claude深度集成,提升开发效率。适用于代码补全、智能问答与重构优化,操作简单,响应迅速。轻松打造个性化AI编码环境,值得收藏。

Instrulink的博客 1354

VSCode开发 Vue3 建议必备的插件

在使用 Visual Studio Code (VSCode) 开发 Vue 3 项目时,有一些插件可以提高开发效率、代码质量和工作流程。

程序研博客 3万+

如何用Thief-Book-VSCode实现高效摸鱼?程序员必备的VSCode小说神器完整指南

Thief-Book-VSCode是一款专为程序员打造的VSCode摸鱼插件,它能让你在编码的同时秘密阅读小说,实现工作与摸鱼的完美平衡。这款免费工具通过隐藏在VSCode状态栏的方式运行,支持自动翻页、快捷键操作和紧急"老板键"功能,让你在不被发现的情况下享受阅读乐趣。 [![Thief-Book-VSCode插件主界面展示](https://raw.gitcode.com/gh_mirror...

gitblog_01134的博客 1138

【高效开发必备】:3分钟搞定VSCode Python测试发现环境搭建

快速搭建VSCode Python测试发现环境,提升开发效率。涵盖配置步骤、常用插件与调试技巧,适用于单元测试和持续集成场景。操作简单,3分钟完成 setup,让测试自动化更轻松,值得收藏。

InstrFun的博客 1104

【程序员必备技能】:掌握VSCode Git分支管理的7个关键命令

掌握VSCode Git集成:分支管理与冲突解决技巧,提升团队协作效率。详解7个关键命令在日常开发中的应用场景与操作方法,覆盖分支创建、切换、合并及冲突处理全流程。操作直观高效,大幅简化版本控制,值得收藏。

PixelIsle的博客 1098

JavaScript 高效入门指南:从基础到实战(VSCode 版)

JavaScript 入门的核心不是记住所有语法,而是能快速用它解决实际问题 —— 比如修改页面内容、处理用户交互、调用 API。用 VSCode 提供的工具简化重复工作,专注于「写出能跑的代码」,再逐步优化。下次遇到具体问题(比如「怎么给列表排序」「怎么处理表单提交」),可以带着问题深入学习,进步会更快!祝大家在 JavaScript 的路上越走越顺,有问题随时回来交流~🚀。

m0_73812383的博客 999

【程序员必备技能】:5步实现VSCode嵌入式AI的智能版本控制

掌握高效开发秘诀,5步实现VSCode嵌入式AI的版本控制。适用于嵌入式开发与团队协作场景,结合AI智能识别与Git流程优化,提升代码管理效率。自动追踪变更、精准推荐提交信息,让版本控制更智能。值得收藏

PixelFlow的博客 845

【高效Python开发必备技能】:3种方法实现在VSCode中完美激活虚拟环境

掌握VSCode Python虚拟环境激活的3种实用方法,解决项目依赖混乱问题。涵盖命令行激活、终端配置与自动识别技巧,适用于多项目开发场景,提升环境管理效率。操作简单,兼容性强,值得收藏。

DebugVibe的博客 1404
上一篇: 【VSCode终端高效开发秘籍】:手把手教你完美集成Git Bash提升编码效率
下一篇: 还在手写目录?这3个VSCode插件让你瞬间专业
varchat
博客等级 码龄11年 159粉丝 1993原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值