Linux Shell编程从初学到精通

fnOS飞牛云NAS变身AI服务器:Ollama部署DeepSeek-R1模型避坑指南 本文详细介绍了如何在fnOS飞牛云NAS上部署Ollama框架并运行DeepSeek-R1模型,提供从环境准备到性能优化的完整指南。通过Docker容器化部署和模型量化技术,将家用NAS转变为高效AI服务器,适用于个人知识管理和自动化数据处理等场景。 阅读详情

华清远见系列图书
Linux Shell编程从初学到精通
华清远见嵌入式培训中心 伍之昂 等编著
ISBN 978-7-121-12305-4
2011年2月出版
定价:58.00元(含DVD光盘1张)
16开
468 页
内 容 提 要
Shell是用户与内核进行交互操作的一种接口,是Linux最重要的软件之一。目前最流行的Shell称为bash Shell,bash Shell脚本编程以其简洁、高效而著称,多年来成为Linux程序员和系统管理员解决实际问题的利器。
本书结合大量的示例,系统、全面地介绍了bash Shell脚本编程的语法、命令、技巧、调试等内容,在书中还有很多练习可以引导读者思考,力求使读者掌握Linux bash Shell编程的所有特性。本书结构清晰、易教易学、实例丰富、可操作性强、学以致用,对易混淆和实用性强的内容进行了重点提示和讲解,并配有光盘,光盘中提供书中出现的所有脚本文件、各章的讲解PPT,以及各章的讲解录像。
本书面向广大工程技术工作者,既可作为高等学校教师和相关专业学生的教材,又可作为各类培训班的培训教程。
前    言
随着Linux逐步成为主流的服务器操作系统,Shell脚本编程成为一个优秀的Linux开发者和系统管理员必须掌握的技术之一。bash Shell为当前大部分Linux版本所使用,本书旨在系统地介绍bash 4.0版本下的Shell脚本编程。
本书共分17章:第1章介绍Shell的概念、Shell脚本编程的优势和结构等入门知识;第2章讲述Shell脚本编程不可或缺的Linux系统的基础知识;第3章介绍正则表达式和grep命令族;第4章阐述sed命令和awk命令两种在Shell编程中常用的工具;第5章介绍Shell编程在文件排序、合并和分割上的一些命令;第6章探讨变量和引用;第7章介绍退出、测试、判断及操作符;第8章介绍循环与结构化命令;第9章深入讨论变量的高级用法;第10章详述I/O重定向,包含管道、exec命令等重要内容;第11章简述UNIX/Linux发展过程中出现的其他类型的Shell;第12章介绍子Shell、限制性Shell和进程等内容;第13章介绍函数的用法;第14章介绍别名、列表及数组;第15章罗列了无法归入其他章节的混杂主题,包含脚本编写风格、脚本优化、/dev和/proc文件系统等;第16章介绍了Shell脚本的调试技术;第17章给出六个Shell编程的实例,读者需要综合使用前面章节所述的Shell命令和编程技巧,涉及系统管理、文本处理和数据库等多个方面。
本书内容丰富,覆盖了Shell编程的大部分技术,并结合典型例子透彻地介绍了Shell命令、选项、结构中的重点和难点。各章最后还配有一定数量的练习题供读者学习。为了帮助读者更加直观地学习本书,我们将书中出现的所有脚本文件、各章的讲解PPT,以及各章的讲解录像都收录到本书的配套光盘中。
本书面向广大工程技术工作者,既可作为高等学校的教师和相关专业学生的教材,又可作为各类培训班的培训教程。
本书由南京财经大学江苏省电子商务重点实验室伍之昂组织编写。在本书编写过程中,实验室主任曹杰教授在全书的体系结构、理论阐释和实例选取等方面提出了许多精辟的见解,研究生陈志杰同学精心润色了本书的文字。参加本书编写工作的还有高淑娟、李子龙、王丽娜、周毅、林小峰、刘刚、马海波、李强、吴慧、马玉刚、冯浩、唐爱琴、王明明、蒋志。在此,对他们表示诚挚的谢意。
限于笔者水平,本书一定有不少错误和不妥之处,恳请计算机专家、同行和读者批评、指正,您可以通过E-mail的方式与作者联系,作者邮箱是zawu@seu.edu.cn。
编  者
目    录
第1章  Shell脚本编程概述 1
1.1  Linux和Shell概述 2
1.1.1  Linux简介 2
1.1.2  Shell简介 3
1.2  Shell脚本编程的优势 5
1.3  第一个Shell脚本例子 6
1.3.1  Shell脚本的基本元素 6
1.3.2  执行Shell脚本 7
1.4  本章小结 8
第2章  Linux文件系统和文本编辑器 9
2.1  用户和用户组管理 10
2.1.1  用户管理常用命令 10
2.1.2  用户组管理常用命令 14
2.2  文件和目录操作 16
2.2.1  文件操作常用命令 17
2.2.2  目录操作常用命令 21
2.2.3  文件和目录权限管理 25
2.2.4  查找文件命令——find 28
2.3  文本编辑器 31
2.3.1  vi编辑器 31
2.3.2  Gedit编辑器 35
2.4  本章小结 36
2.5  上机提议 37
第3章  正则表达式 39
3.1  正则表达式基础 40
3.2  正则表达式的扩展 43
3.3  通配 44
3.4  grep命令 46
3.4.1  grep命令基本用法 47
3.4.2  grep和正则表达式结合使用的一组例子 53
3.4.3  grep命令族简介 57
3.5  本章小结 58
3.6  上机提议 58
第4章  sed命令和awk编程 60
4.1  sed命令基本用法 61
4.2  sed编程的一组例子 63
4.2.1  sed命令选项的一组例子 63
4.2.2  sed文本定位的一组例子 66
4.2.3  sed基本编辑命令的一组例子 68
4.2.4  sed高级编辑命令的一组例子 76
4.3  awk编程 79
4.3.1  awk编程模型 80
4.3.2  awk调用方法 80
4.4  awk编程的一组例子 81
4.4.1  awk模式匹配 81
4.4.2  记录和域 82
4.4.3  关系和布尔运算符 84
4.4.4  表达式 86
4.4.5  系统变量 88
4.4.6  格式化输出 89
4.4.7  内置字符串函数 91
4.4.8  向awk脚本传递参数 93
4.4.9  条件语句和循环语句 94
4.4.10  数组 95
4.5  本章小结 99
4.6  上机提议 99
第5章  文件的排序、合并和分割 101
5.1  sort命令 102
5.1.1  sort命令的基本用法 102
5.1.2  sort和awk的联合用法 106
5.2  uniq命令 108
5.3  join命令 111
5.4  cut命令 114
5.5  paste命令 115
5.6  split命令 117
5.7  tr命令 119
5.8  tar命令 122
5.9  本章小结 125
5.10  上机提议 126
第6章  变量和引用 128
6.1  变量 129
6.1.1  变量替换和赋值 129
6.1.2  无类型的Shell脚本
变量 132
6.1.3  环境变量 133
6.1.4  位置参数 140
6.2  引用 141
6.2.1  全引用和部分引用 142
6.2.2  命令替换 143
6.2.3  转义 146
6.3  本章小结 149
6.4  上机提议 150
第7章  退出、测试、判断及操作符 152
7.1  退出状态 153
7.2  测试 154
7.2.1  测试结构 154
7.2.2  整数比较运算符 154
7.2.3  字符串运算符 156
7.2.4  文件操作符 157
7.2.5  逻辑运算符 159
7.3  判断 161
7.3.1  简单if结构 162
7.3.2  exit命令 163
7.3.3  if/else结构 164
7.3.4  if/else语句嵌套 166
7.3.5  if/elif/else结构 169
7.3.6  case结构 172
7.4  运算符 174
7.4.1  算术运算符 175
7.4.2  位运算符 176
7.4.3  自增自减运算符 178
7.4.4  数字常量 178
7.5  本章小结 180
7.6  上机提议 180
第8章  循环与结构化命令 182
8.1  for循环 183
8.1.1  列表for循环 183
8.1.2  不带列表for循环 187
8.1.3  类C风格的for循环 188
8.2  while循环 191
8.2.1  计数器控制的while循环 191
8.2.2  结束标记控制的while循环 193
8.2.3  标志控制的while循环 195
8.2.4  命令行控制的while循环 196
8.3  until循环 198
8.4  嵌套循环 199
8.5  循环控制符 203
8.5.1  break循环控制符 203
8.5.2  continue循环控制符 206
8.6  select结构 208
8.7  本章小结 210
8.8  上机提议 210
第9章  变量的高级用法 212
9.1  内部变量 213
9.2  字符串处理 221
9.3  有类型变量 227
9.4  间接变量引用 230
9.5  bash数学运算 232
9.5.1  expr命令 232
9.5.2  bc运算器 234
9.6  本章小结 235
9.7  上机提议 236
第10章  I/O重定向 238
10.1  管道 239
10.1.1  管道简介 239
10.1.2  cat和more命令 240
10.1.3  sed命令与管道 242
10.1.4  awk命令与管道 244
10.2  I/O重定向 246
10.2.1  文件标识符 246
10.2.2  I/O重定向符号及其用法 248
10.2.3  exec命令的用法 252
10.2.4  代码块重定向 255
10.3  命令行处理 258
10.3.1  命令行处理流程 258
10.3.2  eval命令 261
10.4  本章小结 264
10.5  上机提议 264
第11章 Linux/UNIX Shell类型与区别 266
11.1  Linux/UNIX Shell起源与分类 267
11.2  dash简介 268
11.3  tcsh简介 270
11.4  Korn Shell简介 275
11.5  本章小结 280
第12章 子Shell与进程处理 281
12.1  子Shell 282
12.1.1  内建命令 282
12.1.2  圆括号结构 285
12.2  Shell的限制模式 290
12.3  进程处理 292
12.3.1  进程和作业 294
12.3.2  作业控制 295
12.3.3  信号 299
12.3.4  trap命令 302
12.4  本章小结 305
12.5  上机提议 305
第13章 函数 307
13.1  函数的定义和基本知识 308
13.2  向函数传递参数 311
13.3  函数返回值 314
13.4  函数调用 315
13.4.1  脚本放置多个函数 316
13.4.2  函数相互调用 317
13.4.3  一个函数调用多个函数 319
13.5  局部变量和全局变量 320
13.6  函数递归 321
13.6.1  使用局部变量的递归 322
13.6.2  不使用局部变量的递归 323
13.7  本章小结 325
13.8  上机提议 326
第14章 别名、列表及数组 328
14.1  别名 329
14.2  列表 332
14.3  数组 334
14.3.1  数组的基本用法 335
14.3.2  数组的特殊用法 339
14.3.3  用数组实现简单的数据结构 343
14.4  本章小结 349
14.5  上机提议 349
第15章  一些混杂的主题 352
15.1  脚本编写风格 353
15.1.1  缩进 353
15.1.2  {}的格式 355
15.1.3  空格和空行的用法 355
15.1.4  判断和循环的编程风格 356
15.1.5  命名规范 357
15.1.6  注释风格 358
15.2  脚本优化 359
15.2.1  简化脚本 359
15.2.2  保持脚本的灵活性 361
15.2.3  给用户足够的提示 362
15.3  Linux中的特殊命令 364
15.3.1  shift命令 364
15.3.2  getopts命令 367
15.4  交互式和非交互式Shell脚本 369
15.4.1  非交互式Shell脚本 369
15.4.2  交互式Shell脚本 371
15.5  /dev文件系统 372
15.5.1  /dev文件系统基础知识 372
15.5.2  /dev/zero伪设备 374
15.5.3  /dev/null伪设备 375
15.6  /proc文件系统 376
15.6.1  使用/proc/sys优化系统参数 378
15.6.2  查看运行中的进程信息 379
15.6.3  查看文件系统信息 380
15.6.4  查看网络信息 380
15.7  Shell包装 381
15.8  带颜色的脚本 383
15.9  Linux脚本安全 389
15.9.1  使用shc工具加密Shell脚本 390
15.9.2  Linux Shell脚本编写的病毒 391
15.9.3  Linux Shell中的木马 392
15.10  本章小结 392
15.11  上机提议 393
第16章  Shell脚本调试技术 395
16.1  Shell脚本调试概述 396
16.2  Shell脚本调试技术 398
16.2.1  使用trap命令 398
16.2.2  使用tee命令 401
16.2.3  调试钩子 403
16.2.4  使用Shell选项 404
16.3  本章小结 409
16.4  上机提议 409
第17章  bash Shell编程范例 412
17.1  将文本文件转化为HTML
文件 413
17.2  查找文本中n个出现频率最高的单词 417
17.3  伪随机数的产生和应用 419
17.4  crontab的设置和应用 423
17.5  使用MySQL数据库 426
17.5.1  MySQL基础 426
17.5.2  Shell脚本使用MySQL 427
17.6  Linux服务器性能监控系统 432
17.6.1  Ganglia简介及安装 432
17.6.2  提取服务器性能参数名称及数据 435
17.6.3  动态更新服务器监控数据 441
17.7  本章小结 443
17.8  上机提议 443
附录 445
附录A  POSIX标准简介 446
附录B  常用ASCII码对照表 447
附录C  Linux信号及其意义 452
附录D  bash内建变量索引 453
附录E  bash内建命令索引 455
参考文献 458

