rk3568 LCD屏幕驱动开发实战:dtsi文件配置详解与常见问题排查

rk3568 LCD dtsi文件配置选项含义说明 本文主要介绍rk3568/rk3566 的LCD dtsi的配置选项含义 阅读详情

RK3568 LCD屏幕驱动实战:从DTSI配置到疑难杂症的深度解析

作为一名在嵌入式领域摸爬滚打多年的工程师,我深知点亮一块陌生的LCD屏幕,远不止是连接几根线那么简单。尤其是在RK3568这类高性能平台上,屏幕驱动的配置更像是一场与硬件规格书、内核驱动框架的精密对话。很多开发者拿到一块新屏幕,照着模板修改dtsi文件,却发现屏幕要么一片漆黑,要么闪烁、花屏,调试过程令人抓狂。本文将抛开简单的参数罗列,从一个实战者的视角,深入RK3568 LCD驱动的配置核心,结合真实的踩坑案例,手把手带你理解每一个配置项背后的“为什么”,并分享那些规格书上不会写的调试技巧。无论你是正在为项目选型屏幕,还是深陷显示异常的泥潭,希望这些从实际项目中沉淀下来的经验,能为你点亮一盏灯。

1. 理解基石:RK3568显示子系统与DTSI的角色

在动手修改任何一个参数之前,我们必须先建立对RK3568显示子系统架构的宏观认知。RK3568的显示控制器(VOP, Video Output Processor)功能强大,支持多种接口,如RGB、LVDS、MIPI-DSI、eDP等。而我们的配置核心——dtsi(Device Tree Source Include)文件,正是连接硬件描述与软件驱动的桥梁。

设备树(Device Tree)的本质是将硬件的拓扑结构和特性,以一种静态数据结构的形式传递给内核。对于显示部分,dtsi文件需要准确描述:显示控制器(VOP)的属性、物理连接(PHY)、屏幕面板(Panel)本身的时序与初始化序列,以及它们之间的数据通路(Graph)。一个常见的误区是只关注panel节点,却忽略了其他部分的匹配,导致驱动加载失败。

提示:RK3568的显示驱动通常遵循 VOP -> DSI PHY -> MIPI DSI Host -> Panel 的数据流路径。dtsi配置需要确保这条路径上的每一个环节都被正确初始化和链接。

让我们先看一个最简化的DSI显示配置框架,它通常位于类似 rk3568-evb.dtsi 或独立的屏参文件中:

// 1. 定义VOP(视频输出处理器)
&vop {
    status = "okay";
    assigned-clocks = <&cru DCLK_VOP0>;
    assigned-clock-parents = <&pmucru PLL_HPLL>;
};

// 2. 定义DSI Host控制器
&dsi0 {
    status = "okay";
    // 关联PHY
    phys = <&video_phy0>;
    phy-names = "dphy";

    // 3. 定义Panel面板节点
    panel@0 {
        compatible = "panel-dsi-cm";
        reg = <0>;
        backlight = <&backlight>; // 关联背光节点
        power-supply = <&vcc3v3_lcd0_n>;

        // 时序、初始化序列等详细配置将在此展开
        // ...
    };
};

// 4. 定义显示数据通路
&route_dsi0 {
    status = "okay";
    connect = <&vp0_out_dsi0>; // 连接VOP输出端口到DSI
};

这个框架勾勒出了从图像生成(VOP)到最终显示(Panel)的软件链路。接下来的所有深度配置,都将围绕 panel 节点展开。理解这个数据流,是后续一切调试工作的基础。

2. 屏幕的“心跳”:时序参数配置的实战精要

时序配置是屏幕驱动的灵魂,它定义了像素数据如何被精确地“画”到屏幕上。参数错误直接导致无显示、闪烁、撕裂或图像偏移。这些参数无一例外地来自屏幕的规格书(Datasheet),但如何正确理解和填入却是关键。

2.1 核心时序参数详解与计算

在 display-timings 节点中,我们需要配置一组关键的水平和垂直同步参数。很多人只是机械地填写,却不明白其物理意义。

