port linux & ramdisk

Linux内核配置 本文重点分析内核的配置方法。 阅读详情


呆着无聊,写个linux配置和ramdisk相关的笔记。


由于 Linux 内核源代码是按照树形结构组织的,所以 Makefile 也被分布在目录树中。Linux 内核中的 Makefile 以及与 Makefile 直接相关的文件有:

  1. Makefile:顶层 Makefile,是整个内核配置、编译的总体控制文件。
  2. .config:内核配置文件,包含由用户选择的配置选项,用来存放内核配置后的结果(如 make config)。
  3. arch/*/Makefile:位于各种 CPU 体系目录下的 Makefile,如 arch/arm/Makefile,是针对特定平台的 Makefile。
  4. 各个子目录下的 Makefile:比如 drivers/Makefile,负责所在子目录下源代码的管理。
  5. Rules.make:规则文件,被所有的 Makefile 使用。

用户通过 make config 配置后,产生了 .config。顶层 Makefile 读入 .config 中的配置选择。顶层 Makefile 有两个主要的任务:产生 vmlinux 文件和内核模块(module)。为了达到此目的,顶层 Makefile 递归的进入到内核的各个子目录中,分别调用位于这些子目录中的 Makefile。至于到底进入哪些子目录,取决于内核的配置。在顶层 Makefile 中,有一句:include arch/$(ARCH)/Makefile,包含了特定 CPU 体系结构下的 Makefile,这个 Makefile 中包含了平台相关的信息。

鄙人之前还写过一篇文章:  

linux make menuconfig\Makefile\Kconfig 详解

http://blog.youkuaiyun.com/codectq/article/details/9797031

获取linux源码:

sudo git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

获取交叉编译工具

sudo apt-get install gcc-arm-linux-gnueabi

解决缺库的问题

*** Unable to find the ncurses libraries or the
*** required header files.
*** ‘make menuconfig’ requires the ncurses libraries.
***
*** Install ncurses (ncurses-devel) and try again.

解决办法:

sudo apt-get install ncurses-dev

解决直接编译报错的问题

 HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf --silentoldconfig Kconfig
***
*** Configuration file ".config" not found!
***
*** Please run some configurator (e.g. "make oldconfig" or
*** "make menuconfig" or "make xconfig").
***
make[2]: *** [silentoldconfig] Error 1
make[1]: *** [silentoldconfig] Error 2
  HOSTCC  arch/x86/tools/relocs_32.o
  HOSTCC  arch/x86/tools/relocs_64.o
  HOSTCC  arch/x86/tools/relocs_common.o
  HOSTLD  arch/x86/tools/relocs
make: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'.  Stop.

方法是需要配置ARCH和CROSS_COMPILE,设置正确值

配置ramdisk




CentOS VPS部署Zenoss 4.6.5实战:老旧监控系统与现代Linux的兼容适配 Zenoss作为典型的遗留企业级Python监控系统,其核心依赖Zope框架、MySQL 5.6及RRDtool存储,代表了一类强耦合、低容器化适配度的传统运维工具。理解其基于事件驱动架构的设计原理,有助于把握老旧监控系统在云环境中的技术价值——尤其在教育网管、中小IDC等需长期稳定运行的场景中,它提供比Zabbix更细粒度的设备建模能力,又比Prometheus更少依赖Kubernetes生态。本文聚焦CentOS 7.9 Minimal环境下Zenoss Core 4.6.5的完整部署链路,覆盖Zope 阅读详情

相关推荐

Linux系统镜像克隆:用dd+gzip构建DigitalOcean自定义镜像

Linux系统镜像克隆是实现环境一致性与快速交付的核心技术,其本质是将运行态系统转化为可复用、可版本化的二进制快照。原理上依赖底层块设备复制(如dd)与高效压缩(如gzip),绕过文件级工具的元数据丢失风险,确保MBR引导、设备节点、ACL权限等关键信息完整保留。该技术显著提升云上部署可靠性与CI/CD流水线稳定性,广泛应用于生产环境迁移、灾备回滚及多区域分发场景。本文聚焦DigitalOcean平台,详解dd与gzip协同生成合规Custom Images的完整实践路径。

weixin_30299709的博客 323

linux构建工具链安装内核头文件的时候提示出错

如下,安装内核头文件的时候输入命令:

奋斗吧,少年! 3825

为Xilinx KR260构建定制Yocto系统并配置网络启动全流程详解

嵌入式Linux系统开发中,构建定制化操作系统和实现高效部署是关键环节。Yocto项目作为一个强大的构建框架,允许开发者从源码开始,像搭积木一样精确组装出完全符合项目需求的嵌入式Linux系统,其核心价值在于提供了对软件包版本、内核配置和系统组件的深度控制能力。在部署层面,网络启动技术通过PXE或U-Boot的DHCP/TFTP方式,实现了无需反复烧写存储介质即可加载最新系统镜像的能力,这为嵌入式开发、批量部署和快速迭代带来了革命性效率提升。结合Xilinx KR260这类常用于边缘AI和工业视觉的Zynq

weixin_34080951的博客 572

arm linux kernel编译问题总结

https://blog.csdn.net/skyleemon/article/details/80646726

二进制模----细微行动改变影响世界 2763

Colibri框架:在25GB内存设备上运行744B大模型的本地AI部署方案

大语言模型(LLM)作为人工智能的核心技术,其原理基于Transformer架构,通过自注意力机制处理序列数据。在工程实践中,MoE(混合专家)架构通过稀疏激活机制,让模型在保持大规模参数的同时降低计算开销。Colibri框架的创新价值在于采用类似操作系统虚拟内存的按需加载机制,将硬盘作为扩展内存使用,实现了'时间换空间'的优化策略。这种技术特别适用于模型验证、离线测试等非实时任务场景,为个人开发者提供了在普通硬件上运行GLM-5.2等744B参数大模型的可能性,大幅降低了AI部署的硬件门槛。

weixin_33843409的博客 418

基于Vivado 2025.2的TPG+VDMA视频流验证系统搭建与调试指南

在FPGA+ARM异构SoC平台上,视频数据的高效传输是图像处理应用的基础。AXI4-Stream协议定义了视频流的数据格式与传输时序,而VDMA(AXI Video Direct Memory Access)作为核心DMA引擎,负责将流数据通过AXI总线搬运至DDR内存,是实现硬件加速与软件处理间零拷贝的关键。其技术价值在于为FPGA逻辑(PL)与处理器系统(PS)之间提供了高带宽、低延迟的直接数据通道,是构建摄像头采集、视频编解码及AI加速等应用的基石。典型的应用场景包括需要实时处理视频流的嵌入式视觉系

weixin_34268579的博客 387

树莓派内核编译和下载[2] --WSL操作代码的坑

WSL开发Linux代码的坑

专注ARM软件架构设计 815

嵌入式系统恢复与驱动开发实战:从JTAG烧写到DMA与DPAA优化

在嵌入式系统开发中,系统部署与驱动适配是确保硬件稳定运行的基础。其核心原理在于通过底层调试接口(如JTAG)对Flash存储器进行编程,为硬件注入引导程序与操作系统。DMA(直接内存访问)技术通过硬件控制器在外设与内存间直接搬运数据,显著提升数据传输效率并降低CPU负载。对于高性能网络处理器,DPAA(数据路径加速架构)进一步将网络数据包处理卸载到专用硬件,通过硬件队列管理与流亲和性解决多核乱序问题。这些技术共同构成了嵌入式系统从“板砖”状态恢复、到驱动深度优化的完整工程实践链条,广泛应用于工业控制、网络设

471

xscale linux内核编译,【已解决】Cygwin下用arm-xscale-linux-gnueabi交叉编译Linux内核在配置时出错:scripts/kconfig/conf.o:conf....

【问题】折腾:期间,解决了:后,又出现错误:CLi@PC-CLI-1 ~/develop/kernel/linux-2.6.19.1$ make whgs_defconfigHOSTCC scripts/basic/fixdepscripts/basic/fixdep.c: In function ‘parse_config_file’:scripts/basic/fixdep.c:242:4:...

weixin_42353186的博客 1138

NXP Layerscape SDK功能矩阵与flex-installer部署实战指南

在嵌入式系统开发中,软件功能支持矩阵是评估平台能力、指导技术选型的关键文档。它通过表格形式清晰定义处理器架构、驱动、加速器及操作系统特性在不同硬件平台上的兼容性,其核心原理在于将复杂的软硬件适配问题标准化,从而降低项目风险、加速开发进程。对于基于NXP Layerscape系列高性能多核处理器的项目,深入理解其SDK附带的功能支持矩阵(Feature Support Matrix)具有极高的技术价值,它能帮助开发者快速判断诸如TSN(时间敏感网络)、DPDK(数据平面开发套件)、硬件虚拟化直通等关键特性在L

chiyingliao3565的博客 433

关于Selenium3在MicrosoftEdge浏览器中出现的问题

前言 最近在做web自动化测试,所用环境是java+selenium3.141.59+MicrosoftEdge(Chromium)浏览器。 在调试的过程中,出现了很多问题。比如selenium3在Edge浏览器中远程调用中,不支持addArguments方法等 问题 1.Edge浏览器弹窗问题 在测试过程中,会出现弹出窗提示 ...

zhucheng1994的博客 2196

hi3518E下载ram debug碰到ramdisk过小的问题

RPC: Registered tcp NFSv4.1 backchannel transport module. Kernel panic - not syncing: decompressor failed Backtrace:  [] (dump_backtrace+0x0/0x110) from [] ( 原因分析:ramdisk_size=4096这个参数导致的。?不是。改

Power of technology will free your body and spirit 2394

BMS开发避坑指南:如何用ADBMS6815实现0.03%精度的电池采样?

本文深入解析了如何利用ADBMS6815等高精度AFE芯片,在车规级BMS开发中实现0.03%级别的电池电压采样精度。文章从芯片选型、硬件设计、软件配置、算法优化到系统验证,提供了一套完整的实战指南,帮助工程师系统性地提升BMS测量精度,从而保障电池安全、延长寿命并增强产品竞争力。

weixin_28314575的博客 134

告别网络卡顿!手把手教你用Python一键搭建本地版Regex101调试环境

本文详细介绍了如何使用Python搭建本地版Regex101调试环境,解决网络卡顿问题。通过优化版代码库和Python内置服务器,开发者可以快速实现零延迟的正则表达式调试,同时保障数据隐私和定制化需求。文章还提供了高级定制技巧和性能优化方案,帮助提升开发效率。

weixin_30851867的博客 326

《点亮创新灯塔!AI应用架构师与中小学初等教育AI智能体,共筑智能化教育辅助创新灯塔》

中小学AI智能体,是基于AI技术,能感知教育场景、理解教育规律、辅助教师教学和学生学习的智能系统。做老师“做不了”的事:比如5分钟批改45本作业,精准统计每个学生的易错点;做老师“做不好”的事:比如根据学生的学习风格(视觉/听觉/动觉)推荐个性化内容;绝不做老师“该做的事”:比如情感交流、价值观引导、创意教学设计——这些“人的温度”,AI永远无法替代。我是林宇,资深AI应用架构师,专注教育AI领域8年,参与过10多个中小学AI智能体项目,曾为北京、上海、深圳等城市的100多所学校提供AI教育解决方案。

Java大师兄的博客 433

Windows10下MATLAB2017a安装与破解实战:手把手教你搞定双镜像加载

本文详细介绍了在Windows 10系统下安装和破解MATLAB 2017a的完整步骤,包括双镜像加载、许可证配置及常见问题解决方案。通过手把手教程,帮助用户顺利完成安装并优化性能,特别适合工程计算领域的初学者和专业人士。

weixin_29053383的博客 419

Linux 驱动开发与 Raspberry Pi

处理器介绍:https://www.raspberrypi.com/documentation/computers/processors.html。想在控制台看到 Linux 的启动信息,在/boot/firemare目录下的 cmdline.txt 文件中添加 loglevel=8 参数。请注意,在重启后,这种配置会重置。配套资料:https://github.com/ALIBERA/linux_raspberrypi_book/tree/main。查看当前控制台日志等级。更改当前控制台日志等级。

qq_35484691的博客 100

海外支付实战:虚拟信用卡订阅ChatGPT Plus等服务的完整指南

在跨境数字服务消费中,支付环节常因地区限制、银行风控等因素受阻。其核心原理在于国际信用卡交易需通过发卡行风控系统,而国内银行对高频、小额或商户名非常规的境外线上交易敏感,导致成功率不稳定。为解决这一痛点,虚拟信用卡技术应运而生,它通过服务商生成关联预充值账户的虚拟卡号,提供地域灵活性与资金可控性,显著提升了支付通过率。这项技术的价值在于以较低学习成本,为个人用户打通了访问ChatGPT Plus、Midjourney、Claude Pro等前沿AI服务的支付通道。其典型应用场景包括订阅各类海外SaaS、内容

weixin_42531579的博客 1023

【Linux】【busybox】基于busybox的根文件系统的完善以及介绍根文件系统下的文件夹和文件与Linux内核的衔接

最直观的是就是用户日常直接交互的那一层所有文件夹是根文件系统,内核作为底层支撑,运行在后台,不直接以文件夹的形式呈现给用户。1. 内核启动↓2. 解析 bootargs 中的 root 参数↓3. 加载 initrd 到内存↓4. 执行 initrd 中的 init 脚本- 加载必要的驱动- 检测存储设备- 挂载根文件系统↓5. 切换根文件系统(pivot_root)↓6. 启动 init 进程(PID 1)↓7. init 进程执行系统初始化。

qq_73648789的博客 288

控制科学与工程(自动化)保研经验【4】——浙大篇

控制科学与工程(自动化)保研经验【4】——浙大篇

Control Everything 1万+

NPU性能榨取手把手教程:RK3588上YOLOv5s多线程部署与120FPS极限探索

RK3588 YOLOv5s多线程部署优化指南 本教程深入解析RK3588芯片上YOLOv5s模型的高性能多线程部署方案。RK3588作为瑞芯微旗舰AIoT芯片,内置三核NPU(6TOPS算力)和硬件加速器(RGA/VPU),为AI推理提供强大支持。通过线程池技术,我们将视频处理的读取、推理、后处理等环节解耦并行,显著提升系统吞吐量。教程详细介绍了从PyTorch到RKNN格式的模型转换流程、INT8量化方法,以及基于RKNN C++ SDK的YOLOv5推理核心实现,帮助开发者最大化发挥RK3588的AI

LXY_LOVE36的博客 973

嵌入式系统迁移Linux:实时性优化与驱动开发实践

嵌入式系统开发中,实时性和外设驱动是核心挑战。Linux作为通用操作系统,通过内核参数调优(如HZ时钟粒度调整)和实时补丁可满足毫秒级响应需求。SPI、I2C等总线驱动开发涉及轮询、中断和DMA三种模式,合理选择能显著提升系统吞吐量。在机器人控制等场景中,结合SCHED_FIFO调度策略和优先级继承协议,可有效解决多线程资源竞争问题。本文以地面清洁机器人为例,详解从裸机迁移到Linux的技术路线,包含x86平台选型、EXT4文件系统优化等实战经验,特别适合需要网络功能扩展的物联网设备开发参考。

weixin_30951515的博客 291

prplOS介绍

介绍prplOS是什么,特性、框架、编译等。

四儿家的小祖宗的博客 2124

Wireshark 与 tcpdump 对比评测:3大场景下的抓包策略与性能分析

本文深入对比了Wireshark与tcpdump两大抓包工具在远程抓包、大流量捕获和协议解析等核心场景下的性能差异与优化策略。通过实测数据展示tcpdump在资源占用和稳定性上的优势,以及Wireshark在协议深度解析和可视化分析方面的不可替代性,为网络工程师提供场景化工具选择指南。

weixin_33796205的博客 408

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Android15、红帽9.6压测refault比MGLRU大幅降低、mysql最大延迟降低1半、安卓15低内存场景app启动最大耗时降低40%—linux内核以文件为单位的file_area内存回收

以文件为单位的新型linux内核内存回收算法:Android15低内存场景启动app最大耗时比MGLRU降低40%+、refault page降低5倍+,红帽9.6 mysql压测refault page比MGLRU降低80%+、最大延迟降低1半

dongzhiyan_hjp 435

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

树莓派搭建ArduSub地面站:从写卡到视频流的完整实践指南

树莓派作为轻量级Linux嵌入式平台,凭借低功耗、强USB外设兼容性与成熟社区支持,成为水下机器人(ROV)地面站的理想伴侣计算机。其核心原理在于与Pixhawk飞控分工协作:由树莓派承担MAVLink协议桥接、H.264视频流采集与转发等非实时计算任务,释放飞控资源并提升系统可扩展性。该方案显著降低入门门槛,使高校学生与业余爱好者可在数小时内完成稳定部署。结合ardusub入门教程与树莓派写卡实操,本指南覆盖磁盘映像安装、SSH初始化、WiFi联网、companion软件栈配置及视频流调试等关键环节,兼顾

diaogan4202的博客 369

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

上一篇: linux内存操作----kernel 3.5.X copy_from_user()和copy_to_user()
下一篇: uboot中gd的定义和使用
野-百-合
博客等级 码龄17年 308粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值