飞牛 NAS 部署 Hermes Agent 全指南:打造 24 小时在线、自我进化的 AI 智能体! 当大多数人还在把 AI 当聊天机器人使用时,我已经把它部署到了家里的飞牛 NAS 上,让它 24 小时在线工作、记忆我的习惯、自动执行任务,甚至还能不断学习新的技能。今天带你从零搭建这个真正属于自己的 AI Agent。🚀 阅读详情

相关推荐

飞牛fnNAS部署DeepSeek

本文介绍了在飞牛NAS上部署DeepSeek AI模型的详细步骤。首先通过Docker拉取ollama工具并创建容器,配置端口后下载DeepSeek模型。接着部署WebUI界面和Windows客户端AnythingLLM,完成本地AI系统的搭建。教程包含终端操作命令、yml配置文件等具体指引,帮助用户实现私密AI问答功能,尤其适合不愿使用公共AI服务的用户。整个部署流程清晰完整,从基础环境搭建到最终应用配置均有详细说明。

dgnankai的专栏 905

飞牛EVO2(fnOS)用Docker部署Hermes-Agent步骤

鼠标右键粘贴key,终端不会显示,直接回车,选择下面的免费模型。因为 setup-hermes.sh 执行是单独建立的环境。映射到外部的文件要改权限 chmod 777。这是 Hermes 源代码 + 运行环境,模型选择免费模型,需要去。新建下api-key。