参数名 缩写 单位 含义与作用 常见误区
clock-frequency DCLK Hz 像素时钟频率,决定数据传输的快慢。 直接使用规格书最大值,忽略平台承载能力。
hactive H
天启RK3568J开发板驱动立煌GV101WXM-N81屏幕:从设备树配置到背光调试的完整避坑指南 本文详细介绍了在天启RK3568J开发板上驱动立煌GV101WXM-N81 EDP屏幕的完整流程,包括设备树配置、时序调试和背光系统设置。通过实战案例和常见问题解决方案,帮助开发者快速掌握屏幕点亮技术,避免常见陷阱,实现稳定显示输出。 阅读详情

相关推荐

从编译到驱动:鲁班猫Linux系统深度定制与MIPI屏幕适配实战

嵌入式Linux系统开发的核心在于对系统构建流程的完整掌控。其基本原理是通过交叉编译工具链,将内核、设备树和根文件系统等组件,针对特定硬件平台进行编译与集成,最终生成可烧录的系统镜像。这一过程的技术价值在于,它使开发者能够突破预编译镜像的限制,实现从内核模块、启动参数到硬件驱动的深度定制,从而满足物联网、工业控制等场景中对系统尺寸、性能和兼容性的严苛要求。例如,在适配非标准MIPI显示屏时,开发者必须深入理解设备树(Device Tree)的硬件描述机制,并可能涉及内核驱动的修改。本文以鲁班猫开发板为例,详

weixin_34130389的博客 306

RK3568平台开发系列讲解(LCD篇)驱动开发之LCD使用

RK3568的SDK下kernel/arch/arm64/configs/firefly_defconfig已经把LCD相关的配置设置好了,如果自己做了修改,请注意把以下配置加上: CONFIG_DRM_ROCKCHIP=y CONFIG_ROCKCHIP_DW_MIPI_DSI=y CONFIG_DRM_PANEL_SIMPLE=y

内核笔记 3799

RK3568平台(显示篇)DP 显示输出调试

在RK上VOP输出DP,DP可以使用两种接口接显示屏,可以用type-c out接口显示,也可以用DP out接口显示。一般VOP的DP输出,可以接DP接口也可以连接到type-c接口,type-c接口除了显示功能,还有USB功能,充电功能。Type-C口有4对TX/RX分线,2对USBD+/D-,一对SBU,2个CC,另外还有4个VBUS和4个地线。当Type-C接口仅用作传输DP信号时,则可利用4对TX/RX,从而实现4Lane传输,这种模式称为DPonly模式;

weixin_49303682的博客 2443

RK平台调试MIPI LCD出现花屏、白屏、闪屏怎么分析处理

需要对照屏幕规格书(Datasheet)中的时序表,在dtsi的`display-timings`节点中正确配置`clock-frequency`、`hactive`、`vactive`、`hfront-porch`、`hback-porch`、`hsync-len`等参数。MIPI屏幕的初始化时序是屏幕正常显示的“启动密码”,需检查`panel-init-sequence`中的命令格式是否正确,DCS Write和Generic Write等数据类型是否转换正确。需要检查初始化代码格式是否转换正确。

Android/Linux驱动开发传帮带学习,让驱动入门门槛更低! 551

TdsProxy.cpp

TdsProxy.cpp

【电池管理系统】基于物理约束与数据驱动融合的SOP估计:电压电流温度多约束联合建模与MATLAB实现 MATLAB 电池可用功率SOP估计|电压电流温度约束联算

内容概要:本文提出了一种基于MATLAB的电池可用功率(SOP)估计方法,通过结合电压、电流和温度三类物理约束与数据驱动模型,构建多约束联合的SOP估计框架。项目首先建立涵盖荷电状态(SOC)、端电压、电流、温度和等效内阻的五维输入特征体系,并采用物理模型计算电压、电流和温度约束下的安全功率边界。在此基础上,利用袋装回归树和神经网络等机器学习模型学习复杂非线性关系,并通过“物理模型+数据模型”融合策略实现高精度且安全的SOP预测。整个流程包括数据生成、模型训练、验证推理和实时部署,形成了从建模到应用的一体化闭环。此外,项目还开发了包含实时趋势图、约束分析、功率地图和历史记录的精美GUI界面,支持模型加载、数据导入、实时模拟和结果导出,增强了交互性与实用性。 适合人群:具备一定MATLAB编程基础、熟悉电池管理系统(BMS)或新能源汽车动力控制的研发人员,适用于从事电池状态估计、功率管理算法开发、储能系统控制等相关工作的工程师和技术研究人员。 使用场景及目标:① 新能源汽车整车功率控制,用于加速、制动能量回收和动力分配;② 电池管理系统在线保护,防止过压、过流和过温;③ 储能电站充放电调度,实现安全高效的能量管理;④ 快速充电与电池测试,动态调整充电功率以延长寿命;⑤ 数字孪生与故障诊断,为电池健康状态评估提供支撑。 其他说明:该方法强调物理可解释性与工程安全性,所有模型输出均需经物理边界裁剪,确保不会超出安全范围。项目代码兼容MATLAB R2025b,支持模型迁移与嵌入式部署,并提供了完整的测试验证机制,包括边界测试、异常处理、自动化部署和版本回滚,保障系统在真实场景中的可靠性与可维护性。

