1.source activate tensofrlow, 激活anaconda环境时报错
-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
解压一个路径下的全部tar包
find /path/to/folder -name "*.tar" -exec tar xvf {} ;
2.1 tar 压缩文件
1.压缩当前目录下文件夹/文件test到test.tar.gz:
tar -zcvf test.tar.gz test
3.ubuntu 挂载移动硬盘/U盘
1.查看优盘信息
sudo fdisk -l
2.挂载,其中/dev/sdb1是根据上面的命令查看得到的硬盘信息,可能会不一样,/home/user/media为想要的挂载的位置,如没有此文件夹,需要新建。
sudo mount /dev/sdb1 /home/user/media
3.卸载
sudo umount /home/user/media/
4.git命令安装
出现bash: git: command not found错误时,需要安装git命令
方法为
apt-get update -y
apt-get upgrade -y
在
apt install git
5.apt换源
打开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安装会很快,但是pip还是很慢。
vim ~/.pip/pip.conf
中添加
[global]
index-url =https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
可能出现无法保存的问题,需要先创建文件
mkdir ~/.pip
7.docker内sudo命令不能用
apt-get update
apt-get install sudo
8.在jetson nano上安装scikit-image报错
问题为编码错误,解决方法
vim ~/.bashrc
export LC_CTYPE=en_US.UTF-8
export LANG=en_US.UTF-8
source ~/.bashrc
重新pip即可。
9.pytorch torchvision model无法下载。报如下错误。
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)
Python 2.7.9 之后版本引入了一个新特性:当你urllib.urlopen一个 https 的时候会验证一次 SSL 证书 ,当目标使用的是自签名的证书时就会爆出该错误消息。
解决办法
在在脚本中,全局添加如下代码:
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
10opencv安装
解决no module named cv2问题
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中安装可能出现错误,先
apt-get update
进行更新,然后根据缺的东西进行安装,
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文件安装
当使用pip安装某个包由于网络无法安装时,可以先使用wget将whl文件下载下来,再使用安装pip install *.whl
12. python numpy 大数组显示不全,解决方案
import numpy as np
np.set_printoptions(threshold=np.inf)
Dockerfile安装docker
(1) 查看目录下Dockerfile是否存在
[root@docker ~]#cd /Dockerfile/
[root@docker Dockerfile]#ls
Dockerfile
(2) 执行命令进行构建
[root@docker Dockerfile]#docker build -t nginx_image .
上条命令中build为构建镜像,而参数t则指定镜像name,.则为Dockerfile的路径
下图可以看到构建成功
13. 后台执行程序
nohup 命令 后面加上&
13.查看文件夹内文件数
统计当前目录下文件的个数(不包括目录)
ls -l|grep "^-"| wc -l
统计当前目录下文件的个数(包括子目录)
ls -lR| grep "^-" | wc -l
查看某目录下文件夹(目录)的个数(包括子目录)
$ ls -lR | grep "^d" | wc -l
查看一个路径下全部子文件夹的文件数
find ./ -type f | wc -l
14.服务器文件传输
将本机文件传至目标机器路径下,inspur为用户名
scp /home/zhaobing/coco2017.txt inspur@10.51.24.20:/home/inspur/
15.文件压缩为zip
将/home/wwwroot/xahot/ 这个目录下所有文件和文件夹打包为当前目录下的xahot.zip
zip -q -r xahot.zip /home/wwwroot/xahot
16.查看一级子目录存储空间大小
sudo ls | xargs sudo du -ksh
查看各磁盘空间占用情况
df -h
查看当前文件夹下所有文件大小(包括子文件夹)
du -h
du -sh <目录>命令来查看指定目录的大小
du -sh
查看某个特定文件或目录占用了多少磁盘空间,可以使用ls -lh <文件/目录>
ls -lh
17. 把文件解压到指定的目录下,需要用到-d参数。
unzip -d /temp test.zip
18 detectron2 coco 1x 2x schedule 训练策略
1x 策略表示:在总batch size为16时,初始学习率为0.02,在6万轮和8万轮后学习率分别下降10倍,最终训练9万轮。
2x 策略为1x策略的两倍,同时学习率调整位置也为1x的两倍
19.python版本过低导致pip包无法安装
pip install blobfile==1.05出现问题
是因为python版本过低,换一个docker内python版本高于3.7的即可
ERROR: Package 'blobfile' requires a different Python: 3.6.10 not in '>=3.7.0'
20. pip install git+https:XXX 网络原因安装失败
直接使用网址进行pip install 可能因为网络无法顺利安装
1.先要git clone 或者直接网页下载解压,下载好原文件(这时候文件夹里往往有一个setup.py文件,但是有些时候并不能简单的python setup.py)
2.在下载的文件夹下执行 :python setup.py sdist
3.然后会多出一个dist的文件夹,打开文件夹便可以看到一个打包好的你需要安装的项目xxx.tar.gz
4.然后再 pip install xxx.tar.gz ,到此安装完成
21. jupyter 安装及常见问题
pip install jupyter
使用过程中如果出现如下问题
TypeError: should_run_async() got an unexpected keyword argument ‘transformed_cell’
TypeError: required field “type_ignores” missing from Module
解决第一个问题:
pip install "ipykernel<5.5.2"
解决第二个问题:
pip install --upgrade ipython
22 多个项目 from import 问题
多个项目间引用时,容易出现import不到的问题,如果路径关系比较简单,可以用相对路径,如果比较复杂,可以用绝对路径解决。
在想引用其他文件的脚本加入如下语句
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无法使用,在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无法使用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
操作后路径下有上面两个文件
4.确定jupyter路径,进行软连接到/usr/local/bin
目前jupyter-lab路径为/opt/conda/bin/jupyter-lab 软连接到/usr/local/bin
ln -s /opt/conda/bin/jupyter-lab /usr/local/bin
保存镜像,重新开启即可
25 latex 图表居中,修改整个表格字体大小
\begin{table*}[htbp]
\centering
\scriptsize
字体由小到大
\tiny
\scriptsize
\footnotesize
\small
\normalsize
\large
\Large
\LARGE
\huge
\Huge
26 latex伪代码
使用algorithm写伪代码时,需要使用下面两个包
\usepackage{algorithm}
\usepackage{algorithmic}
27 清华源装包
pip install labelme==5.0.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/
28 统计文件夹下个数
统计当前目录下文件的个数(不包括目录)
ls -l | grep "^-" | wc -l
统计当前目录下文件的个数(包括子目录)
ls -lR| grep "^-" | wc -l
查看某目录下文件夹(目录)的个数(包括子目录)
ls -lR | grep "^d" | wc -l
29 screen用法
screen可以在机器断开连接的情况下后台跑任务
安装 apt-get install screen
新建会话 screen -S 会话名字
查看开启的会话 screen -ls
进入名为name的窗口
screen -r name
退出会话 ctrl+A+D
关闭会话 screen -S 进程号 -X quit
再次进入退出的会话 screen -r 进程号(或者会话名)
30.pytorch指定gpu卡号
CUDA_VISIBLE_DEVICES=1 python main.py
31 读取文件夹文件名
可用方法包括os.walk/ os.listdir()/os.scandir
在python3中推荐使用os.scandir,速度相对前两个快很多倍。
示例代码
for i in tqdm(os.scandir(path), disable=False):
images.append(os.path.join(path, i))
32.tqdm用法
在迭代器前面加上tqdm,可以输出此迭代所需要的时间,对于代码调试分析,查看运行时间有帮助
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.两个list取交集、并集
交集(公共部分)
list(set(listA).intersection(set(listB)))
当数据量较大时要比
retA = [i for i in listA if i in listB]
快很多,大数据集不建议使用第二种方法
并集
list(set(listA).union(set(listB)))
求差集,在B中但不在A中
retD = list(set(listB).difference(set(listA)))
34.tar.gz包安装
使用 cd 命令导航到安装包所在的目录
对于 tar.gz ,使用 tar xvzf 安装包名称.tar.gz 命令解压
对于 tar.bz2 ,使用 tar xvjf 安装包名称.tar.bz2 命令解压
如果解压出的文件夹中有 \bin\脚本名称.sh 文件,则使用 cd命令导航到 bin 文件夹,然后使用 sudo bash 脚本名称.sh 命令即可安装。
若没有相应的 shell 文件,则使用下列命令安装。
./configure
make
sudo make install
35.获得路径下的所有子目录,构成一个list(不包括子目录里面的文件名)
from glob import glob
img_subfile=glob(img_path + "/*/", recursive = True)
36.服务器配置ssh server
ssh方便一个开发小组中人员登录一台服务器
如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-server。
查看当前的ubuntu是否安装了ssh-server服务
dpkg -l | grep ssh
安装ssh-server服务
sudo apt-get install openssh-server
确认ssh-server是否启动了:
ps -e | grep ssh
如果没有则可以这样启动: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
关闭再重启
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start
客户端断开连接
client_loop: send disconnect: Broken pipe
解决方法将连接时间设置的长一些
echo 'ServerAliveCountMax 1200' | tee -a ~/.ssh/config
37 tmux命令
与screen类似
1安装
sudo apt-get install tmux
2.查看会话
tmux ls
3.从会话中退回主页
Ctrl+b 后再按d
4.启动新会话:
tmux [new -s 会话名 -n 窗口名]
5.恢复会话:
tmux at [-t 会话名]
6.关闭会话:
tmux kill-session -t 会话名
- 新建一个名字的窗口
tmux new –s name
38 python pdb调试方法
import pdb
在正文可能有错的地方添加pdb.set_trace()
正常运行脚本
运行到此行时,出现
(Pdb)
输入n 运行下一行
输入p x或者x.shape 输出变量或者其shape
输入l查看原始代码
当某一行有错误时候,会出现
(Pdb) RuntimeError: Given normalized_shape=[192], expected input with shape [*, 192], but got input of size[128, 64, 64]
类似的错误,方便定位。
30 vscode ssh 远程连接
连接方法参考
https://zhuanlan.zhihu.com/p/68577071
https://server.51cto.com/article/684146.html
连接后总需要输入密码解决方法
https://blog.csdn.net/jyhongjax/article/details/106075493
原始是系统自带的openssh版本不对
先安装git
编辑环境变量
添加环境变量
新建,将安装的git路径添加上去
C:\Program Files\Git\usr\bin
将其上移到系统自带的openssh上方。
重开打开cmd ssh -V查看ssh版本变为
31 路径下文件名排序
file_list = os.listdir(input_dir)
file_list.sort(key=lambda x: int(x[:-4])) # 文件名 按数字排序
比如文件夹下文件名为123.jpg,从开始到.用数字进行排序
将中文保存为json时,需要加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 取出字典的多个key的对应value
from operator import itemgetter
aa={'a','1','b',2'','c','3'}
keys = ['a','b']
out = itemgetter(*keys)(aa)
out=('1','2')
这样的输出是元组tuple
想转成list
output=list(out)
33查看正在运行的python程序
ps aux | grep python
tmux输出看不全
ctrl+b然后松开,再按一下[
34用ll命令查看idx 索引文件大小
如果8个节点 /8就是一个epoch使用的数据
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': ' 首页'},
{'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包:
执行:pip install **.whl(前提是要安装好pip和wheel)
2、安装tar.gz包:
(1)解压 tar -zxvf xxx.tar.gz;
(2)·cd到解压后路径,执行python setup.py install
常见git命令使用
下载共享项目
git clone http://xxx.git
查看所有分支
git branch -a
仅仅切换分支
git checkout dataset_load
查看当前分支
git branch
查看文件修改状态
git status
add 更新过的文件,进行add操作
git add xxxdataset.py
上传并评论当前修改
git commit -m 'revise dataload bug'
推送分支
git push origin dataset_load
切换并新建新分支
git checkout -b dataset_load_big
创建新分支,更新时要更新新分支 git push origin
本地代码管理
- 环境配置 应户名/邮箱
git config --global user.name "Your Name"
git config --global user.email your_email@example.com
- 将一个目录初始化成 Git 仓库
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
可能出现这个错误,方法为
git config --global --add safe.directory /path/to/repo
/path/to/repo为报错中出现的路径
git commit -m ‘change’ 声明修改
比较最新的提交和指定文件的历史版本之间的差异:
git diff HEAD~1 <file>
HEAD~1
表示最近的上一个提交,<file>
是要比较的文件名。
比较任意两个提交之间的差异:
git diff <commit1> <commit2> <file>
<commit1>
和 <commit2>
分别是要比较的两个提交的 SHA-1 标识符,<file>
是要比较的文件名。
37.多个文件合并成一个
cat file1.txt file2.txt > merged.txt
将一个文件夹下的所有文件合并成一个文件,并将结果输出到特定的路径
cat /path/to/folder/* > /path/to/output/merged.txt
38.查看文件行数
wc -l file.txt
39.要查看一个txt文件的前10行,你可以使用以下命令:
head -n 10 filename.txt
40批量下载huggingface dataset filesandversions里的全部文件
到你所要下载模型或数据集文件后,去掉后面的/tree/main,然后增添.git,之后使用git下载就可以了。
到控制台命令执行如下命令:
git clone https://huggingface.co/datasets/glue.git
41.使用vim将txt中的<sep>替换为<n>
41.查看正在运行的程序
ps aux | grep python
42.使用vim查看一个字符出现的次数
:%s/字符//gn
43.将txt中不含某个字符的行数取出来
题目带代码的可以用以下命令清洗 awk '!/错误代码/' input_file > output_file
查看某个路径下有多少个文件
ls -l <directory> | wc -l