地上一の鹅的博客 3604

STM32F407通过SMBus协议精准读取BQ40Z50电池电量

本文详细介绍了STM32F407通过SMBus协议精准读取BQ40Z50电池电量的实现方法。从硬件连接到软件驱动开发,再到通信异常排查,提供了完整的解决方案。重点解析了SMBus协议的特殊时序要求、GPIO模拟驱动的关键代码,以及实际调试中的常见问题与对策,帮助开发者高效完成电池管理系统开发。

weixin_29189003的博客 253

fnOS 飞牛私有云 NAS 本地部署 DeepSeek-R1 并实现外部访问

DeepSeek-R1 现在可谓是 AI 界的宠儿,随着越来越多的人使用 DeepSeek ,就经常会出现 DeepSeek 服务器繁忙的情况。但是选择在本地部署 DeepSeek 就能轻松解决这个问题。本文将详细的介绍如何在本地局域网内的 fnOS 飞牛云内安装部署 DeepSeek-R1 以及利用路由侠的内网穿透平台实现外网访问本地部署的 DeepSeek-R1 模型。

Hhjhjhuh的博客 2521

土地利用数据从1972到2023:如何利用Landsat和Sentinel数据构建长期变化监测模型

本文详细解析了如何利用1972至2023年的Landsat和Sentinel遥感数据构建土地利用长期变化监测模型。通过多源数据融合策略、时间序列预处理流程和深度学习算法,实现高精度的土地利用分类与变化检测,为生态评估和城市规划提供科学依据。文章还探讨了验证方法和实际应用案例,展示了长期遥感数据在环境建模中的独特价值。

