知识点
markdown
编程
2022年1月学习小结
这篇文章是为了记录一下自己学习的收获和踩到的坑,是为了勉励自己,可读性不是很强,主要记录方向为深度学习安全性问题和学习中的一些扩展,会随着学习不断更新。目前属于两眼一摸黑的状态,欢迎一起交流学习。
研究代码
UCF-101的处理终于有思路了,但是目前进度比较慢。
- 数据集能够按照思路正常处理,目前正常处理中
- 实现了将数据集上传到服务器上,本地有数据集服务器上也有数据集的功能。(服务器无法正常通信现在,可能是因为数据太大了,需要研究一下)
批处理操作
cmd批量操作文件
cmd最坑的是,能对文件进行批处理(能用正则表达式),但是不能对文件夹进行批处理
python脚本能够用正则表达式进行批处理
但是写了个批量删除,运行速度也不快,和手动删除不相上下,只写了一个for循环和一个判断,不知道问题出在哪里。
import os
import re
import shutil
path = r'H:\dataset\data\jpegs_256'
dirs = os.listdir(path) #获取当前路径下的所有文件夹
for i in dirs: #遍历所有当前路径下的文件
res = re.match('v_', i)
if res:
# print(i)
shutil.rmtree(path,'/',i)
# 速度太慢了
下一步的尝试:学习bash脚本的规则,以批处理文件夹等
python的批量移动、重命名、删除
- 完成了一个预处理ucf-101的代码研究,原来是
H:\dataset\data\UCF-101\ApplyEyeMakeup\v_applyeyemakeup_g01_c01.avi
这样的文件,在经过运行之后会变成H:\dataset\data\UCF-101\ApplyEyeMakeup\v_applyeyemakeup_g01_c01\1.jpg
这种形式
H:\dataset\视频保存为图片.py
- 完成了文件批量剪切(复制)的操作,
dataset_path = r'H:\dataset\data\jpegs_256'
video_paths = glob.glob(os.path.join(dataset_path, "*"))
print(video_paths)
for i, video_path in enumerate(video_paths):
sequence_type = video_path.split("_")[2]
# video_path: H:\\dataset\\data\\jpegs_256\\v_WritingOnBoard_g04_c04
sequence_path = os.path.join(dataset_path,sequence_type)
if os.path.exists(sequence_path):
continue
os.makedirs(sequence_path, exist_ok=False)
# 创建文件夹
# sequence_path: H:\\dataset\\data\\jpegs_256\\YoYo
src = video_path
dst = sequence_path
shutil.move(src,dst)
# 剪切文件夹到dst下
- 没有完成data文件夹下101个子文件夹中的帧重命名工作,即我们要分别重命名101个文件夹中的所有图片文件,
frame000001 -> 1.jpg
,涉及到了字符串的格式化
这个要写两个for循环,但是我外面的大循环没写好,因此没完成重命名。
std = str(n).rjust(6,'0')
oldname=path+i+'/'+f'frame{std}'+'.jpg'
#设置新文件名
newname=path+i+'/'+str(n)+'.jpg'
- 完成了批量删除的功能,但是速度实在是太慢了,见这里
正则表达式
(1.24)囫囵吞枣,只学了一些最简单的通配符的用法
bash语言
windows下了git bash,可以用这个运行bash脚本
目录:D:\git\Git
服务器上跑bash脚本,如果用wget
下东西的话,可能要这样用,--no-check-certificate
版本管理
git
(1.24前)简单知道了git的用法,如pull push
等。但是不太熟练,表现为不愿意使用、也不愿意使用服务器,害怕文件管理不当。只能希望以后尽快熟练了。
简单小结为:打开vscode记得先pull
最新数据,代码在本地或者云端使用v2分支编写(多分支太混乱了,而且不要最好不要直接使用main分支,会直接更改云端版本,没法merge),编写完之后push到版本中,并上传云端github
就好了。
确定这个版本可用,没有问题,就可以在github
中合并到mian
分支中,合并完就删除就可以了。
其实pull
可以省略,只要记得push
就好(push
的时候会顺便pull
)
python和site-package版本管理
这方面真是一个大坑,涉及到了pip,anaconda等问题,挺烦的
markdown
交叉引用的实现
用法1
[需要跳转的文本](#test1)
其中[…]是显示的内容,(#test1)是引用的标签,
id="…"是需要引用的标签,<a>…</a>是html语法
<a id=“test1”>锚点</a>
用法2
<a href="#test2">需要跳转的文本</a>
用法2就不需要加[]了,
用这种方式可以实现各种交叉引用(但是不是参考文献那种能标号的)
<a id=“test2”>标题2</a>