YOLO26算法医学影像手部目标检测+训练好的模型+292张数据集+pyqt可视化界面-sts

文末有数据集可视化效果,供参考。YOLO26算法医学影像手部目标检测+训练好的模型+292张数据集+pyqt可视化界面sts 账号整理版本,标签格式规范,可直接投入训练。

科技中介服务机构如何降低技术交易过程中的人工操作成本?.docx

科技中介服务机构如何降低技术交易过程中的人工操作成本?

高校技术转移办公室人员如何实现科技成果的精准推介展示?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

科技中介服务机构如何通过平台实现服务流程的标准化与智能化?.docx

科技中介服务机构如何通过平台实现服务流程的标准化与智能化?

j1j2j3j4j5.eddx

j1j2j3j4j5.eddx

半桥LLC谐振变换器开环+闭环仿真设计资料(Simulink仿真实现)

内容概要:本文提供了关于半桥LLC谐振变换器的开环与闭环仿真设计资料,基于Simulink平台实现,系统阐述了电力电子变换器的建模方法、控制策略设计及仿真验证全过程。内容深入剖析LLC谐振变换器的工作原理、谐振腔参数设计、系统动态响应特性以及变频控制、电压电流双闭环等核心控制环路的实现机制,重点涵盖开环启机过程与闭环稳态控制的切换逻辑、稳定性分析与参数优化方法。通过构建完整的仿真模型,帮助读者理解变换器在不同负载与输入条件下的性能表现,并进一步拓展至PFC变换器、多电平LLC、移相控制等关联技术,形成覆盖主流电力电子系统的综合性仿真体系。; 适合人群:具备电力电子技术、自动控制理论及电气工程相关基础知识,从事开关电源、新能源发电、电动汽车充电系统等领域的研发工程师、高校研究生及科研人员。; 使用场景及目标:①掌握半桥LLC谐振变换器的建模流程与关键参数设计方法;②深入理解开环控制与闭环反馈控制的差异及其协同工作机制;③应用于科研课题、课程设计或工程项目中对高效率DC-DC变换器的性能分析、控制算法开发与系统优化。; 阅读建议:建议结合Simulink仿真模型进行同步实操,按照文档指引逐步搭建主电路与控制模块,重点关注谐振频率、品质因数、增益特性与控制参数对系统启动特性、稳压精度及动态响应的影响,同时利用提供的完整资源包中的模型与案例进行调试与对比分析,以深化对理论知识的理解与工程应用能力。

美股分钟级数据覆盖纳斯达克、纽交所、美交所上市股票及ETF 每条数据记录精确到分钟,包含时间戳、开盘价、最高价、最低价、收盘价、成交量、成交笔数 支持历史全量行情文件下载,数据格式为CSV,按年月分目

美股分钟级数据覆盖纳斯达克、纽交所、美交所上市股票及ETF。每条数据记录精确到分钟,包含时间戳、开盘价、最高价、最低价、收盘价、成交量、成交笔数。支持历史全量行情文件下载,数据格式为CSV,按年月分目录存储。API接口还可提供盘前盘后分钟行情、前复权因子和分笔成交明细。所有价格单位均为美元,成交量单位为股。数据起始时间从2010年至今,每日持续更新。 数据源:CMES金融数据库

AIDD机器学习深度学习药物发现与设计教程总结

