一、linux方面
1、按文件大小升序查看
ll -S -h -r
2、目录下文件非常多(几百万),mv移动显示参数过长,怎么办?
ls | xargs -i {} mv {} 目标目录
ls | xargs -t -i {} mv {} 目标目录 -- 输出所执行命令
3、ll和find的其他用法
ll | grep "^-" --只显示文件
ll | grep "^d" -- 只显示目录
ll |grep "/$" -- 只显示目录
find . -type -f | xargs -i {} mv {} 目标目录
find . -type -d --查找目录
find . -type -f -size -/+数字b/m -- 查找大小小于或小于某个数字的文件
find . -maxdepth 1 -type f --只查找当前目录(子目录不查找)下的文件
4、linux下,cmd1 && cmd2 -- cmd1执行成功之后,才执行cmd2
5、查询当前文件的行数
grep -n '' filename | awk -F : '{print $1}' | tail -n 1
6、shell常见参数
$#:参数数目
$@:代表"$1" "$2" ... "$n"
$*:代表"$1 C $2 C ... C $n",其中C代表哦分隔字符,默认为空白字符
$n:代表第n个参数
$0:代表shell文件名称
7、批量杀死多进程程序中的所有子进程
ps -ef | grep postgres | grep -v grep | awk '{print $2}' | xargs kill -9
或
ps -ef | grep postgres | grep -v grep | awk '{print "kill -9 " $2}' | sh
二、keras方面
1、自定义指标
需求:在keras训练模型时,compile中自带的accu和loss是针对单个batch_size而言,那么如何在一次epoch结束之后查看整个train或val的accu、recall、precious等。
方法:自定义callback的子类,在epoch函数中使用self.model对train或val数据集做计算。自定义类加到fit或fit_generator中的回调参数列表中。
2、使用fit_generator,需要注意自定义的data_generator是否在一次epoch中准确、完整的读取train数据集。对于epoch的最后一个batch,其大小不一定等于预定义的batch_size。
3、BN层添加在RELU层之前
三、python方面
1、"python -m 软件包.模块名称" 和 "python 模块名称.py"的区别
解释:带有-m的参数,以脚本方式运行模块,模块启动之后会自动添加当前的目录""(空字符串形式)到sys.path,而没有-m,则会添加当前的完整目录到sys.path。
用处:一个项目下存在多个package,package之间存在模块之间的引用,在待运行模块的上一级目录,执行"python -m 当前目录名称.待运行模块名称",在待运行模块中即可使用import导入当前目录的其他同级目录下的模块!
2、pycharm创建package,自动创建的__init__模块的作用。
解释:
(1)__init__可以自动标识当前目录是一个package,是的其他package下的模块可以引用当前package下的模块
(2)在__init__,py中定义__all__变量,填入当前package下的其他模块名称,可以实现下面的效果。
from 当前package import *
即自动导入当前package下的其他模块,无需手动导入当前package下的各个模块。
3、python中==判断两个变量值是否相同,is判断两个变量的id(地址)是否相同。
4、python函数之间传递列表或更复杂的数据类型,传递的是数据的地址,若形参改变了,那么实参也会改变!
5、进度条包:tqdm,点号访问的字典:Munch
四、算法方面
1、dfs用于判断无向图中是否存在回路,以及存在哪些回路,通过给各个节点标识0 1 2 三种不同状态实现。
-- Over --