Linux 做开发,墙裂推荐!!【送源码】

[LINUX]LINUX驱动开发最简环境搭建(适用于新手) LINUX驱动开发环境搭建一、 前言二、系统环境UbuntuVMWare{可选}三、开发环境搭建1.用于简单学习(Header)2.用于复杂驱动开发(源码树)a. 基本包b. 源码获取及编译四、驱动开发简单示例【HelloWorld】1. Linux C文件2. Makefile文件3. 驱动编译、加载及卸载五、参考链接六、写在最后的话【应该没有彩蛋】彩蛋? 一、 前言 本文以流水账为记述方式,叙述了从零开始在Ubuntu系统环境下建立LINUX驱动开发环境的过程,并提供了简单的例子。目的是为了给新手或者其 阅读详情

Linux 能用吗?

我身边还有些朋友对 linux 的印象似乎还停留在黑乎乎的命令行界面上。当我告诉他或者建议他使用 linux 时,会一脸惊讶的问我,那个怎么用(来开发或者日常使用)?

Linux 有图形界面

桌面

图片

启动器

图片

文件管理器

图片

设置

图片

这是我使用了近两年的“国产”操作系统 deepin ,界面美不美观我不知道,能用是肯定的。

关于其他 linux 可以参考:

  • 八款精美的 Linux 发行版!https://www.linuxprobe.com/eight-linux-distribution.html

  • 2018年10大最漂亮的 Linux 发行版 https://www.cnbeta.com/articles/soft/695605.htm

  • 展望2017年的七款好用Linux发行版 https://www.linuxidc.com/Linux/2017-01/139414.htm

支持日常开发

首先 Vim/Emacs 表示它们可以搞定,但是我觉得我和它们不熟。..

  • Java : Eclipse , IDEA , NetBeans , Android Studio ...

  • Python : PyCharm , WingIDE ...

  • C++ : KDevelop , Code Blocks ...

  • Php : PhpStorm ...

  • 前端 :Sublime , VS Code , WebStorm ...

  • ...

排名不分先后

社交沟通没问题

居然还有 ICQ ...

囿于时间原因,这里使用了 deepin 商店截图 ,其他 linux 发行版不一定有这么丰富,不过安装qq、微信应该没问题

Linux 能替代 Windows 吗?

先列下本人日常使用的软件:

  • 开发:IDEA

  • 数据库:DBeaver , Navicat , PL/SQL

  • 沟通:TIM , 微信

  • 浏览器:谷歌,火狐,360

  • Office: WPS ,Microsoft office网页版

  • 音乐:网易云音乐

  • 输入法:搜狗输入法

  • 播放器:deepin自带的播放器,VLC

  • 编辑器:Sublime Text

  • 远程控制:TeamViewer,向日葵,VNC,Remmina

  • 下载:迅雷极速版,Aria2

  • 网盘:坚果云,百度网盘

  • MarkDown编辑器:Typora,Zettlr

  • 终端:deepin自带的(非常好用)

  • 思维导图:XMind ZEN

  • ftp:FileZilla

  • PDF:福熙阅读器

  • 虚拟机:VirtualBox,vmware

  • 游戏:Steam,Minecraft(我的世界)

  • Android APP:xDroid

这些只是我个人日常使用,还有很多优秀的软件没有列出来。

至于能不能替代 Windows ,这个问题因人而异。对我而言,在两年的使用经历中,暂时没有遇到过 linux 下不能解决,必须回到 Windows 的。

而且,实在不行不是还有虚拟机吗。

其他参考:

  • 100 个最佳 Ubuntu 应用(上) https://zhuanlan.zhihu.com/p/71833109

  • Deepin 应用商店 https://dstore-appstore.deepin.cn/china/index

  • 常用的超赞 Linux 软件大汇总,入行运维必藏!http://www.sohu.com/a/238318823_100008608

  • 小众软件-Linux https://www.appinn.com/tag/linux/

Linux 下运行 Android 应用

xDroid 使 Android 应用能运行在 linux 上,极大的扩展了 linux 生态。

图片

图片

是的,你没有看错,不是基于虚拟机或模拟器的,速度可观,占用资源小。

这似乎是目前 Windows 都无法做到的。

运行截图

图片

应用市场部分截图

图片

图片

Linux 有什么优势吗?

从一个系统迁移到另一个的系统成本是巨大的,Linux 有什么魅力值得我这么做吗?

