0%

2019年11月10日 下午9:42

bg和fg命令 - Chen Jian - 博客园

  1. 挂起这个程序 ctrl-z
    • 可以看到系统的提示:[1]+ Stopped _root_bin/rsync.sh
  2. 然后我们可以吧程序调度到后台执行:bg 1
    • (bg 作业号)
    • [1]+ _root_bin/rsync.sh &
  3. 用jobs命令查看任务jobs
    • [1]+ Running _root_bin/rsync.sh &
    • 把它调回到控制台运行
  4. fg 1
    • _root_bin/rsync.sh
    • 这样,你这控制台上就只有等待这个任务完成了。

2019年11月9日 下午3:45
视觉目标跟踪DaSiamRPN - 简书
DASiamRPN阅读笔记:Distractor-aware Siamese Networks for Visual Object Tracking

2019年7月29日 下午12:17
SiamRPN系列文章串讲

  1. 我的想法就是:还是由于深度学习的不可解释性,导致在训练的过程中,会学习到一些我们不想要的关系
    1. 物体一般在搜索框的中间
    2. 对有语义的物体响应值大
  2. 我们在使用深度学习的时候
    1. 学习到我们想要的目的
    2. 同时,减小学习到一些人都没有意识到的一些关系,::这也是很多深度学习论文在干的事情::
  3. ::修改网络的角度:::
    1. 算法:SiamRPN
    2. 训练集:DaSiamRPN
    3. 孪生网络本身:SiamRPN++

2019年6月5日 上午12:27
SiamFC算法改进思路 | WorldHellooo’s Blog

自动化所:朱政,DaSiamRPN一作
SiamRPN系列文章 - 知乎
Zheng Zhu (朱政)

论文题目:Fully-convolutional siamese networks for object tracking

论文地址: https://arxiv.org/abs/1606.09549
项目地址: https://www.robots.ox.ac.uk/~luca/siamese-fc.html
tf实现: https://github.com/torrvision/siamfc-tf
pytorch实现: https://github.com/rafellerc/Pytorch-SiamFC
朱政分析:SiamFC文章,对SINT(Siamese Instance Search for Tracking,in CVPR2016)改进,第一个提出用全卷积孪生网络结构来解决tracking问题的paper,可以视为只有一个anchor的SiamRPN

  1. ::学的是什么?::
    1. condition和exampler之间的相似度
  2. 学习到的东西如何解决你的问题?
    1. 在测试的时候,如果相似性高,那么这个condition输出高分

重点描述:

1
Learning to track arbitrary objects can be addressed using similarity learning. We propose to learn a function f(z, x) that compares an exemplar image z to a candidate image x of the 【same size】 and returns a high score if the two images depict the same object and a low score otherwise. To find the position of the object in a new image, we can then exhaustively test 【all possible locations】 and choose the candidate with the maximum similarity to the past appearance of the object. In experiments, we will simply use the 【initial appearance】 of the object as the exemplar. The function f will be learnt from a dataset of videos with labelled object trajectories

论文题目:High Performance Visual Tracking with Siamese Region Proposal Network

论文地址: http://openaccess.thecvf.com/content_cvpr_2018/papers/Li_High_Performance_Visual_CVPR_2018_paper.pdf
项目地址: http://bo-li.info/SiamRPN/
朱政分析: SiamRPN文章,将anchor应用在候选区域的每个位置,同时进行分类和回归,one-shot local detection。
::我分析:这篇论文把FastR-CC中的RPN和SiamFC中的孪生相似性度量网络放在了一起::,这么一分析顶会的思想简单的要死
* 现在反过头来看这句话,当时真实天真!

2019年11月8日 下午5:33
Python:pandas DataFrame取多列的方法

  • 选择表格中的’w’、’z’列
    • data[[‘w’,’z’]]

2018年1月8日 下午5:33

源码:

class8.html

主要内容:

  1. 两种数据类型(主)
    1. Series
      1. 生成:
        1. list
        2. 字典
      2. 特殊住处在于对索引有很多操作,我把他和数据操作对比,叫做结构操作
      3. 还可以有更加任性的切片操作
    2. DataFrame
      1. 生成:
        1. 字典中包含list来生成
        2. numpy的narry生成
      2. 大部分是对对整列/整行进行操作
      3. 特殊之处在于可以向Sql一样操作
    3. 其实就是一维数组/二维数组的增删改查
  2. pandas画图
  3. 数据分析例题

