- 博客(24)
- 收藏
- 关注
原创 bash之函数
说明:可以带 function fun() 定义,也可以直接 fun() 定义,不带任何参数。参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。return 后跟数值 n(0-255)函数返回值在调用该函数后通过 $?来获得所有函数在使用前必须定义。
2024-10-17 18:54:38
355
原创 bash之流程控制
和 Java、PHP 等语言不一样,sh 的流程控制不可为空在 sh/bash 里可不能这么写,如果 else 分支没有语句执行,就不要写这个 else。
2024-10-16 18:59:21
1326
原创 leetcode刷题--电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
2024-10-15 18:35:06
371
原创 bash之基本运算符
原生 bash 不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。注意使用的反引号(esc 键下边)表达式和运算符之间要有空格 $a + $b 写成 $a+$b 不行条件表达式要放在方括号之间,并且要有空格 [ $a == $b ] 写成 [$a==$b] 不行乘号(*)前边必须加反斜杠(\)才能实现乘法运算。
2024-10-15 15:24:28
846
原创 bash之变量和参数
定义变量时,变量名不加美元符号($,PHP 语言中变量需要),如:注意变量名和等号之间不能有空格。同时,变量名的命名须遵循如下规则:(1)首个字符必须为字母(a-z,A-Z)。(2)中间不能有空格,可以使用下划线(_)。(3)不能使用标点符号。(4)不能使用 bash 里的关键字(可用 help 命令查看保留关键字)。除了直接赋值,还可以用语句给变量赋值,如:加花括号帮助解释器识别变量的边界,若不加,解释器会把 mynameGood 当成一个变量(值为空)推荐给所有变量加花括号。
2024-10-14 16:43:36
856
原创 bash特殊字符
命令组:在括号中的命令列表,将会作为一个子 shell 来运行。在括号中的变量,由于是在子 shell 中,所以对于脚本剩下的部分是不可用的。父进程,也就是脚本本身,将不能够读取在子进程中创建的变量,也就是在子 shell 中创建的变量。如:输入代码:/bin/basha=123( a=321;echo "$a" #a的值为123而不是321,因为括号将判断为局部变量运行代码:123在圆括号中 a 变量,更像是一个局部变量。初始化数组:创建数组:输入代码:/bin/bash。
2024-10-12 17:15:39
1092
原创 bash特殊字符
行首以 # 开头(除#!之外)的是注释。是用于指定当前脚本的解释器,我们这里为 bash,且应该指明完整路径,所以为 /bin/bash。当然,在 echo 中转义的 # 是不能作为注释的:输入如下代码,并保存。
2024-10-10 19:45:04
1094
原创 bash的介绍与入门
bin/bash 表明该文件是一个 BASH 程序,需由 /bin 目录下的 bash 程序来解释执行。BASH 程序一般存放在 /bin 目录,若你的 Linux 系统比较特殊,也可能在 /sbin、/usr/local/bin、/usr/bin、/usr/sbin 或 /usr/local/sbin 等目录。需要注意的是,BASH 中的绝大多数语句结尾处没有分号。/bin/bash 这一行是表示使用 /bin/bash 作为脚本的解释器,这行要放在脚本的行首并且不要省略。也可以用这条命令,直达效果。
2024-10-09 18:49:14
699
原创 linux命令之简单的文本操作
tr 命令可以用来删除一段文本信息中的某些文字。或者将其进行转换。使用方式:常用的选项有:-d:删除和 set1 匹配的字符,注意不是全词匹配也不是按字符顺序匹配-s:去除 set1 指定的在输入文本中连续并重复的字符举例:# 删除 "hello shiyanlou" 中所有的'o','l','h'# 将"hello" 中的ll,去重为一个l# 将输入文本,全部转换为大写或小写输出。
2024-10-08 15:47:48
428
原创 linux命令之文件系统操作与磁盘管理
之前提到过关于 Linux 的很重要的一点,一切即文件,在 Linux 上,硬件的设备驱动(如硬盘)和特殊设备文件(如 /dev/zero 和 /dev/random)都像普通文件一样,只是在各自的驱动程序中实现了对应的功能,dd 也可以读取文件或写入这些文件。dd 的命令行语句与其他的 Linux 程序不同,因为它的命令行选项格式为 选项=值,而不是更标准的 --选项 值 或 -选项=值。mount [-o [操作选项]] [-t 文件系统类型] [-w|--rw|--ro] [文件系统源] [挂载点]
2024-10-08 14:04:55
465
原创 linux命令之环境变量与文件查找
注:这里一定要使用绝对路径。现在可以在任意目录执行那两个命令了(注意需要去掉前面的 ./)。给 PATH 环境变量追加了一个路径,它也只是在当前 Shell 有效,一旦退出终端,再打开就会发现又失效了。有没有方法让添加的环境变量全局有效?或者每次启动 Shell 时自动执行上面添加自定义路径到 PATH 的命令?下面就来说说后一种方式——让它自动执行。在每个用户的 home 目录中有一个 Shell 每次启动时会默认执行一个配置脚本,以初始化环境,包括添加一些用户自定义环境变量等等。
2024-10-07 16:45:21
711
原创 vim常用命令
从普通模式进入插入模式:i:在当前光标位置前插入文本。a:在当前光标位置后插入文本。o:在当前行下方插入新行并进入插入模式。O:在当前行上方插入新行并进入插入模式。从插入模式返回普通模式:按 <Esc> 键。从普通模式进入命令行模式:按 :。
2024-10-07 14:03:02
140
原创 Linux 目录结构及文件基本操作
Linux 的目录与 Windows 的目录的区别,或许对于一般操作上的感受来说没有多大不同,但从它们的实现机制来说是完全不同的。以往的 Windows 一直是以存储介质为主,主要通过盘符(C 盘、D 盘……)及分区来实现文件管理,目录在这种情况下就显得不是那么重要,除系统文件之外的用户文件放在任何地方也没有多大关系。所以通常 Windows 在使用一段时间后,磁盘上面的文件目录会显得杂乱无章(少数善于整理的用户除外)。
2024-09-24 19:49:31
622
原创 Linux命令先导
你有没有遇到过这种情况,当你在 Linux 命令行中无意输入了一个不知道的命令,或者错误地使用了一个命令,导致在终端里出现了你无法预料的情况,比如,屏幕上只有光标在闪烁却无法继续输入命令,或者不停地输出一大堆你不想要的结果。你想要立即停止并恢复到你可控的状态,那该怎么办呢?这时候你就可以使用Ctrl+c键来强行终止当前程序(你可以放心它并不会使终端退出)。[Ctrl+c]Ctrl+d 键盘输入结束或退出终端Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行。
2024-09-23 19:13:18
432
原创 leetclode刷题 两数相加(2)
给你两个的链表,表示两个非负的整数。它们每位数字都是按照的方式存储的,并且每个节点只能存储数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
2024-09-11 14:35:16
324
原创 classification(李宏毅机器学习课程笔记7)
如果同时在左上角大的loss开始训练,希望可以走到左下角小的loss,那么交叉熵在左上角有斜率可以更好的训练优化,使用交叉熵可以简化优化的过程。classification还要经过一个处理:softmax,他的主要功能就是把y中的任何数值移动到0-1之间。有两个计算e的方法,但是cross-entropy更常用,很多时候是和softmax绑在一起的。先把所有算出来的y全部取e,再除以所有取e的y的和,即为sofemax后的y。原本是接近一个数,,现在是接近一个向量并且分为几个class。
2024-08-23 09:53:21
169
原创 batch and momentum(李宏毅机器学习课程笔记6)
两个极端情况,一个是batch为全部,另一个是1,看上去batch大的需要计算的时间长但是稳定,另外一个小的时间短但是不稳定。1和1000也不会差太多,但是如果太大就不行了。实际上总的太说大的batch相对花的时间比较短。但是过大的batch还会导致,训练的效果变差,原因就是输入的训练资料太多了,优化失败了。但是还有一个平行计算的问题。那么大的batch就不一定时间比较长。加上momentum之后:要根据gradient和上一步的方向合起来运算。一般的算出gradient然后反方向更新,然后重复。
2024-08-20 22:39:41
200
原创 学习率(李宏毅机器学习课程笔记5)
训练是非常难的,学习率太大只会在两侧震荡,loss掉不下去。而设置的比较小loss可以掉下去但是达不到最低点。所以所有参数公用一个学习率限制太大了,应该每个参数一个学习率。训练卡住的原因不只是因为critical point,图中loss几乎不动的时候,gradient的值也没有变得非常小。他只是单纯卡住了,loss没法下降了。这样的话就可以根据每个参数gradient的不同改变学习率。可以采用让学习率随时间的变小而变小的办法,这样就可以从左图的状态变成右边的。可以自主设置a,也就是计算出来的g的重要性。
2024-08-19 21:40:58
255
原创 优化失败——梯度等于0时候的异常(李宏毅机器学习课程笔记4)
因为H是一个矩阵,所以有相应的特征值,如果H的特征值是全正的,那它就是local minina,如果是全负的,那它就是local maxima,如果有正有负就是saddle point。按照上面的步骤,分别求一阶微分和二阶微分,算出矩阵H后,在求出其相应的特征值,就可以判断是否是saddle point。结果是一正一负,那中心点就是saddle point。并且当处于critial point时,绿色的一项为0,可以通过红色的一项判断当前点的状态。算出特征向量,根据特征向量的方向,就是L减小的方向。
2024-08-16 21:22:53
278
原创 机器学习任务攻略(李宏毅机器学习课程笔记3)
先训练一个简单的,浅的模型,看它的loss的程度,如果复杂的模型的loss还达不到简单的的模型的loss那就是优化的问题。因为模型的弹性很大,在没有经过训练资料训练的地方,可能会有freestyle,再把测试集放进去之后就会有很大的loss。出现model bias的原因:模型太简单,可以让loss变低的函数不在model变低的范围内。model里面描述了,可以使loss最小的,但是因为局部最低点,没找出来。解决办法:重新设计你的model,增加更多的特征,增加更多层和神经元。一.loss大的原因。
2024-08-15 21:55:16
159
原创 深度学习基本概念(李宏毅机器学习课程笔记2)
跟笔记一的方法一样,将所有未知的超参数带入,在和label准确值求e,最后相加除以数据量总数N即为loss。红色的就是优化后的model,它可以由一个常数+好多个linear model组成。会先将N随机分成好多个batch,再将一个batch看成一份资料,计算出一个。分别求微分,再组合成向量g,跨度后的向量即为原来的。可以用relu函数代替sigmoid来写出函数。由n个蓝色的sigmoid相加再加上一个常数。代表所有未知的超参数组成的一个大的向量。,之后引入下一个batch,以此类推。
2024-08-14 22:19:50
244
原创 机器学习基本概念(李宏毅老师机器学习课程笔记1)
1.随便选择一个w,根据Loss的函数(自己设置的)求出在w那一点的斜率,如果斜率是负的就增加w,是正的就减少w(增加或者减少的度:1斜率大(小)就增加大(小)2.学习率(自己设置的,也就是超参数hyperparameters),重复步骤然后找出使L最小的w.通过对任务的理解加深,增加model的天数得出不同的model,算出不同的loss,可以看出随着天数的增加loss的值没有显著变化(linear model)跟上述步骤一样,先随机选择w和b,计算斜率,然后决定移动方向,重复步骤最后找到最好的w和b。
2024-08-13 21:44:41
217
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人