服务器常用小技巧和机器视觉模型常见bug

技术/问题 积累

conda环境

#创建
conda create -n your_env_name python=x.x
#查看
conda env list
#删除
conda remove -n your_env_name --all
#删除环境中的某个包
conda remove --name $your_env_name  $package_name 
#激活环境
Linux:  source activate your_env_nam
Windows: conda activate your_env_name
#关闭虚拟环境,返回默认环境
deactivate env_name

#复制环境库
conda create -n new_name --clone base

torch检测

import torch
print(torch.__version__)
print(torch.cuda.is_available())

切换镜像源

pip install opencv-python-headless -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install opencv-contrib-python -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

按照txt安装环境包:
pip install -r requirements.txt

永久更新镜像源:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
豆瓣:http://pypi.douban.com/simple/
阿里云:http://mirrors.aliyun.com/pypi/simple/
华为云:https://repo.huaweicloud.com/repository/pypi/simple
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
中科大:https://pypi.mirrors.ustc.edu.cn/simple/
cv2问题:

必须同时安装opencv-python、opencv-contrib-python才有cv2,但是会有:
ImportError: libGL.so.1: cannot open shared object file: No such file or directory
解决方法:安装opencv-python-headless,但又会有:
AttributeError: module 'cv2.cv2' has no attribute 'ximgproc'
网上说三个版本会有冲突,但不同时按又有问题,矛盾!!
opencv-contrib-python-headless解决
docker:
docker images:查看镜像
systemctl status docker:查看当前运行状态

git克隆密码:

​		账号:88888

​		密码:88888
提交master:
git init
git clone ...
git add ...
git commit -m "..."
git push
 sudo apt-get install tmux
 conda install tmux
 安装tmux

tmux:启动窗口,直接运行程序即可,
# 退出,返回Shell界面,输入tmux attach能够重新进入之前的会话
exit 或 Ctrl+D # 注意 如果在session中使用exit,这个session就会被关闭

tmux new -s train
# 创建一个名为train的新会话

tmux detach
# 退出当前会话,回到之前的bash中

tmux ls
# tmux ls命令可以查看当前所有的 Tmux 会话。

tmux attach -t train
#tmux a -t name
# 回到train这个会话中
先按快捷键ctrl+b,松开后再按下[,即进入历史输出信息查看模式,可通过键盘上的上下左右键来滚动历史输出信息。如果要退出查看模式,按下q即可。

tmux attach -t <session-name>
# 返回之前创建的某个会话的界面中
# 例如  tmux attach -t train

tmux kill-session -t train
# 删除名为train的会话
tensorboard:可视化模型效果
tensorboard --logdir=<run_path> --port=<port>   port不加默认6006
vscode直接跳转
不同服务器之间的传输:
复制到别的服务器:
    文件:scp 文件名 用户名@计算机IP或者计算机名称:远程路径
    若有非默认端口(22), -p 即可(scp -p 12277 ...)
    文件夹:scp -r 文件夹名称 用户名@计算机IP或者计算机名称:远程路径
    例:scp -r Dialogue/MedDialogueGenNew-main ubuntu@118.89.121.126:model_2
从别的服务器拉取:
	scp -r 用户名@计算机IP或者计算机名称:目录名 本地路径
	例:scp -r xxx@192.168.0.1:/home/test2 /home/test1
	#xxx@192.168.0.1为远程服务器的用户名和ip地址,test1为源目录,test2为目标目录。
linux查看某文件夹下文件数量:
统计当前目录下文件的个数(不包括目录)
ls -l data/images  | grep "^-" | wc -l
统计当前目录下文件的个数(包括子目录)
ls -lR data/images | grep "^-" | wc -l
linux服务器运行代码报错:Non-UTF-8 code starting with '\xbc' in file /home/zqh/workspace/to_onnx/load_model.py on line 7, but no encoding declared; see https://python.org/dev/peps/pep-0263/ for details
编码问题
最顶部加入注释: # coding=gb2312
VSCode免密码登录:
客户端(已安装ssh):
    找到用户文件下.ssh文件中的id_rsa.pub
    C:\Users\xxx\.ssh> cat id_rsa.pub
    复制内容
在服务器中:
vim ~/.ssh/authorized_keys
添加上复制的内容,OK

# torch 2.2 安装(A6000服务器):
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
Scoop安装:
# 安装scoop
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')

# 设置环境变量
$env:SCOOP='D:\Applications\Scoop'
[Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
$env:SCOOP_GLOBAL='F:\GlobalScoopApps'
# 下边可能出错,暂时无碍
[Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')

# 设置环境变量之后,建议将默认目录下的所有文件复制到新目录下

# 开始安装软件
scoop install aria2
# scoop install <软件名>
# global目录下安装:scoop install -g <软件名>

# 找不到软件?添加软件库
scoop bucket add <bucketname>

遇到conda错误:
Fatal error in launcher: Unable to create process using '"E:\ModelTY\SadTalker\venv\Scripts\python.exe"  "D:\Anaconda\Scripts\conda.exe" list': ???????????

可以使用python -m 进行conda初始化:
python -m conda init

wandb错误:wandb: \ 56.425 MB of 56.425 MB uploaded 一直卡住不动:
pkill wandb-service
解决

计算普通模型参数:

import torch
from unet import UNet

# 加载模型
model = UNet(3,2)
# 加载模型参数
checkpoint = torch.load('checkpoints/unet_ASPP/unet_model_best.pth')

# 打印意外的键
unexpected_keys = set(checkpoint.keys()) - set(model.state_dict().keys())
print(f"Unexpected keys in state_dict: {unexpected_keys}")

# 过滤掉不需要的键
filtered_checkpoint = {k: v for k, v in checkpoint.items() if k in model.state_dict()}

# 加载过滤后的 state_dict
model.load_state_dict(filtered_checkpoint, strict=False)

# 将模型设置为评估模式
model.eval()

# 计算总参数量
total_params = sum(p.numel() for p in model.parameters())
print(f"Total number of parameters: {total_params}")

# 查看每层参数量
for name, parameter in model.named_parameters():
    if not parameter.requires_grad:
        continue
    param_count = parameter.numel()
    print(f"Layer: {name} | Number of parameters: {param_count}")

计算nnUnet模型参数:

import torch
# 加载权重文件
checkpoint = torch.load('fold_0/checkpoint_best.pth', map_location=torch.device('cuda'))
# 获取字典的键列表
keys = checkpoint.keys()
print(keys)
#network_weights是它的模型参数
model_state_dict = checkpoint['network_weights']
total_params = 0
# 计算参数总量
for name, param in model_state_dict.items():
    total_params += param.numel()
print("Total parameters: ", total_params)
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值