weixin_28720573的博客 444

金融风控实战:用Python从零搭建贷款违约预测模型(附完整数据集)

本文详细介绍了如何使用Python从零构建金融风控中的贷款违约预测模型,涵盖数据清洗、特征工程、模型构建与评估等全流程。通过实战案例展示逻辑回归、XGBoost和LightGBM三大算法的对比,特别强调AUC-ROC指标在金融风控中的重要性,并附完整数据集和代码实现。

weixin_29175469的博客 238

LINUX SHELL编程从初学到精通

LINUX SHELL编程从初学到精通 去发现同类优质开源项目:https://gitcode.com/ 资源介绍 本仓库提供了一个名为“LINUX SHELL编程从初学到精通”的资源文件下载。该资源文件由华清远见培训中心精心编写,旨在帮助初学者逐步掌握LINUX SHELL编程的核心概念和高级技巧,最终达到精通的水平。 资源内容 该资源文件涵盖了从基础到高级的LINUX SHELL编程知识,包括...

gitblog_06698的博客 398

动力锂电池-二阶RC模型等效电路-RLS参数辨识-Simulink

1.锂电池二阶RC等效电路模型

QQ1978009424的博客 1万+

linux指令从初学到精通 pdf,linux shell编程从初学到精通

shell脚本编程成为一个优秀的linux开发者和系统管理员必须掌握的技术之一,但如何才能更好的常握呢?这里小编带来了linux shell编程从初学到精通,由华清远见嵌入式培训中心的伍之昂编著,全书内容丰富,覆盖了shell编程的大部分技术,并结合典型例子透彻地介绍了shell命令,选项,结构中的重点和难点。并且每一章节都有一定数量的练习题供读者学习,能够适用于广大工程技术工作者下载阅读。内容介...

