From 84fd3142f1d78cd8680f74adba50cc4fe36db13f Mon Sep 17 00:00:00 2001 From: HypoX64 Date: Thu, 9 Jan 2020 21:46:33 +0800 Subject: [PATCH] add Notes --- CV/find_face.py | 8 +- Notes/Sublime-settings.md | 114 ++++++++++++ Notes/github.md | 105 +++++++++++ Notes/linux.md | 138 ++++++++++++++ Notes/python.md | 367 ++++++++++++++++++++++++++++++++++++++ README.md | 21 ++- 6 files changed, 741 insertions(+), 12 deletions(-) create mode 100644 Notes/Sublime-settings.md create mode 100644 Notes/github.md create mode 100644 Notes/linux.md create mode 100644 Notes/python.md diff --git a/CV/find_face.py b/CV/find_face.py index b480267..924229a 100644 --- a/CV/find_face.py +++ b/CV/find_face.py @@ -152,7 +152,7 @@ all_length = len(imgpath_list) print("Find picture:"+" "+str(all_length)) print('Begining......') - +print('Finished/Find Face % Bar Usedtime/Totaltime') starttime = datetime.datetime.now() face_cnt=0 @@ -165,11 +165,11 @@ with concurrent.futures.ProcessPoolExecutor(max_workers=WORKERS) as executor: if i%100==0: endtime = datetime.datetime.now() used_time = (endtime-starttime).seconds - percent = round(100*i/all_length,2) + percent = round(100*i/all_length,1) - print('\r','','Ok:'+str(i),'Face:'+str(face_cnt)+' ', + print('\r','',str(i)+'/'+str(face_cnt)+' ', str(percent)+'%'+get_bar(percent,30), - ' Used/All:'+str(int(used_time))+'s/'+str(int(used_time/i*all_length))+'s',end= " ") + ' '+str(int(used_time))+'s/'+str(int(used_time/i*all_length))+'s',end= " ") #starttime_show = datetime.datetime.now() print('\nFinished!','Finall find face:',face_cnt,' Cost time:',(datetime.datetime.now()-starttime).seconds,'s') \ No newline at end of file diff --git a/Notes/Sublime-settings.md b/Notes/Sublime-settings.md new file mode 100644 index 0000000..cb90a55 --- /dev/null +++ b/Notes/Sublime-settings.md @@ -0,0 +1,114 @@ +[toc] +# Sublime-settings +## ubuntu +### python +#### anaconda +```json +{ + "python_interpreter": "/home/hypo/anaconda3/envs/pytorch/bin/python3", + "supress_word_completions": true, + "supress_explicit_completions": true, + "complete_parameters": true, + "anaconda_linting": false +} +``` +#### build system +```json +{ + "cmd":["python", "$file"], + "path":"/home/hypo/anaconda3/envs/pytorch/bin", + "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", + "selector": "source.python", + "encoding": "utf-8" +} +``` +## windows +### python +#### anaconda +```json +{ + "python_interpreter": "C:/Users/hypo/Anaconda3/envs/pytorch_0.4.1/python.exe", + "supress_word_completions": true, + "supress_explicit_completions": true, + "complete_parameters": true, + "anaconda_linting": false +} +``` +#### build system +```json +{ + "cmd":["python", "$file"], + "path":"C:/Users/hypo/Anaconda3/envs/pytorch_0.4.1", + "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", + "selector": "source.python", + "encoding": "utf-8" +} +``` +### java +```json +{ +"cmd": ["javac","-encoding","gbk","-d",".","$file"], +"file_regex": "^(...*?):([0-9]*):?([0-9]*)", +"selector": "source.java", +"encoding":"gbk", + +"variants": + [ + { + "name": "Run", + "shell": true, + "cmd" : ["start","cmd","/c", "java ${file_base_name}&pause"], + "working_dir": "${file_path}", + "encoding":"gbk" + } + ] +} +``` +### c +```json +{ + "working_dir": "$file_path", + "cmd": "gcc -Wall \"$file_name\" -o \"$file_base_name\"", + "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", + "selector": "source.c", + + "variants": + [ + { + "name": "Run", + "shell_cmd": "gcc -Wall \"$file\" -o \"$file_base_name\" && start cmd /c \"\"${file_path}/${file_base_name}\" & pause\"" + } + ] +} + +``` +### c++ +```json +{ + "encoding": "utf-8", + "working_dir": "$file_path", + "shell_cmd": "g++ -Wall -std=c++11 \"$file_name\" -o \"$file_base_name\"", + "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", + "selector": "source.c++", + + "variants": + [ + { + "name": "Run in sublime", + "shell_cmd": "g++ -Wall -std=c++11 \"$file_name\" -o \"$file_base_name\" && cmd /c \"${file_path}/${file_base_name}\"" + }, + { + "name": "CMD Run", + "shell_cmd": "g++ -Wall -std=c++11 \"$file\" -o \"$file_base_name\" && start cmd /c \"\"${file_path}/${file_base_name}\" & pause\"" + } + ] +} +``` +### matlab +```json +{ + "cmd": ["C:/Program Files/MATLAB/R2015b/bin/matlab.exe", "-nodesktop", "-nosplash", "-r", "\"run('$file')\""], + "selector": "source.m", + "working_dir": "${project_path:${folder}}" +} +``` \ No newline at end of file diff --git a/Notes/github.md b/Notes/github.md new file mode 100644 index 0000000..797ab48 --- /dev/null +++ b/Notes/github.md @@ -0,0 +1,105 @@ + +上传已有的项目 +像上面那样,直接从github上clone你自己已有的项目到本地,在你的电脑上面编辑了项目,上传到github上的话,通过如下命令 + git pull origin master # 将远程仓库里面的项目拉下来 +$ git rm -r --cached target # 删除target文件夹 +$ git add * ###如有新添加的文件执行此行,添加所有的文件 + +$ git commit -m "输入你本次提交的文字" + +$ git push -u origin master + + +# 表格 +name | 111 | 222 | 333 | 444 +:-: | :-: | :-: | :-: | :-: +aaa | bbb | ccc | ddd | eee| +fff | ggg| hhh | iii | 000| + + +1、编辑README文件 + +大标题(一级标题):在文本下面加等于号,那么上方的文字就变成了大标题,等于号的个数无限制,但一定要大于0 + +大标题 +==== + + +中标题(二级标题):在文本下面加下划线,那么上方的文本就变成了中标题,下划线个数无限制,中标题比大标题低一级 + +中标题 +------- + + + 1~6级标题:文本大小依次减小,以#号开头,多少个#号就是多少级标题,#号和标题名称要并排写 + +# 一级标题 +## 二级标题 +### 三级标题 +#### 四级标题 +##### 五级标题 +###### 六级标题 +插入圆点符号:编辑的时候使用的是星号 *,星号后面要有一个空格,否则为普通星号 + +* 列表一 +* 列表二 +* 列表三 + + +二级圆点、三级圆点:多加一个Tab,即第二行一个Tab,第三行两个Tab + +* 列表一 + * 列表二 + *列表三 + + +缩进: + +>缩进一 +>>缩进二 +>>>缩进三 +>>>>缩进四 +>>>> +>>>>>缩进五 + + +插入链接 + +[百度](http://baidu.com) + + +插入网络图片:![](网络图片链接地址),即叹号!+方括号[]+括号(),如果不加叹号!就会变成普通文本,方括号里可以加入一些 标识性的信息 + +![baidu](http://www.baidu.com/img/bdlogo.gif "百度logo") + + + + +插入GITHub仓库里的图片:![](图片链接地址),即叹号!+方括号[]+括号(),URL写法:http://github.com/自己的用户名/项目名/raw/分支名/存放图片的文件夹/文件夹里的图片名字 + +给图片加上超链接:即点击一个图片进入指定网页,方括号里写自己起的标识名称,上下两行标识要一致。 + +[![baidu]](http://baidu.com) +[baidu]:http://www.baidu.com/img/bdlogo.gif "百度Logo" + + +插入代码片段:在代码上下行用```标记,注意`符号是tab键上面那个,要实现语法高亮,则在```后面加上编程语言的名称 + +复制代码 +```Java +public static void main(String[] args){} +``` + +```javascript +document.getElementById("ts").innerHTML="Hello" +``` +复制代码 +换行:使用标签
+ +单行文本:前面使用两个Tab + +多行文本:每行行首加两个Tab + +部分文字高亮:使用``包围,这个符号不是单引号,而是Tab上方,数字1左边那个按键的符号 + +文字超链接格式:[要显示的文字](链接的地址"鼠标悬停显示"),在URL之后用双引号括起来一个字符串,即鼠标悬停显示的文本,可不写 diff --git a/Notes/linux.md b/Notes/linux.md new file mode 100644 index 0000000..db648fa --- /dev/null +++ b/Notes/linux.md @@ -0,0 +1,138 @@ +[toc] +### 挂载U盘 +```bash +root@lthpc:/home/hypo# fdisk -l +... +Device Start End Sectors Size Type +/dev/sdc1 2048 7813967871 7813965824 3.7T Microsoft basic data +root@lthpc:/home/hypo# cd /media +root@lthpc:/media# mkdir usb +root@lthpc:/media# mount -t ntfs-3g /dev/sdc1 /media/usb +``` +### shell 中运行基本应用 +```bash +nautilus #文件管理器 +firefox #火狐浏览器 +``` +### 常用系统命令 +* 删除文件 +```bash +rm -rf yourdir +#-r 就是向下递归,不管有多少级目录,一并删除 +#-f 就是直接强行删除,不作任何提示的意思 +``` +* cp +```bash +cp [options] +# or +cp [options] source1 source2 source3 …. directory +#example +cp -rvf dir1 dir2 #复制文件夹dir1到dir2,显示进度 +cp -rf dir1 dir #复制文件夹dir1到dir2,不显示进度 +#-a 保留链接和文件属性,递归拷贝目录,相当于下面的d、p、r三个选项组合。 +#-d 拷贝时保留链接。 +#-f 删除已经存在目标文件而不提示。 +#-i 覆盖目标文件前将给出确认提示,属交互式拷贝。 +#-p 复制源文件内容后,还将把其修改时间和访问权限也复制到新文件中。 +#-r 若源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。当然,目标文件必须为一个目录名。 +#-l 不作拷贝,只是链接文件。 +#-s 复制成符号连结文件 (symbolic link),亦即『快捷方式』档案; +#-u 若 destination 比 source 旧才更新 destination。 +``` +* deb +```bash +dpkg -i #安装一个 Debian 软件包,如你手动下载的文件。 +dpkg -c #列出 的内容。 +dpkg -I #从 中提取包裹信息。 +dpkg -r #移除一个已安装的包裹。 +dpkg -P #完全清除一个已安装的包裹。和 remove 不同的是,remove 只是删掉数据和可执行文件,purge 另外还删除所有的配制文件。 +dpkg -L #列出 安装的所有文件清单。同时请看 dpkg -c 来检查一个 .deb 文件的内容。 +dpkg -s #显示已安装包裹的信息。同时请看 apt-cache 显示 Debian 存档中的包裹信息,以及 dpkg -I 来显示从一个 .deb 文件中提取的包裹信息。 +dpkg-reconfigure #重新配制一个已经安装的包裹,如果它使用的是 debconf (debconf 为包裹安装提供了一个统一的配制界面)。 +``` +* 调整CPU性能模式 +```bash +sudo apt-get install cpufrequtils +cpufreq-info +sudo cpufreq-set -g performance +##修改默认 +sudo apt-get install sysfsutils +sudo gedit /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor +``` +### 压缩解压 +```bash +tar xvf filename.tar #.tar 解包 +tar cvf filename.tar dirname #.tar 打包 +gunzip filename.gz #.gz 解压1 +gzip -d filename.gz #.gz 解压2 +gzip filename #.gz 压缩 +tar zxvf filename.tar.gz #.tar.gz 和 .tgz 解压 +tar zcvf filename.tar.gz dirname #.tar.gz 和 .tgz 压缩 +unzip filename.zip #.zip 解压 +zip filename.zip dirname #.zip 压缩 +rar x filename.rar #.rar 解压 +rar a filename.rar dirname #.rar 压缩 + +#.tar.gz 和 .tgz 多线程压缩解压 +sudo apt install pigz +#压缩 +tar cvf - test.txt | pigz > test.tar.gz +#解压 +tar -I pigz -xvf /path/to/archive.tar.gz -C /where/to/unpack/it/ +``` +### ssh +* install +```bash +sudo apt-get install openssh-client +sudo apt-get install openssh-server +``` +* start +```bash +ps -e | grep ssh +sudo /etc/init.d/ssh start +``` +* ip +```bash +ifconfig +``` +* login +```bash +ssh hypo@192.168.0.1 +ssh -X hypo@192.168.0.1 #GUI +``` +* change port +```bash +ssh -p 1234 hypo@192.168.0.1 +``` +* exit +```bash +'Ctrl+D' +#or +exit +``` +* ssh-keygen +```bash +ssh-keygen -t rsa +ssh-copy-id hypo@192.168.0.1 +``` +* run code +```bash +nohup python3 a.py & +``` +* 远程启动火狐(需要在图形模式下) +```bash +firefox & +``` +* transmit files +```bash +#压缩+解压流传输 把本地的文件复制到远程主机上 +tar -c './dir' |pigz |ssh hypo@172.31.73.116 "gzip -d|tar -xC /home/hypo/MyProject" + +#把远程的文件复制到本地 +scp root@www.test.com:/val/test/test.tar.gz /val/test/test.tar.gz +#把本地的文件复制到远程主机上 +scp /val/test.tar.gz root@www.test.com:/val/test.tar.gz +#把远程的目录复制到本地 +scp -r root@www.test.com:/val/test/ /val/test/ + +``` \ No newline at end of file diff --git a/Notes/python.md b/Notes/python.md new file mode 100644 index 0000000..bfdd498 --- /dev/null +++ b/Notes/python.md @@ -0,0 +1,367 @@ +[toc] +# Python +## base +### main +```python +def main(): + pass +if __name__ == '__main__': + main() +``` +### for +```python +for i,word in enumerate(wordlist,0): +``` +### read and write txt +* read +```python +#method 1 +for line in open(path): + line=line.strip() +#method 2 +def loadtxt(path): + f = open(path, 'r') + txt_data = f.read() + f.close() + return txt_data +''' +//r:读 +//r+:可读可写,若文件不存在,报错, 进行了覆盖写; +//w+: 可读可写,若文件不存在,创建,进行了清空写; +//a+:可读可写但光标在最后面(然后读到最后面,所以读到空字符串),若文件不存在,创建,进行了追加写; +''' +``` +* write txt +```python +#method 1 +f = open(path,"w+") +f.writelines(list) +#file.write(str)的参数是一个字符串,就是你要写入文件的内容. +#file.writelines(sequence)的参数是序列,比如列表,它会迭代帮你写入文件。 +#method 2 +def writetxt(path,txt): + f = open(path,'a+') + f.write(txt) + f.close() +``` +### csv +* write +```python +import csv +csvFile = open("csvData.csv", "w") #创建csv文件 +writer = csv.writer(csvFile) #创建写的对象 +#先写入columns_name +writer.writerow(["index","a_name","b_name"]) #写入列的名称 +#写入多行用writerows #写入多行 +writer.writerows([[1,a,b],[2,c,d],[3,d,e]]) +csvFile.close() +``` +* read +```python +#load train csv +csv_data = [] +reader = csv.reader(open('./datasets/train.csv')) +for line in reader: + csv_data.append(line) +``` +### random +* radom sort list +```python +import random +random.shuffle (list) +``` +* random +```python +import random +print( random.randint(1,10) ) # 产生 1 到 10 的一个整数型随机数 +print( random.random() ) # 产生 0 到 1 之间的随机浮点数 +print( random.uniform(1.1,5.4) ) # 产生 1.1 到 5.4 之间的随机浮点数,区间可以不是整数 +print( random.choice('tomorrow') ) # 从序列中随机选取一个元素 +print( random.randrange(1,100,2) ) # 生成从1到100的间隔为2的随机整数 +a=[1,3,5,6,7] # 将序列a中的元素顺序打乱 +random.shuffle(a) + +random.randint(1,50) # 随机整数: +random.randrange(0, 101, 2) # 随机选取0到100间的偶数: +random.choice('abcdefghijklmnopqrstuvwxyz!@#$%^&()') # 随机字符: +random.sample('zyxwvutsrqponmlkjihgfedcba',5)# 多个字符中生成指定数量的随机字符: +ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 8))# 从生成指定数量的随机字符: +''.join(random.sample(['z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a'], 5))# 多个字符中选取指定数量的字符组成新字符串: +random.choice(['剪刀', '石头', '布'])# 随机选取字符串: +``` + +### path&file +* get the subfile path +```python +filenames = os.listdir(path) +``` +* Get filepath,filename and extension +```python +(filepath,tempfilename) = os.path.split(output_path) +(filename,extension) = os.path.splitext(tempfilename) +``` +* Traversal +```python +def Traversal(filedir): + file_list=[] + for root,dirs,files in os.walk(filedir): + for file in files: + file_list.append(os.path.join(root,file)) + for dir in dirs: + Traversal(dir) + return file_list +``` +* [python 获取文件大小,创建时间和访问时间](https://www.cnblogs.com/shaosks/p/5614630.html) + +### time +```python +#ns +import time +t1 = time.time() +...... +t2 = time.time() +print(t2-t1) +#s +import datetime +starttime = datetime.datetime.now() +endtime = datetime.datetime.now() +print('Cost time:',(endtime-starttime).seconds,'s') +``` + +### MulticoreOptimization(concurrent.futures) +```python +map(func, *iterables, timeout=None) +#func:为需要异步执行的函数 +#iterables:可以是一个能迭代的对象,例如列表等。每一次func执行,会从iterables中取参数。 +#timeout:设置每次异步操作的超时时间,如果timeout参数不指定的话,则不设置超时间。 +``` +* example 1: +```python +import concurrent.futures +def cut_save_process(person_name): + return True + +with concurrent.futures.ProcessPoolExecutor(max_workers=Process_Worker) as executor: + for flag in executor.map(cut_save_process,person_names): + pass +``` +* example 2: +```python +def pool_factorizer_go(nums, nprocs): + nprocs=xxx + with ProcessPoolExecutor(max_workers=nprocs) as executor: + return {num:factors for num, factors in + zip(nums, + executor.map(factorize_naive, nums))} +``` +* example 3: +```python +import concurrent.futures +with concurrent.futures.ProcessPoolExecutor(max_workers=4) as executor: + for imgpath,count in zip(imgpath_list,executor.map(find_save_resize_face,imgpath_list,outpath_list)): + print(imgpath) + print(count) +``` +### re +[web](http://www.runoob.com/python/python-reg-expressions.html) +* example1:(find picture) +```python +re.search(r'png$|jpg$|jpeg$|bmp$', filename, re.I) +``` +* example2: +```python +re.search(r'(.*) are (.*?) .*', filename, re.I) +''' + (.*) 第一个匹配分组,.* 代表匹配除换行符之外的所有字符。 + (.*?) 第二个匹配分组,.*? 后面多个问号,代表非贪婪模式,也就是说只匹配符合条件的最少字符 +后面的一个 .* 没有括号包围,所以不是分组,匹配效果和第一个一样,但是不计入匹配结果中。 +''' +``` +* sort str by number +```python +import re +s = ['1.dat','10.dat','5.dat'] +new = sorted(s,key = lambda i:int(re.match(r'(\d+)',i).group())) +``` +### multiprocessing +```python +import multiprocessing +import time + +def func(msg): + return multiprocessing.current_process().name + '-' + msg + +if __name__ == "__main__": + pool = multiprocessing.Pool(processes=4) # 创建4个进程 + results = [] + for i in range(10): + msg = "hello %d" %(i) + results.append(pool.apply_async(func, (msg, ))) + pool.close() # 关闭进程池,表示不能再往进程池中添加进程,需要在join之前调用 + pool.join() # 等待进程池中的所有进程执行完毕 + print ("Sub-process(es) done.") + + for res in results: + print (res.get()) +``` +### print +* 数字格式化输出 +```python +print('%.2f' % (end-start)) +ptint('%05d' % i) +``` +* format +```python +print(('Cpu Temp: {0:.1f}C | Freq: {1:.1f}MHz').format(cpu_temp,cpu_freq)) +``` +### threading +```python +import threading +t=threading.Thread(target=tcplink,args=(clientsock,)) #t为新创建的线程 +t.start() +``` +### argparse +```python +import argparse +import sys +parse=argparse.ArgumentParser() +parse.add_argument("--savedir",type=str,default='./',help="Dir to save 'data'") +args , _ = parse.parse_known_args(sys.argv[1:]) +SAVEDIR = args.savedir +``` +## numpy +* zeros +```python +np.zeros(shape, dtype=float, order='C') +''' +u,无符号整数,u8(64位) +f,浮点数,f8(64位) +c,浮点负数, +o,对象, +s,a,字符串,s24 +u,unicode,u24 +''' +``` +* np.array to list +```python +a.tolist() +``` +## pyinstaller +```bash +pyinstaller test.py-F +``` +## opencv-python +[Document](https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_table_of_contents_setup/py_table_of_contents_setup.html) +### imread +```python +import numpy as np +import cv2 +img = cv2.imread('messi5.jpg',0) +''' +第二个参数是一个标志,指定应该读取图像的方式。 +cv2.IMREAD_COLOR:加载彩色图像。任何图像的透明度都将被忽略。这是默认标志。 +cv2.IMREAD_GRAYSCALE:以灰度模式加载图像 +cv2.IMREAD_UNCHANGED:加载图像,包括alpha通道 +您可以简单地分别传递整数1,0或-1,而不是这三个标志。 +''' +``` +### imshow +```python +cv2.imshow('image',img) +''' +注意:即使图像路径错误,它也不会抛出任何错误,但会给你print img None +注意:第一个参数是一个窗口名称,它是一个字符串。第二个论点是我们的图像。您可以根据需要创建任意数量的窗口,但具有不同的窗口名称。 +注意:有一种特殊情况,您可以在以后创建窗口并将图像加载到该窗口。在这种情况下,您可以指定窗口是否可调整大小。它使用函数cv2.namedWindow()完成。默认情况下,标志为cv2.WINDOW_AUTOSIZE。但是如果指定flag cv2.WINDOW_NORMAL,则可以调整窗口大小。当图像尺寸过大并向窗口添加轨迹栏时,它会很有用。 +''' +cv2.namedWindow('image', cv2.WINDOW_NORMAL) +cv2.imshow('image',img) +cv2.waitKey(0) +cv2.destroyAllWindows() +#以下代码用于按's'并退出则保存图像,或者按ESC键直接退出而不保存。 +k = cv2.waitKey(0) +if k == 27: # wait for ESC key to exit + cv2.destroyAllWindows() +elif k == ord('s'): # wait for 's' key to save and exit + cv2.imwrite('messigray.png',img) + cv2.destroyAllWindows() +``` +### imwrite +```python +cv2.imwrite(filename,img) +``` +### split&merge +* 通道拆分 +```python +(B, G, R) = cv2.split(image) +``` +* 通道合并 +```python +zeros = np.zeros(image.shape[:2], dtype = "uint8")#生成一个值为0的单通道数组 +#分别扩展B、G、R成为三通道。另外两个通道用上面的值为0的数组填充 +cv2.imshow("Blue", cv2.merge([B, zeros, zeros])) +cv2.imshow("Green", cv2.merge([zeros, G, zeros])) +cv2.imshow("Red", cv2.merge([zeros, zeros, R])) +``` +## matplotlib + +## pytorch +[org](https://pytorch.org/) +[Document_Chinese](https://pytorch-cn.readthedocs.io/zh/latest/) +### hello +``` +import torch +torch.cuda.is_available() +print(torch.rand(3,3).cuda()) +``` +### save and load +```python +torch.save(net.cpu().state_dict(), model_name) +net = UNet(n_channels=3, n_classes=1) +net.load_state_dict(torch.load(model_name)) +``` + + +# Anaconda +## install +1.download 'Anaconda3-2019.07-Linux-x86_64.sh' +2.sh 'Anaconda3-2019.07-Linux-x86_64.sh' +3.if failed: +```bash +vim ~/.bashrc +export PATH=$PATH:/home/hypo/anaconda3/bin +source ~/.bashrc +``` +### basic commands +```bash +conda --version #查看conda版本 +conda update conda #更新conda +conda create --help #查看conda环境管理命令帮助信息 +conda create --name envname #新建虚拟环境 +conda remove --name envname --all #删除虚拟环境 +conda list #查看当前环境安装的包 +conda info --envs #查看conda环境信息 +conda activate envname #激活环境 +conda deactivate #退出当前环境 +``` +### solution +* conda安装环境出现safetyerror +```bash +conda remove -n --all #删除该环境所有包 +conda clean -a #清空anaconda pkg缓存 +``` +### 换源 +```bash +conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ +conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge +conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ +#设置搜索时显示通道地址 +conda config --set show_channel_urls yes +# or linux下将以上配置文件写在~/.condarc中 +vim ~/.condarc +channels: + - https://mirrors.ustc.edu.cn/anaconda/pkgs/main/ + - https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/ + - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ + - defaults +show_channel_urls: true +``` diff --git a/README.md b/README.md index df5c2bd..53364a0 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ ## Haystack -Gadgets for learning and research +Gadgets and notes for learning and research ### System -* monitor_linux.py +* [monitor_linux.py](./System/monitor_linux.py) A simple Deep Learning Server performance monitor. Written by python without any dependencies. ```bash (base) hypo@lthpc:~$ python monitor_linux.py @@ -11,11 +11,11 @@ Util: 85.6% [###########################################-------] Memory Mem: 34354MB/64301MB | Swap: 0MB/62498MB Mem: 53.0% [#############------------] Swap: 0.0% [-------------------------] -Gpu0: TITAN V Temp: 45.0C | Power: 11w/250w | Mem: 0MB/12066MB | Fan: 31% -Util:0.0% [-------------------------] Mem:0.0% [-------------------------] +Gpu0: TITAN V Temp: 45.0C | Power: 28w/250w | Mem: 950MB/12066MB | Fan: 31% +Util:0.0% [-------------------------] Mem:7.9% [##-----------------------] -Gpu1: TITAN V Temp: 45.0C | Power: 12w/250w | Mem: 0MB/12066MB | Fan: 31% -Util:0.0% [-------------------------] Mem:0.0% [-------------------------] +Gpu1: TITAN V Temp: 46.0C | Power: 28w/250w | Mem: 950MB/12066MB | Fan: 31% +Util:0.0% [-------------------------] Mem:7.9% [##-----------------------] Network ↑ all:10.2GB ↓ all:173.8GB ↑ :147.6Kb/s ↓ :6000.5Kb/s @@ -29,7 +29,7 @@ tmpfs /sys/fs/cgroup 0/32G 0% ``` ### CV -* find_face.py +* [find_face.py](./CV/find_face.py) FInd face in images, then save them. Depend on face_recognition, opencv-python. ```bash @@ -42,4 +42,9 @@ Find picture: 504 Begining...... Ok:500 Face:50 99.21%[##############################] Used/All:143s/144s Finished! Finall find face: 50 Cost time: 145 s -``` \ No newline at end of file +``` +### Notes +* [linux.md](./Notes/linux.md) +* [python.md](./Notes/python.md) +* [github.md](./Notes/github.md) +* [Sublime-settings.md](./Notes/Sublime-settings.md) \ No newline at end of file -- GitLab