Linux 是优雅的

当我在 Windows 下安装一个软件时,首先需要打开浏览器,搜索你想要的软件,小心翼翼的避开广告,当你找到一个看起来是对的网站时,还是得小心翼翼的找到 下载地址 之类而不是巨大的下载按钮,最后再小小翼翼的安装,一定不能漏掉某些勾勾,一旦一不小心漏掉了,就会发现电脑似乎有点卡顿,不一会儿,它的朋友就会出现在你的桌面上。

而在 linux 下,apt install 或者 yum install 之类的命令,就能搞定整个安装。

  • Linux 不需要选择软件是放 c 盘还是 d 盘,已经定义好了哪些文件该放在哪些地方,

  • 也不需要杀毒软件,

  • 也不需要清理垃圾,

  • 也不需要释放内存,

  • 也不需要激活系统,它是开源免费的,

  • 也不需要磁盘优化,

  • 也没有烦人的弹窗,

  • 也没有强制更新。

Linux 是高效的

这是 linux 最吸引我的地方了

命令行

命令行不是一种落后的操控计算机的方式。相反,它一直很高效且富有表达性。

当你想要复制、剪切或删除一个文件时,我相信打开文件管理器在不同窗口之间跳转是没有一条命令来得快。

当你想要查看系统运行状态,我相信移动鼠标,右键,选择任务管理器是没有一条命令来得快。

当你想要编写一个简单的脚本或文件时,我相信打开编辑器,新建文件,编写,选择文件位置保存是没有一条命令来得快。

...

鼠标是很好的工具,但是它有它的局限,毕竟它只有三个按钮。而命令行中使用参数的表达力是无穷的。

减少使用鼠标

通过命令行,浏览器的 Vimium 插件(类似于 Vim 的方式操作浏览器界面),Albert(通过指定按键唤出一个输入框,可以打开 app , 文件 ,url ,直接搜索 ,计算器 ...),系统快捷键再加上IDEA(它的设计思想是键盘优先)我能够很少的使用鼠标。

当然不是鼠标烫手,当你的双手在键盘上飞快的敲打时,直接使用键盘是比右手挪到鼠标上再挪回来要快的,而且这种不中断的体验非常舒畅。

至于这为什么是 linux 的优点,在我过去多年的 Windows 使用经验中,我没有找到自定义系统快捷键的入口,更不用说自定义宏了。Windows 当然也有命令行,不过我认为它的命令丰富程度和各个命令之间的配合是不如 linux 的(有人称之为附属品)。

减少重复劳动

我有一个文件夹,专门存放着我写的各式各样的脚本。大部分时候,你的问题市面上的软件都可以解决,但是当有一些细碎、独特、重复的小任务时。脚本能够帮你很好的解决这些。

比如,我有一个监控生产环境的脚本(其实应该是项目本身自带的),有一个OA守护脚本(其实就是监控我有没有写日报,没有的话发个短信提醒我),甚至还有一个定时发送微信的脚本...

这些脚本能一定程度的解决信息世界的重复劳动,让我更专注于具有创造性的工作上。

启动速度

在我的电脑上,无论是从系统启动速度,还是软件(IDEA,Chrome)启动速度都略胜 Windows 一筹。

使用经验所得,未有准确测试数据。不过IDEA是测过的,快了一秒多

内存占用

图片

Linux 是自由的

上面的只说明了脚本带来的好处,并没有说明是在 linux 下带来。

因为只有 linux 才有这样的开放和可定制,你可以很容易的通过命令来修改系统配置和改变系统状态,甚至于修改内核代码,编译并使用它。

  • 假如不喜欢当前的桌面环境,可以轻易的通过命令来切换。

  • 假如喜欢 mac os ,可以通过网上的教程将 Ubuntu 改成一模一样(甚至包含开机 logo)。

  • 假如不喜欢系统自带的文件管理器,可以选择其他优秀的软件,比如 Nautilus。

  • 假如不喜欢当前终端,有太多选择了,我甚至用过一个模仿一部电影内出现的,极具极客风格的终端。

而相反,比如拿字体来说,在 linux 下我可以通过命令来安装和切换系统字体,而在 Windows 下没有这样的设置或者入口。暂时不太明白为什么这种选择的权利都没有。

而这些仅仅只是一些微不足道的例子。

参考资料:

  • Linux与windows相比有何优势,看完就明白了 https://blog.youkuaiyun.com/lmseo5hy/article/details/79279424