weixin_39945792的博客 280

【数学建模】编程手学习路线

在学习过程中,建议注重理论与实践相结合,多进行实例练习和项目实践,以巩固所学知识并提升实际应用能力。同时,保持对新技术和新方法的关注和学习,不断提升自己的专业素养和竞争力。NumPy、Pandas、Matplotlib和Seaborn等库是数据处理和可视化的重要工具。掌握常用机器学习算法的原理和应用,如决策树、支持向量机、神经网络等。学习内容包括微积分、线性方程组、矩阵运算、概率分布、统计推断等。学习内容包括基本语法、函数和模块、面向对象编程、文件操作等。深入了解优化理论和方法,如梯度下降法、牛顿法等。

2301_79586491的博客 2962

squidpy 教程 2:利用 Scanpy 和 Squidpy 进行空间数据的可视化分析

本教程详细介绍了如何利用Squidpy和Scanpy对空间转录组数据进行可视化分析。通过将Scanpy处理得到的聚类结果映射回原始组织图像,并结合基因表达与空间邻域信息,帮助研究者直观揭示细胞类型分布、基因表达模式及空间相互作用,从而深入挖掘空间组学数据的生物学意义。

weixin_29081703的博客 446

Linux之Shell编程从初学到精通

Linux之shell编程 什么是shell 我们常用的linux命令行其实就是shell 我们可以通过shell来让linux系统完成我们的指令 那shell编程又是什么意思呢? shell编程其实就是把之前在shell中执行的单个命令按照一定的逻辑和规则,组装到一个文件中,后面执行的时候就可以直接执行这个文件了,这个文件我们称之为shell脚本。 我的第一个shell脚本 shell脚本的后缀倒没有那么严格的要求,只是建议大家以.sh结尾,这算是一个约定,大家都遵守这个约定,后期只要看到.sh结尾的文件

weixin_43592276的博客 747