问题:

  1. 数据处理:这门知识我本身是不熟悉的,我从来没有进行过数据处理,这种处理能力的源头是对数学的敏感,以及对数学知识的掌握,掌握编程相比于掌握数学要简单的多
  2. 先站在现实的角度去思考问题,然后才是动手编程。这里的先站在现实的角度去思考问题中要加上从数学统计的角度去思考问题,这种思考又对我们提出了新的要求
  3. 数据分析=机器学习:在这节最后的例题“泰坦尼克号”中,在预测缺失年龄的过程中就是使用了及机器学习。但是,我不懂得原理,参数也不知道是啥
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from pandas import DataFrame, Series, read_csv
import random

# 读csv
file = "/Users/czh/Downloads/test/anor.csv"
data = read_csv(file)

# map:19个属性对应的col的下标<int,int><key,value>
data_cols = data.columns.values.tolist()

cols_need = ["VK27","TK42","TK43","TK44","TK45","IK1","IK2","IK3","IK4","ZK158","ZK160","ZK161","ZK162","ZK163","ZK11.B0","ZK115.B0","ZK11.B0.1","ZK115.B0.1"]
cols_need = ["BX0101_" + x for x in cols_need]

dic = {}
for col in range(len(cols_need)):
for col_ in range(len(data_cols)):
if (cols_need[col] == data_cols[col_]):
dic[col] = col_
# print(dic)
# start~end行的数据
for start in range(5):
# 计算行的开始和结尾
start *= 1000;
end = start + 1000;
# 计算随机选择rand_nums列
rand_nums = random.randint(0,9) # 确定选多少列
rand_cols = [random.randint(0,len(cols_need) - 1) for x in range(rand_nums)] # 选的这些列具体是哪些
for col in rand_cols:
# 随机值m
rand_m = random.randint(0,50) / 100
print('start = {}, end = {}, col = {}, dic[col] = {}, col_name = {}, rand_m = {}'.format(start,end,col,dic[col],data_cols[dic[col]],rand_m))
data.iloc[start:end, dic[col]] *= (rand_m + 1);

data.to_csv('/Users/czh/Downloads/test/anor2.csv',index=False)

2019年11月4日 下午6:39
Linux 查看某个用户的进程

2019年9月11日 下午12:24
Linux下查看CPU使用率的命令 - 简书

使用top命令分析linux系统性能的详解_Linux_脚本之家 非常详细的讲解参数和输出简写

第一行是任务队列信息,跟 uptime 命令的执行结果类同,具体参数说明如下:

  1. 19:40:19 — 指当前系统时间
  2. up 35 days, 20:32 — 表示系统已经运行了35天20小时32分钟(是指在这期间系统没有重新启动过,持续运行)
  3. 1 users — 当前有1个用户登录系统
  4. load average: 0.00, 0.00, 0.00 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
  5. load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

第二行,Tasks — 任务(进程),具体信息说明如下:

  1. 系统现在共有81个进程,其中处于运行中的有1个,80个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个,要特别留意zombie的进程哦。

第三行,cpu状态信息,具体属性说明如下:

  1. 0.0%us — 用户空间占用CPU的百分比。
  2. 0.0%sy — 内核空间占用CPU的百分比。
  3. 0.0%ni — 改变过优先级的进程占用CPU的百分比
  4. 100.0%id — 空闲CPU百分比
  5. 0.0%wa — IO等待占用CPU的百分比
  6. 0.0%hi — 硬中断(Hardware IRQ)占用CPU的百分比
  7. 0.0%si — 软中断(Software Interrupts)占用CPU的百分比
  8. 0.0%st — 这个我也不知道……

2019年11月1日 下午5:39

目标:

实现自动化测试深度学习训练出来的模型