Linux 也可以是美的

deepin 15.10 中文宣传视频 https://www.bilibili.com/video/av50732978

  —— EOF ——

 给大家分享一套基于Springboot+Vue的停车场管理系统源码,在实际项目中可以直接复用。(免费提供,文末自取)

一、系统运行图

1、登陆页面

2、车位管理

3、车辆进出管理

二、系统搭建视频教程

源码免费领取方式

后台回复  停车场

为什么要阅读linux内核源码以及如何阅读Linux内核源码 目的:为了更好地编写驱动程序,对自己写的程序有更深入的理解,并且自己的岗位定位在底层。 阅读linux内核,常用下面两种方法: 1.bochs+linux0.11+书(linux内核完全注释、linux内核完全剖析、linux内核设计的艺术) 2.sourcesinsight+linx2.X+书(linux内核情景分析) 阅读源码分为纵向阅读和横向阅读。纵向就是跟着内核的执行流程来读,横向就是按照... 阅读详情

相关推荐

MacOS上VScode配置PlatformIO Core的疑难杂症与提速实战

本文详细解析了在MacOS上使用VScode配置PlatformIO Core时遇到的安装卡死、新建项目缓慢等常见问题,并提供了官方脚本安装、网络优化、命令行预下载等实用解决方案。通过环境变量配置和镜像源加速,大幅提升开发效率,特别适合ESP32等嵌入式开发场景。

weixin_42567046的博客 221

Linux驱动开发 之 查看源码 以及推荐使用工具

Linux驱动开发 之 查看源码

xiaonian321的博客 1686

ros2 humble中使用realsense t265与d435

前提,安装realsense SDK 2.51.1版本并且能成功启动realsense-viewer V2.51.1想要在ros2中使用realsense t265,必须配合realsense SDK v2.51.1使用realsense-ros 4.51.1版本,因为新版本realsense ros2不再对t265支持下面记录源码编译安装 realsense-ros 4.51.1版本。

m0_72797388的博客 957

linux下配置sqlite3--所有开源代码环境配置 保姆级教程 墙裂推荐

linux下配置sqlite–所有开源代码环境配置 墙裂推荐 关于sqlite3 sqlite是一种轻便型数据库,适用于市面上的所有平台,并且操作简单,关键在于开源免费,就问你白嫖的不香吗? 同期的数据库还有:sqlserver,开源免费,但是主要用在window下。mysql 数据库太大了 在一些嵌入式系统上就不太适用。综合以上,sqlite的优势显而易见 关于配置 首先,关于开源,解释下什么叫做开源。开源顾名思义就是开放源代码,你可以在源代码上做你想要的修改适合你自己的配置,这就是开源香的地方。而往往开

z15005953031的博客 2253

超10万,两台Mac Studio在家就能跑满血DeepSeek,网友:这是性价比最高的大模型一体机

在AI计算领域,没有比这更强的个人电脑了。这要从它的架构说起。对于那些有本地部署满血版DeepSeek需求的用户,目前建议的配置是选购512GB统一内存 + 1TB SSD,搭载M3 Ultra芯片的Mac Studio,官网售价74249元,可以叠加国补、教育优惠、12期分期等,这可能是目前门槛最低、性价比最高的满血版DeepSeek本地部署方案。对于企业而言,尽管Mac Studio确实可以部署6000亿参数的大模型,但在内存带宽、模型精调服务等方面,跟专用的大模型一体机仍有差距,采购需要谨慎评估。

2501_90444774的博客 1918

setup time和hold time的计算

内容仅仅为了方便记忆,与原理无关

sddhyl的博客 7819

【亲测好用,墙裂推荐】精确制导 --- 把linux内核源码中需要的代码导入Source Insight

不知道大家在做Linux内核或者驱动相关开发的时候有没有碰到这样的情况,一个最新的Linux内核大约有5万多个文件,我们用Source Insight对内核创建项目工程然后建立链接,会发现一个整个项目有2个G左右的大小,而且在查找函数的调用往往会被其他没有编译进内核的文件所干扰。经过查找我发现了一个能够精准导入内核文件的方法。本文的导入脚本是从别人的项目中提取出来的,链接:。

sinat_32152141的博客 1239

深入AutoSar诊断协议栈:当ECU报故障时,FiM模块是如何悄悄“阉割”功能的?