AIDD(AI Drug Discovery & Design):是近年来非常火热的技术应用,且已经介入到新药设计到研发的大部分环节当中,为新药发现与开发带来了极大的助力。倾向于机器对数据库信息的自我学习,可以对数据进行提取和学习,一定程度上避免了化合物设计过程中的试错路径,同时还会带来很多全新的结构,为药物发现打破常规的结构壁垒。覆盖了机器学习和深度学习,能与新药研发相结合并实质性的应用到靶点预测、高通量筛选、药物设计、药物的ADMET性质预测等;且算力方面,由早期应用于药物发现领域的决策树、随机

wutianlin0723的博客 6819

01 底盘制动产品之轮速传感器

轮速传感器是用来测量汽车车轮转速的传感器。对于现代汽车而言,轮速信息是必不可少的,汽车动态控制系统(VDC)、汽车电子稳定程序(ESP)、防抱死制动系统(ABS)、自动变速器的控制系统等都需要轮速信息。

汽车软件工程师 | 好奇博主 | 处女座 4660

SPSS实战:如何用Harman单因素检验搞定共同方法偏差(附完整操作步骤)

本文提供了一份详尽的SPSS实战指南,手把手教你运用Harman单因素检验来诊断共同方法偏差。文章从核心概念讲起,逐步详解数据准备、SPSS操作步骤、结果解读与报告撰写,帮助研究者快速掌握这一关键的数据质量控制方法,确保量化研究结论的可靠性。

weixin_29263201的博客 1709

戴尔PowerEdge服务器R450 RAID配置步骤

戴尔PowerEdge服务器R450 RAID配置步骤

且听风呤tmj的博客 6912

Android PackageManagerService 总结(一)应用市场下载安装apk流程

前言: 本篇文章是对系统包安装流程的总结,基于Android12 上 com.android.packageinstaller 源码的分析,第三方应用商城(华为商城,小米商城,应用宝,豌豆荚,酷安等)下载安装应 用,在普通安装和静默安装app两种方式下,对代码流程的梳理和讲解。 触发安装: 当你在商城界面中点击安装按钮,应用会自动下载,下载完成后就会调起系统安装应用的界面,此种触发方式一般是通过Intent 隐式调用的,我们先阅读如下代码: ......

u012514113的专栏 1万+

PaddleOCR全版本完整指南:从入门到精通,全面解析安装部署与高级应用

摘要 本文详细介绍了PaddleOCR的完整安装与使用指南。首先讲解了环境准备步骤,包括Python 3.11虚拟环境创建和PaddlePaddle框架的CPU/GPU版本安装。接着介绍了PaddleOCR库的安装方式,可选功能模块(文档解析、信息抽取、翻译等)及其依赖组。通过示例代码演示了PPStructureV3文档解析功能的基本用法,并提供了安装验证方法。最后针对常见问题(Windows中文用户名报错、模型下载问题)给出解决方案。文章为从入门到精通的PaddleOCR用户提供了全面的技术指导。

算法工程师 1367

SAP Cloud ERP 是什么,一篇文章讲清楚

SAP Cloud ERP并非简单将传统ERP搬到云上,而是对企业核心流程、数据和管理方式的全面重构。它包含S/4HANA Cloud的公有云版(标准化、快速部署)和私有云版(灵活定制),分别对应GROW with SAP和RISE with SAP实施路径。核心价值在于实现实时数据整合、端到端流程贯通及持续演进能力。企业需根据发展阶段选择:新兴企业适合标准化公有云,复杂组织可考虑私有云迁移。关键在于转变管理思维,避免将旧系统问题复制到新平台。上云决策本质是企业对数字化基座的选择,需权衡标准化与个性化需求。

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

Simulink中搭建一个包含PID控制的压电陶瓷快反镜模型

这个模型只是一个基本框架,你需要根据实际的系统参数和要求进行调整和优化。希望这些步骤能帮助你在Simulink中搭建所需的模型。

AI的内部世界的博客 474

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

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

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: 避坑指南:PerfMon插件监控数据不准?可能是这5个配置细节没做好(附JMeter 5.4+最新安装方法)
下一篇: VS2019如何兼容旧版C++项目?手把手教你安装VC6~VS2017工具集
Python
博客等级 码龄26年 1973粉丝 1567原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值