实现方式:

  1. 这其中涉及到expect的安装和使用:用来自动化交互过程
    1. shell脚本传参实现scp命令无需输入密码和别的参数
    2. Linux expect 介绍和用法 - 梦徒 - 博客园
    3. expect实现scp/ssh-copy-id非交互 - 骏马金龙 - 博客园
  2. 其中的代码主要是使用shell语言写
    1. scp 文件 : /目录: Permission denied 要记得给.sh文件777的权限
      1. chmod 777 *.sh
    2. Shell中for循环的几个常用写法 - 虚生 - 博客园 for循环
    3. 判断文件是否存在的shell脚本代码! - 孤舟点点 - 博客园 if 文件判断
auto_test.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash

# 定义
port=22778
user_ip="zhiheng_chen@210.76.196.61"
dataset="OTB100"
src_path="/data/zhiheng_chen/"

# 无限循环
while ((1 > 0))
do
# 循环1~20 的checkpoint
for i in $(seq 1 20)
do
checkpoint_file="checkpoint_e"$i".pth"
snapshot_checkpoint_file="./snapshot/"$checkpoint_file
src_file=$src_path$checkpoint_file
# 如果本地没有这个模型,才执行scp.sh
if [ ! -f $snapshot_checkpoint_file ]; then
# 执行下载和模型检测
./scp.sh $port $user_ip $src_file $snapshot_checkpoint_file $dataset
fi
done
sleep 3
done
scp.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/home/chenzhiheng18/installed/bin/expect

set port [lindex $argv 0]
set user_ip [lindex $argv 1]
set src_file [lindex $argv 2]
set snapshot [lindex $argv 3]
set dataset [lindex $argv 4]

set timeout -1
# 打印信息
spawn echo "src_file: $src_file"
spawn echo "snapshot: $snapshot"
spawn echo "dataset: $dataset"

# 执行scp
spawn scp -P $port -r $user_ip:$src_file ./snapshot/
expect {
"(yes/no)?" {
send "yes\n"
expect "*assword:" {
send "chen_gpu\n"
# 如果不存在,则直接结束当前bash
expect "No such file or directory" {
exit
}
# 执行测试
spawn python -u ../../tools/test.py --snapshot $snapshot --dataset $dataset --config config.yaml
}
}
"*assword:" {
send "chen_gpu\n"
# 如果不存在,则直接结束当前bash
expect "No such file or directory" {
exit
}
# 执行测试
spawn python -u ../../tools/test.py --snapshot $snapshot --dataset $dataset --config config.yaml

}
}

expect eof

2019年11月1日 下午5:38

vim全选,全部复制,全部删除 - 星草感觉 - 博客园

  • “+y 复制选中内容到+寄存器,也就是系统的剪贴板,供其他程序用
  • 全部复制:按esc后,然后ggyG
  • 全部删除:按esc后,然后dG

linux vi & vim 插入 删除 修改 文本 - 数据之美的博客 - CSDN博客

修改文本字母

  1. r+字母
  2. s+n字母
  3. n+s+n字母
    • 替换光标所在位置后面数字指定数量的文本为任意输入文本,与前面一个命令的区别就是替换指定数量的字母
  4. R+n字母

    修改文本块

  5. c+w
  6. c+2w
  7. c+b
    • 往前修改一个文本单词,此命令会从光标位置往前删除一个单词,并使 vi 进入插入编辑模式进行文本插入
  8. c+2b
    • 往前修改数字指定数量的文本单词,并使 vi 进入插入编辑模式进行文本插入
  9. c+0
    • 删除光标位置到行首的所有文本,并使 vi 进入插入编辑模式进行文本插入
  10. c+$
    • 删除光标位置到行末的所有文本,并使 vi 进入插入编辑模式进行文本插入

Vim使用技巧:撤销与恢复撤销 - wallace-lai - 博客园
撤销:u
恢复撤销:Ctrl + r

vim选中字符复制/剪切/粘贴 - 飞雪安能住酒中 - 博客园
ctrl + v + hjkl

将vim中内容复制到系统剪贴板

  • :reg 查看寄存器,可以看到vim自带的剪贴板里的内容, 在安装了gnome后能看到里面新增了一个 + 寄存器,这就是和系统同步的寄存器。
  • Shift+ v 使用可视化模式,也可以配合光标移动键选择文本。

全局操作:

  1. 缩进
  2. 字符串替换:
    • :%s/XXX/YYY/g 全局替换
    • :s/p1/p2/g: 将当前行中所有p1均用p2替代
    • :n1,n2s/p1/p2/g: 将第n1至n2行中所有p1均用p2替代
    • vim批量替换
  3. 复制:不是ctr+v
    1. Shift+ v 使用可视化模式,也可以配合光标移动键选择文本。