本文深入解析AutoSar诊断协议栈中FiM模块的工作原理,揭示ECU报故障时如何通过Inhibition Counter和位运算技术实现功能静默降级。探讨FiM在故障处理链中的关键角色,包括功能权限仲裁、降级策略执行和系统安全兜底,并分享实战调试技巧与进阶应用案例。

weixin_30673611的博客 174

android开发源码,推荐一系列优秀的Android开发源码

专题类:一、Android开发图书推荐:http://book.apkbus.com/二、Android开发精选源码推荐:http://demo.apkbus.com专题类:一、Android开发图书推荐:http://book.apkbus.com/二、Android开发精选源码推荐:http://demo.apkbus.com/三、Android专题类:一、Android开发图书推荐:http...

weixin_39875832的博客 622

vue3+SuperMap iClient3D for Cesium实现可视域分析功能

基于Vue3框架及SuperMap iClient3D for Cesium提供的ViewShed3D类实现场景动态可视域分析

qq_43334519的博客 2248

机器人中的数值优化(十五)——PHR增广拉格朗日乘子法

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例

慕羽★的博客 2007

开发linux学习板子_linux嵌入式开发板推荐,资深程序员教给你

嵌入式是现在发展最快的IT技术之一了,很多人都选择了嵌入式这一行业,对于嵌入式来说,他挣得多,前景也很不错,学习嵌入式,开发板是最离不开的了,很多出入嵌入式行业的人对于嵌入式开发板,不知道,应该怎么选,今天在这里听听资深程序员怎么说。嵌入式开发板的选择也不用过于纠结,对于开发板来说,你应该首先要了解嵌入式linux开发板,嵌入式开发板(Embedded development board)就是半导...

weixin_29582621的博客 4132

llama2-7b下载并转llama-2-7b-hf

④输入https://github.com/huggingface/transformers/blob/main/src/transformers/models/llama/convert_llama_weights_to_hf.py会下载 convert_llama_weights_to_hf.py 文件,我们需要用到这个文件将llama2-7b转成llama-2-7b-hf。③下载完之后是这四个文件,这里我是在windows操作系统中安装的WSL,没有linux操作系统,没办法。

wenling54321的博客 1033

三大操作系统比较,为什么开发要用Linux系统?(推荐)

 windows, macOS,linux是当今主流三大操作系统,普通用户一般是选择windows或macOS, linux主要是占据服务器领域市场。这三个操作系统给人的感觉是:windows经济适用,档次较低; macOS高端大气上档次; Linux是极客专用,一个黑乎乎的窗口,各种花花绿绿的指令在闪烁,对着键盘噼里啪啦一通乱敲,就能窃取各种机密...         普通用户对于操作系统的选...

Juunnry的博客 7万+

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Linux内核——内核源码的探索+教你如何系统认识Linux内核源码树(推荐方式+推荐工具+推荐书目)

全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,该操作系统是由 Linus Torvalds于1991年10月5号首次发布, 它主要受到Minix和Unix思想的启发,是一个。严格地讲,Linux单指操作系统的内核,加上用户空间的应用程序之后,就成为Linux操作系统。

weixin_56228133的博客 1642

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Linux内核源码分析(强烈推荐收藏!)

Linux内核是由林纳斯·托瓦兹(Linus Torvalds)在1991年开始开发的。当时他为了得到一个可以运行UNIX操作系统的个人计算机,开始编写一个操作系统内核,并将其命名为Linux。随后,越来越多的开发者加入到项目中,共同完善和扩展Linux内核。如今,Linux已经成为最流行和广泛使用的开源操作系统内核之一,驱动着许多不同类型的设备和服务器。

嵌入式Linux内核的博客 3823

深度学习工具包 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 内核开发,怎么学好 Linux 内核?

此文包含 Linux 系统的学习路径和书籍推荐。 我觉得学习 Linux 系统,内核驱动时,最开始只需要 ‘Know what, not know how ’。 不用去探究细节,只需要知道整体的框架,知道有哪些需要我们重视的内容即可。 何为 Linux 内核开发? 首先,初步认识下 Linux kernel Linux 内核的框架如上图。 设备子系统负责和硬件打交道。 大部分工作集中在设备子系统部分。 内核开发是什么? 广义上讲,新增或修改上图中内核部分的所有子系统。 非 Linux 源码贡献者.

C/C++Linux、音视频、DPDK 4757

【项目案例】嵌入式Linux比较好的10+练手项目推荐,附项目文档/源码/视频

