1.source activate tensofrlow, 激活anaconda環(huán)境時(shí)報(bào)錯(cuò)
-bash: activate: No such file or directory
解決方案
export PATH="~/anaconda3/bin:$PATH"
再source ~/.bashrc
source activate tensofrlow 即可以了歼指。
2.解壓tar.gz包:
tar -zxvf example-1.2.3-1.tar.gz
解壓tar包
tar -xvf your_archive.tar
解壓一個(gè)路徑下的全部tar包
find /path/to/folder -name "*.tar" -exec tar xvf {} ;
2.1 tar 壓縮文件
1.壓縮當(dāng)前目錄下文件夾/文件test到test.tar.gz:
tar -zcvf test.tar.gz test
3.ubuntu 掛載移動(dòng)硬盤/U盤
1.查看優(yōu)盤信息
sudo fdisk -l
2.掛載,其中/dev/sdb1是根據(jù)上面的命令查看得到的硬盤信息康震,可能會(huì)不一樣,/home/user/media為想要的掛載的位置样悟,如沒(méi)有此文件夾鞠绰,需要新建穷躁。
sudo mount /dev/sdb1 /home/user/media
3.卸載
sudo umount /home/user/media/
4.git命令安裝
出現(xiàn)bash: git: command not found錯(cuò)誤時(shí)复哆,需要安裝git命令
方法為
apt-get update -y
apt-get upgrade -y
在
apt install git
5.apt換源
打開(kāi)sources.list文件
sudo gedit /etc/apt/sources.list編輯/etc/apt/sources.list文件, 在文件最前面添加阿里云鏡像源:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
sudo apt-get update
不要upgrade 容易崩
6.pip換源
apt換源后使用apt-get install安裝會(huì)很快,但是pip還是很慢歼秽。
vim ~/.pip/pip.conf
中添加
[global]
index-url =https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
可能出現(xiàn)無(wú)法保存的問(wèn)題应役,需要先創(chuàng)建文件
mkdir ~/.pip
7.docker內(nèi)sudo命令不能用
apt-get update
apt-get install sudo
8.在jetson nano上安裝scikit-image報(bào)錯(cuò)
問(wèn)題為編碼錯(cuò)誤,解決方法
vim ~/.bashrc
export LC_CTYPE=en_US.UTF-8
export LANG=en_US.UTF-8
source ~/.bashrc
重新pip即可燥筷。
9.pytorch torchvision model無(wú)法下載箩祥。報(bào)如下錯(cuò)誤。
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)
Python 2.7.9 之后版本引入了一個(gè)新特性:當(dāng)你urllib.urlopen一個(gè) https 的時(shí)候會(huì)驗(yàn)證一次 SSL 證書 肆氓,當(dāng)目標(biāo)使用的是自簽名的證書時(shí)就會(huì)爆出該錯(cuò)誤消息袍祖。
解決辦法
在在腳本中,全局添加如下代碼:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
10opencv安裝
解決no module named cv2問(wèn)題
python3 -m pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
python2 -m pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
在docker中安裝可能出現(xiàn)錯(cuò)誤谢揪,先
apt-get update
進(jìn)行更新蕉陋,然后根據(jù)缺的東西進(jìn)行安裝,
apt-get install libglib2.0-0
apt-get install libsm6
apt-get install libxrender1
apt-get install libxext-dev
apt install libgl1-mesa-glx
11. .whl文件安裝
當(dāng)使用pip安裝某個(gè)包由于網(wǎng)絡(luò)無(wú)法安裝時(shí)拨扶,可以先使用wget將whl文件下載下來(lái),再使用安裝pip install *.whl
12. python numpy 大數(shù)組顯示不全凳鬓,解決方案
import numpy as np
np.set_printoptions(threshold=np.inf)
Dockerfile安裝docker
(1) 查看目錄下Dockerfile是否存在
[root@docker ~]#cd /Dockerfile/
[root@docker Dockerfile]#ls
Dockerfile
(2) 執(zhí)行命令進(jìn)行構(gòu)建
[root@docker Dockerfile]#docker build -t nginx_image .
上條命令中build為構(gòu)建鏡像,而參數(shù)t則指定鏡像name患民,.則為Dockerfile的路徑
下圖可以看到構(gòu)建成功
13. 后臺(tái)執(zhí)行程序
nohup 命令 后面加上&
13.查看文件夾內(nèi)文件數(shù)
統(tǒng)計(jì)當(dāng)前目錄下文件的個(gè)數(shù)(不包括目錄)
ls -l|grep "^-"| wc -l
統(tǒng)計(jì)當(dāng)前目錄下文件的個(gè)數(shù)(包括子目錄)
ls -lR| grep "^-" | wc -l
查看某目錄下文件夾(目錄)的個(gè)數(shù)(包括子目錄)
$ ls -lR | grep "^d" | wc -l
查看一個(gè)路徑下全部子文件夾的文件數(shù)
find ./ -type f | wc -l
14.服務(wù)器文件傳輸
將本機(jī)文件傳至目標(biāo)機(jī)器路徑下缩举,inspur為用戶名
scp /home/zhaobing/coco2017.txt inspur@10.51.24.20:/home/inspur/
15.文件壓縮為zip
將/home/wwwroot/xahot/ 這個(gè)目錄下所有文件和文件夾打包為當(dāng)前目錄下的xahot.zip
zip -q -r xahot.zip /home/wwwroot/xahot
16.查看一級(jí)子目錄存儲(chǔ)空間大小
sudo ls | xargs sudo du -ksh
查看各磁盤空間占用情況
df -h
查看當(dāng)前文件夾下所有文件大小(包括子文件夾)
du -h
du -sh <目錄>命令來(lái)查看指定目錄的大小
du -sh
查看某個(gè)特定文件或目錄占用了多少磁盤空間,可以使用ls -lh <文件/目錄>
ls -lh
17. 把文件解壓到指定的目錄下仅孩,需要用到-d參數(shù)托猩。
unzip -d /temp test.zip
18 detectron2 coco 1x 2x schedule 訓(xùn)練策略
1x 策略表示:在總batch size為16時(shí),初始學(xué)習(xí)率為0.02辽慕,在6萬(wàn)輪和8萬(wàn)輪后學(xué)習(xí)率分別下降10倍京腥,最終訓(xùn)練9萬(wàn)輪。
2x 策略為1x策略的兩倍溅蛉,同時(shí)學(xué)習(xí)率調(diào)整位置也為1x的兩倍
19.python版本過(guò)低導(dǎo)致pip包無(wú)法安裝
pip install blobfile==1.05出現(xiàn)問(wèn)題
是因?yàn)閜ython版本過(guò)低公浪,換一個(gè)docker內(nèi)python版本高于3.7的即可
ERROR: Package 'blobfile' requires a different Python: 3.6.10 not in '>=3.7.0'
20. pip install git+https:XXX 網(wǎng)絡(luò)原因安裝失敗
直接使用網(wǎng)址進(jìn)行pip install 可能因?yàn)榫W(wǎng)絡(luò)無(wú)法順利安裝
1.先要git clone 或者直接網(wǎng)頁(yè)下載解壓,下載好原文件(這時(shí)候文件夾里往往有一個(gè)setup.py文件温艇,但是有些時(shí)候并不能簡(jiǎn)單的python setup.py)
2.在下載的文件夾下執(zhí)行 :python setup.py sdist
3.然后會(huì)多出一個(gè)dist的文件夾因悲,打開(kāi)文件夾便可以看到一個(gè)打包好的你需要安裝的項(xiàng)目xxx.tar.gz
4.然后再 pip install xxx.tar.gz ,到此安裝完成
21. jupyter 安裝及常見(jiàn)問(wèn)題
pip install jupyter
使用過(guò)程中如果出現(xiàn)如下問(wèn)題
TypeError: should_run_async() got an unexpected keyword argument ‘transformed_cell’
TypeError: required field “type_ignores” missing from Module
解決第一個(gè)問(wèn)題:
pip install "ipykernel<5.5.2"
解決第二個(gè)問(wèn)題:
pip install --upgrade ipython
22 多個(gè)項(xiàng)目 from import 問(wèn)題
多個(gè)項(xiàng)目間引用時(shí)堕汞,容易出現(xiàn)import不到的問(wèn)題勺爱,如果路徑關(guān)系比較簡(jiǎn)單,可以用相對(duì)路徑讯检,如果比較復(fù)雜琐鲁,可以用絕對(duì)路徑解決。
在想引用其他文件的腳本加入如下語(yǔ)句
import sys
import os
ROOT_DIR = os.path.abspath('/workspace/latent-diffusion')
root_dir2=os.path.abspath('/workspace/latent-diffusion/tamingtransformerstry')
sys.path.append(ROOT_DIR)
sys.path.append(root_dir2)
ldm是ROOT_DIR或者root_dir2所在路徑即可
from ldm.util import instantiate_from_config
23.Aistation上傳docker無(wú)法使用人灼,在shell里面添加如下信息围段。
export PATH=/usr/local/nvm/versions/node/v16.6.1/bin:/opt/conda/bin:/opt/cmake-3.19.3-Linux-$(uname -m)/bin/:/usr/local/mpi/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/ucx/bin:/opt/tensorrt/bin:$PATH
24.AIstation無(wú)法使用jupyter
- docker需要先安裝juyter lab
直接pip install 或者下載whl離線安裝
mkdir /etc/jupyter/ && wget -P /etc/jupyter/ https://raw.githubusercontent.com/Winowang/jupyter_gpu/master/jupyter_notebook_config.py
wget -P /etc/jupyter/ https://raw.githubusercontent.com/Winowang/jupyter_gpu/master/custom.js
操作后路徑下有上面兩個(gè)文件
4.確定jupyter路徑,進(jìn)行軟連接到/usr/local/bin
目前jupyter-lab路徑為/opt/conda/bin/jupyter-lab 軟連接到/usr/local/bin
ln -s /opt/conda/bin/jupyter-lab /usr/local/bin
保存鏡像投放,重新開(kāi)啟即可
25 latex 圖表居中奈泪,修改整個(gè)表格字體大小
\begin{table*}[htbp]
\centering
\scriptsize
字體由小到大
\tiny
\scriptsize
\footnotesize
\small
\normalsize
\large
\Large
\LARGE
\huge
\Huge
26 latex偽代碼
使用algorithm寫偽代碼時(shí),需要使用下面兩個(gè)包
\usepackage{algorithm}
\usepackage{algorithmic}
27 清華源裝包
pip install labelme==5.0.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/
28 統(tǒng)計(jì)文件夾下個(gè)數(shù)
統(tǒng)計(jì)當(dāng)前目錄下文件的個(gè)數(shù)(不包括目錄)
ls -l | grep "^-" | wc -l
統(tǒng)計(jì)當(dāng)前目錄下文件的個(gè)數(shù)(包括子目錄)
ls -lR| grep "^-" | wc -l
查看某目錄下文件夾(目錄)的個(gè)數(shù)(包括子目錄)
ls -lR | grep "^d" | wc -l
29 screen用法
screen可以在機(jī)器斷開(kāi)連接的情況下后臺(tái)跑任務(wù)
安裝 apt-get install screen
新建會(huì)話 screen -S 會(huì)話名字
查看開(kāi)啟的會(huì)話 screen -ls
進(jìn)入名為name的窗口
screen -r name
退出會(huì)話 ctrl+A+D
關(guān)閉會(huì)話 screen -S 進(jìn)程號(hào) -X quit
再次進(jìn)入退出的會(huì)話 screen -r 進(jìn)程號(hào)(或者會(huì)話名)
30.pytorch指定gpu卡號(hào)
CUDA_VISIBLE_DEVICES=1 python main.py
31 讀取文件夾文件名
可用方法包括os.walk/ os.listdir()/os.scandir
在python3中推薦使用os.scandir灸芳,速度相對(duì)前兩個(gè)快很多倍涝桅。
示例代碼
for i in tqdm(os.scandir(path), disable=False):
images.append(os.path.join(path, i))
32.tqdm用法
在迭代器前面加上tqdm,可以輸出此迭代所需要的時(shí)間,對(duì)于代碼調(diào)試分析烙样,查看運(yùn)行時(shí)間有幫助
from tqdm import tqdm
for i in tqdm(os.scandir(path), disable=False):
for i in tqdm(range(len(txts))):
for epoch in tqdm(range(1, args.epochs + 1)):
33.兩個(gè)list取交集冯遂、并集
交集(公共部分)
list(set(listA).intersection(set(listB)))
當(dāng)數(shù)據(jù)量較大時(shí)要比
retA = [i for i in listA if i in listB]
快很多,大數(shù)據(jù)集不建議使用第二種方法
并集
list(set(listA).union(set(listB)))
求差集谒获,在B中但不在A中
retD = list(set(listB).difference(set(listA)))
34.tar.gz包安裝
使用 cd 命令導(dǎo)航到安裝包所在的目錄
對(duì)于 tar.gz 蛤肌,使用 tar xvzf 安裝包名稱.tar.gz 命令解壓
對(duì)于 tar.bz2 ,使用 tar xvjf 安裝包名稱.tar.bz2 命令解壓
如果解壓出的文件夾中有 \bin\腳本名稱.sh 文件批狱,則使用 cd命令導(dǎo)航到 bin 文件夾裸准,然后使用 sudo bash 腳本名稱.sh 命令即可安裝。
若沒(méi)有相應(yīng)的 shell 文件赔硫,則使用下列命令安裝狼速。
./configure
make
sudo make install
35.獲得路徑下的所有子目錄,構(gòu)成一個(gè)list(不包括子目錄里面的文件名)
from glob import glob
img_subfile=glob(img_path + "/*/", recursive = True)
36.服務(wù)器配置ssh server
ssh方便一個(gè)開(kāi)發(fā)小組中人員登錄一臺(tái)服務(wù)器
如果你只是想登陸別的機(jī)器的SSH只需要安裝openssh-client(ubuntu有默認(rèn)安裝,如果沒(méi)有則sudo apt-get install openssh-client)向胡,如果要使本機(jī)開(kāi)放SSH服務(wù)就需要安裝openssh-server恼蓬。
查看當(dāng)前的ubuntu是否安裝了ssh-server服務(wù)
dpkg -l | grep ssh
安裝ssh-server服務(wù)
sudo apt-get install openssh-server
確認(rèn)ssh-server是否啟動(dòng)了:
ps -e | grep ssh
如果沒(méi)有則可以這樣啟動(dòng):sudo /etc/init.d/ssh start
ssh-server配置文件 vim /etc/ssh/sshd_config
在下方添加
MaxSessions 10
Port 22
LoginGraceTime 2000m
PermitRootLogin yes
StrictModes no
MaxAuthTries 6
MaxSessions 10
PasswordAuthentication yes
PermitEmptyPasswords yes
關(guān)閉再重啟
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start
客戶端斷開(kāi)連接
client_loop: send disconnect: Broken pipe
解決方法將連接時(shí)間設(shè)置的長(zhǎng)一些
echo 'ServerAliveCountMax 1200' | tee -a ~/.ssh/config
37 tmux命令
與screen類似
1安裝
sudo apt-get install tmux
2.查看會(huì)話
tmux ls
3.從會(huì)話中退回主頁(yè)
Ctrl+b 后再按d
4.啟動(dòng)新會(huì)話:
tmux [new -s 會(huì)話名 -n 窗口名]
5.恢復(fù)會(huì)話:
tmux at [-t 會(huì)話名]
6.關(guān)閉會(huì)話:
tmux kill-session -t 會(huì)話名
- 新建一個(gè)名字的窗口
tmux new –s name
38 python pdb調(diào)試方法
import pdb
在正文可能有錯(cuò)的地方添加pdb.set_trace()
正常運(yùn)行腳本
運(yùn)行到此行時(shí),出現(xiàn)
(Pdb)
輸入n 運(yùn)行下一行
輸入p x或者x.shape 輸出變量或者其shape
輸入l查看原始代碼
當(dāng)某一行有錯(cuò)誤時(shí)候僵芹,會(huì)出現(xiàn)
(Pdb) RuntimeError: Given normalized_shape=[192], expected input with shape [*, 192], but got input of size[128, 64, 64]
類似的錯(cuò)誤处硬,方便定位。
30 vscode ssh 遠(yuǎn)程連接
連接方法參考
https://zhuanlan.zhihu.com/p/68577071
https://server.51cto.com/article/684146.html
連接后總需要輸入密碼解決方法
https://blog.csdn.net/jyhongjax/article/details/106075493
原始是系統(tǒng)自帶的openssh版本不對(duì)
先安裝git
編輯環(huán)境變量
添加環(huán)境變量
新建拇派,將安裝的git路徑添加上去
C:\Program Files\Git\usr\bin
將其上移到系統(tǒng)自帶的openssh上方荷辕。
重開(kāi)打開(kāi)cmd ssh -V查看ssh版本變?yōu)?br>
31 路徑下文件名排序
file_list = os.listdir(input_dir)
file_list.sort(key=lambda x: int(x[:-4])) # 文件名 按數(shù)字排序
比如文件夾下文件名為123.jpg,從開(kāi)始到.用數(shù)字進(jìn)行排序
將中文保存為json時(shí),需要加ensure_ascii=False防止亂碼
with open(text_image_path,'w',encoding='utf-8') as f:#path為json文件路徑
json.dump(dictionary_full, f,ensure_ascii=False)
32 取出字典的多個(gè)key的對(duì)應(yīng)value
from operator import itemgetter
aa={'a','1','b',2'','c','3'}
keys = ['a','b']
out = itemgetter(*keys)(aa)
out=('1','2')
這樣的輸出是元組tuple
想轉(zhuǎn)成list
output=list(out)
33查看正在運(yùn)行的python程序
ps aux | grep python
tmux輸出看不全
ctrl+b然后松開(kāi)件豌,再按一下[
34用ll命令查看idx 索引文件大小
如果8個(gè)節(jié)點(diǎn) /8就是一個(gè)epoch使用的數(shù)據(jù)
ll ./5epochs10m_cn_32_mclip.idx
-rw-r--r--. 1 root root 86446144 Nov 8 08:53 ./5epochs10m_cn_32_mclip.idx
35 python按每行寫入/讀取json文件
import json
data_list = [
{'href': 'http://www.jskunshan.cn/', 'text': ' 首頁(yè)'},
{'href': 'http://www.jskunshan.cn/python', 'text': ' python'}
]
for item in data_list:
with open('data.json', 'a+', encoding='utf-8') as f:
line = json.dumps(item, ensure_ascii=False)
f.write(line+'\n')
36 pip 離線安裝 tar.gz whl
1疮方、安裝whl包:
執(zhí)行:pip install **.whl(前提是要安裝好pip和wheel)
2、安裝tar.gz包:
(1)解壓 tar -zxvf xxx.tar.gz茧彤;
(2)·cd到解壓后路徑,執(zhí)行python setup.py install
常見(jiàn)git命令使用
下載共享項(xiàng)目
git clone http://xxx.git
查看所有分支
git branch -a
僅僅切換分支
git checkout dataset_load
查看當(dāng)前分支
git branch
查看文件修改狀態(tài)
git status
add 更新過(guò)的文件,進(jìn)行add操作
git add xxxdataset.py
上傳并評(píng)論當(dāng)前修改
git commit -m 'revise dataload bug'
推送分支
git push origin dataset_load
切換并新建新分支
git checkout -b dataset_load_big
創(chuàng)建新分支骡显,更新時(shí)要更新新分支 git push origin
本地代碼管理
- 環(huán)境配置 應(yīng)戶名/郵箱
git config --global user.name "Your Name"
git config --global user.email your_email@example.com
- 將一個(gè)目錄初始化成 Git 倉(cāng)庫(kù)
git init .
- git add 添加修改文件
fatal: detected dubious ownership in repository at '/path/to/repo'
To add an exception for this directory, call:
git config --global --add safe.directory /path/to/repo
可能出現(xiàn)這個(gè)錯(cuò)誤,方法為
git config --global --add safe.directory /path/to/repo
/path/to/repo為報(bào)錯(cuò)中出現(xiàn)的路徑
git commit -m ‘change’ 聲明修改
比較最新的提交和指定文件的歷史版本之間的差異:
git diff HEAD~1 <file>
HEAD~1
表示最近的上一個(gè)提交曾掂,<file>
是要比較的文件名惫谤。
比較任意兩個(gè)提交之間的差異:
git diff <commit1> <commit2> <file>
<commit1>
和 <commit2>
分別是要比較的兩個(gè)提交的 SHA-1 標(biāo)識(shí)符,<file>
是要比較的文件名珠洗。
37.多個(gè)文件合并成一個(gè)
cat file1.txt file2.txt > merged.txt
將一個(gè)文件夾下的所有文件合并成一個(gè)文件溜歪,并將結(jié)果輸出到特定的路徑
cat /path/to/folder/* > /path/to/output/merged.txt
38.查看文件行數(shù)
wc -l file.txt
39.要查看一個(gè)txt文件的前10行,你可以使用以下命令:
head -n 10 filename.txt
40批量下載huggingface dataset filesandversions里的全部文件
到你所要下載模型或數(shù)據(jù)集文件后许蓖,去掉后面的/tree/main蝴猪,然后增添.git,之后使用git下載就可以了。
到控制臺(tái)命令執(zhí)行如下命令:
git clone https://huggingface.co/datasets/glue.git
41.使用vim將txt中的<sep>替換為<n>
41.查看正在運(yùn)行的程序
ps aux | grep python
42.使用vim查看一個(gè)字符出現(xiàn)的次數(shù)
:%s/字符//gn
43.將txt中不含某個(gè)字符的行數(shù)取出來(lái)
題目帶代碼的可以用以下命令清洗 awk '!/錯(cuò)誤代碼/' input_file > output_file
查看某個(gè)路徑下有多少個(gè)文件
ls -l <directory> | wc -l