Vim 配置入门 - 阮一峰的网络日志

  1. 其实就是在将vim中的set命令,我经常使用的有set nu
  2. 还有一些其他的:
    1. syntax on打开语法高亮。
    2. set encoding=utf-8 设置编码
    3. 缩进
      1. set autoindent
        • 按下回车键后,下一行的缩进会自动跟上一行的缩进保持一致。
      2. set shiftwidth=4
        • 在文本上按下>>(增加一级缩进)、<<(取消一级缩进)或者==(取消全部缩进)时,每一级的字符数。
      3. set expandtab
        • 由于 Tab 键在不同的编辑器缩进不一致,该设置自动将 Tab 转为空格。
      4. set softtabstop=2Tab 转为多少个空格
    4. 外观
      1. set relativenumber
        • 显示光标所在的当前行的行号,其他行都为相对于该行的相对行号。
      2. set cursorline光标所在的当前行高亮。
      3. set textwidth=80 设置行宽,即一行显示多少个字符。
      4. set ruler在状态栏显示光标的当前位置(位于哪一行哪一列)
    5. 搜索
      1. set showmatch
        1. 光标遇到圆括号、方括号、大括号时,自动高亮对应的另一个圆括号、方括号和大括号
      2. set hlsearch搜索时,高亮显示匹配结果。
      3. set incsearch
        • 输入搜索模式时,每输入一个字符,就自动跳到第一个匹配的结果。
      4. set ignorecase
        • 搜索时忽略大小写。
      5. set smartcase
        • 如果同时打开了ignorecase,那么对于只有一个大写字母的搜索词,将大小写敏感;其他情况都是大小写不敏感。比如,搜索Test时,将不匹配test;搜索test时,将匹配Test。
    6. 编辑
      1. set spell spelllang=en_us打开英语单词的拼写检查。
      2. set nobackup
        1. 不创建备份文件。默认情况下,文件保存时,会额外创建一个备份文件,它的文件名是在原文件名的末尾,再添加一个波浪号(〜)。
      3. set noswapfile
        1. 不创建交换文件。交换文件主要用于系统崩溃时恢复文件,文件名的开头是.、结尾是.swp。
      4. set undofile
        1. 保留撤销历史。
        2. Vim 会在编辑时保存操作历史,用来供用户撤消更改。默认情况下,操作记录只在本次编辑时有效,一旦编辑结束、文件关闭,操作历史就消失了。
        3. 打开这个设置,可以在文件关闭后,操作记录保留在一个文件里面,继续存在。这意味着,重新打开一个文件,可以撤销上一次编辑时的操作。撤消文件是跟原文件保存在一起的隐藏文件,文件名以.un~开头。
          1
          2
          3
          4
          5
          set backupdir=~/.vim/.backup//  
          set directory=~/.vim/.swp//
          set undodir=~/.vim/.undo//
          设置备份文件、交换文件、操作历史文件的保存位置。
          结尾的//表示生成的文件名带有绝对路径,路径中用%替换目录分隔符,这样可以防止文件重名
      5. set autoread
        1. 打开文件监视。如果在编辑过程中文件发生外部改变(比如被别的编辑器编辑了),就会发出提示。

2019年11月1日 下午4:33

Pysot中比较有价值的issue

2019年11月1日 下午4:30

解压:

Ubuntu 下解压tar.xz方法 - 慕尘 - 博客园

  • tar xvJf ****.tar.xz

解压文件报错:tar: Error is not recoverable: exiting now

  • tar -xvf 不要加z参数

unzip解压当前目录下多个zip文件到指定目录

  • unzip -d /mnt2/shanxi/PicFiles ‘/mnt2/shanxi/PicFile/*.zip’
  • unzip ‘*.zip’

tar压缩:

tar压缩和解压文件或文件夹

  1. .tar
    • tar -cvf test.tar ./test/
  2. .tar.gz
    • tar -zcvf test.tar.gz ./test/

tar解压

  1. .tar.gz
    tar -xzvf test.tar.gz
  2. .tar
    tar -xvf test.tar