什么是华为OD?怎么才能通过华为OD机试?华为OD机试怎么刷题?(2024最新华为OD机试E卷更新中)

华为OD是Outsourcing Dispacth模式,是华为和外企德科联合招聘的简称。目前华为大多数是OD招聘。OD模式也是华为提出的一种新的用工形式,每年都会从OD项目挑优秀员工转为正编。所有OD和正式员工一样对待,没有差别,部门平时开会、评审等活动都是一起参加的,是同薪同酬,都是由华为的HR直接定的薪资,看的是我们技术能力。华为是大企业,能到华为上班也是有能力的,每个部门都有好多职位,是金子,在哪都会发光。

KJ.JK 11万+

《Linux Shell编程 从初学到精通》 学习笔记

第一章 shell脚本编程概述 1.linux的流行是因为它的高可定制性。由于内核仅有几兆的代码量,我们可以根据需要抽离很多用不到的模块。比如设计一个简陋的计算器,就完全不需要网络模块。 2.Linux的特征是自由 开放 强大,自Linux Torvalds开发初代linux以来,已经衍生出了很多各有特色的版本。我们使用ubuntu 16.04STL作为实验版本。 3.Shell简介 li

carpenter的博客 6151

ubuntu 20.04 搭建多用户远程桌面共享及同时在线使用

摘要:本文介绍了在物理机上配置远程桌面访问的完整流程。通过setup_xrdp.sh脚本自动安装xrdp服务,修改配置文件并开放3389端口。同时提供了用户管理脚本:add_rdp_users.sh用于创建带sudo权限的远程用户,del_rdp_users.sh用于删除用户及主目录。还包含批量操作脚本add_rdp_all.sh和del_rdp_all.sh,支持一次性创建/删除多个用户(如dev1-dev5),所有用户密码统一设置为111111。完整方案实现了远程桌面环境的快速部署和用户集中管理。

623

深度学习工具包 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 Shell编程从初学到精通笔记

2、Linux文件系统和文本编辑器 2.1、用户和用户组管理 2.1.1、用户管理常用命令      useradd:用户账号添加指令      useradd [option] [username]      -g :用于添加用户账号时指定该用户的私有组。      -G:用于添加附属组      -D:用于显示或设置useradd命令所使用的默认值      -d:指定用户主目录,如果此目录不...

yyjbluesword的专栏 284

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

《Linux Shell编程从初学到精通(第2版)》pdf

下载地址:网盘下载 内容简介 编辑 shell是用户与内核进行交互操作的一种接口,是linux最重要的软件之一。目前最流行的shell称为bash shell,bash shell脚本编程以其简洁、高效而著称,多年来成为linux程序员和系统管理员解决实际问题的利器。 《linux shell编程从初学到精通》结合大量的示例,系统、全面地介绍了...

weixin_30825199的博客 443

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

LINUX SHELL编程从初学到精通(第一章 Shell脚本编程概述)

1.3第一个Shell脚本例子

华美樂章`的专栏 802

Linux Shell编程 从初学到精通 习题答案 课后题答案(第八章)

这本书没有答案,给作者发邮件问了,他就没有提供答案。所以只好自己做题了 第五章 5.1  Q Cai-English-1984-Jiangsu-7 Q Cai-English-1984-Jiangsu-7 Q Cai-English-1984-Jiangsu-7 Q Cai-English-1984-Jiangsu-7 Q Cai-English-1984

漫步 6074

Linux入门之shell编程及hello world!

曾经有人说过,学习Linux不知道shell编程,那就是不懂linux。要熟练掌握shell编程,必须要大量的练习。初学者可以用shell打印hello world,开始学习历程!shell脚本编程需要如下几个规则: 1、shell脚本名称命名一般为英文、大写、小写; 2、不能使用特殊符号、空格来命名; 3、shell脚本后缀以.sh结尾; 4、不建议shell为纯数字,一般以脚本功...

falnet的博客 327
上一篇: Linux C编程从初学到精通
下一篇: Linux常用工具速查实用手册
Broadview
博客等级 码龄22年 15粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值