该项目是一个工业电表智能监测系统,实时监测工业设备的电流和电压,并通过A7启动M4处理器,将读取的电流和电压数据呈现在数码管上。,可实战10余个项目案例,涉及家居、医疗、农业多种应用方向,在案例中使用了多种物联网和嵌入式技术,包括Qt开发、linux应用开发、linux驱动开发、物联网云端接入、MQTT协议、json字符串等。入手,掌握Linux基础与应用开发、C++及Qt界面开发知识后,可以进行Qt综合项目实战,积累项目经验,相对学习门槛低,行业人才需求也大,企业看重项目经验,对于后续找工作非常有帮助。

华清远见IT实验室专栏 1万+

《Linux 源码趣读》学习

《Linux 源码趣读》学习

青少年趣味编程 2724

Android开发书籍推荐:从入门到精通系列学习路线书籍介绍

很多时候我们都会不断收到新手的提问“Android开发的经典入门教材和学习路线?”、“Android 开发入门教程有哪些推荐?”等类似的问题,我们不断重复回答这些问题,这让我们萌生了做《 Android开发书籍推荐:从入门到精通系列学习路线书籍介绍》的想法,整理收集开发大牛的学习经验,以便让我们少走弯路,更快速成长。希望这个系列可以成为大家手头应对新手的好答案。 Diycode整理推荐:本系列由...

1万+

【linux】linux内核设计源码解读推荐书目

Linux内核设计与实现(中文第三版)》《Linux内核设计的艺术》

qq_22744093的博客 653

新手学习嵌入式Linux和Android开发板推荐

一,确定目标,linux是一个非常非常大的概念。想全部吃透是不可能的。理想的说,搞懂linux,就可以做所有工作。个人更倾向于说想做什么样工作,需要侧重学linux的哪部分。 二,选择开发板 学习嵌入式离不开开发板,选择一款合适的开发板会让学习事半功倍。对于学习来说嵌入式开发板的选择要看几点。 1.看硬件性能及软件支持情况,是否满足自己的开发要求,Linux学习目前iMX6ULL开发板比较适合,零基础来说学习linux后期打算进一步学习安卓,四核4412开发板是不错的选择。...

Chihiro_S的专栏 6215

linux源码编译

语法结构command1command2target:要生成的文件(如program或.o对象文件)。:生成target所需的文件(如.c源文件)。command:生成target的具体命令(如示例设置编译器、优化选项等:CC = gcc。

xie__jin__cheng的博客 1818

开源推荐:最新RTL8723BU Linux内核驱动源码

开源推荐:最新RTL8723BU Linux内核驱动源码 去发现同类优质开源项目:https://gitcode.com/ 项目的核心功能/场景 提供最新RTL8723BU Linux内核驱动源码,解决Linux系统下硬件驱动兼容性问题。 项目介绍 在现代Linux操作系统中,硬件驱动程序的兼容性一直是用户和开发者关注的焦点。最新RTL8723BU Linux内核驱动源码项目的推出,正是为了解决R...

gitblog_06769的博客 661

如何获取linux源码

如何获取linux源码 前言 博主是一位刚入门linux的小白,想要通过分析linux的源代码来进一步学习linux,万万没想到,本来满心斗志,到头来竟然被最简单的下载源码这一步给难住了,折腾了两三个小时,才终于找到了源码(也许也可能是因为我太蠢了吧 ==),想到应该也可能有不少人在linux的源码获取上碰到相应的困难,所以想在这里做一个整理,一方面留作自己的提醒,另一方面也希望看到这篇博文的xd...

weixin_42919314的博客 2049

Linux内核源码剖析:TCP/IP实现(上册).pdf资源推荐

Linux内核源码剖析:TCP/IP实现(上册).pdf资源推荐 去发现同类优质开源项目:https://gitcode.com/ 深入Linux内核,探究TCP/IP协议栈实现之谜。 项目介绍 《Linux内核源码剖析:TCP/IP实现(上册)》是一本专注于Linux内核中TCP/IP协议栈实现的专著。本书通过深入浅出的讲解,为读者揭示了Linux内核网络协议栈的架构、设计原理以及具体实现,是L...

gitblog_06730的博客 869
上一篇: 3D模型工具:解放双手【送源码】
下一篇: FastJson 你怎么了?【送源码】
架构文摘JGWZ
博客等级 码龄5年 8808粉丝 345原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值