博客集合(解决各种问题)

本文涵盖了仿射变换矩阵在OpenCV中的应用、计算机视觉中的坐标变换顺序,Yolov5的推理加速方法、Git克隆快捷技巧、Conda环境管理和CUDA/Cudnn安装,以及Numpy和TensorRT优化、Python路径处理、模型加载策略、Yaml配置文件等内容。
摘要由CSDN通过智能技术生成

Pytorch Dataloader Epochs时速度较慢

Pytorch每个Epoch开始时加载数据速度慢解决方法
added MultiEpochsDataLoader


仿射变换矩阵 & cv2.warpaffine

Tips:

缩放-》旋转--》平移  == M = Transtion @ Rotation @ Scale

为什么坐标变换的顺序必须是: 缩放->旋转->平移
仿射变换矩阵的位置含义
Opencv 变化函数官方文档
在这里插入图片描述


推理加速汇总

Openvino适合Cpu加速《-------》onnxruntime和tensorrt适合GPU加速。

openVINO部署YOLOv5
Openvino给yolov5目标检测提速实战
ubuntu18下使用TensorRT对yolov5加速记录
Yolov5的3种tensorRT加速方式及3090测评结果(C++版和Python torchtrt版)
yolov5训练加速–一个可能忽视的细节(mmdetection也一样),为什么显卡使用率老是为0?
yolov5训练加速–一个可能忽视的细节(mmdetection也一样),为什么显卡使用率老是为0?第二篇
YOLOv5多进程/多线程推理加速实验
YOLOv5推理加速实验:图片批量检测
PyTorch显存机制分析


Yolov5 相关资料

深入浅出Yolo系列之Yolov5核心基础知识完整讲解
yolov4 二作与 yolov5作者讨论
Yolov5 Yolov4 Yolov3 TensorRT Implementation


Git clone 快捷方法

# 如原地址为
git clone https://github.com/tensorflow/tensorflow.git

# 方法一:
git clone https://gitclone.com/github.com/tensorflow/tensorflow.git 

# 方法二:
git clone https://ghproxy.com/https://github.com/tensorflow/tensorflow

Git clone 快捷方法


Git 命令大全

Git 命令大全


修改Conda 启动无法使用conda activate

方法1、source activate 先激活一次,后续则可以用。
方法2、修改bashrc文件

__conda_setup="$('/opt/conda/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/opt/conda/etc/profile.d/conda.sh" ]; then
        . "/opt/conda/etc/profile.d/conda.sh"
    else
        export PATH="/opt/conda/bin:$PATH"
    fi
fi
unset __conda_setup

export $(cat /proc/1/environ |tr '\0' '\n' | xargs)

非root用户安装cuda与cudnn

非root用户安装cuda与cudnn

# bashrc 路径设置
export CUDA_HOME=/usr/local/cuda-11.8
export PATH="${CUDA_HOME}/bin:$PATH"
export LD_LIBRARY_PATH="${CUDA_HOME}/lib64:${CUDA_HOME}/extras/CUPTI/lib64:$LD_LIBRARY_PATH"

Ubuntu22.04安装gcc-5和g++ -5

Ubuntu20.04 安装gcc-5和g+±5

# 切换 gcc
sudo update-alternatives --config gcc

远程 Tk.tk screenname 查询方式

printenv grep DISPLAY

在这里插入图片描述

Dropout 深层原理

Dropout --> 缩放规模(推理和训练达到统一规模)
知乎文章
相关的专栏


旋转目标检测如何入门

旋转框角度基础概念 --》PSC 角度编码–》目标检测基础模型 --》GWD loss(利用高斯分布替换检测框计算损失)

旋转框角度的定义
PSC 旋转目标编码
PSC 视频讲解
目标检测知乎专栏


Python 读取及保存中文路径

import cv2
import numpy as np

img_path = "测试.bmp"

# 假设你有一个包含图像数据的NumPy数组
image_data = np.fromfile(img_path, dtype=np.uint8)

# 解码图像数据
image = cv2.imdecode(image_data, cv2.IMREAD_COLOR)

# 编码保存图像
# cv2.imencode() 返回一个元组,其中第一个元素是布尔值,表示编码是否成功,第二个元素是编码后的图像数据
cv2.imencode('.bmp', output_img )[1].tofile(img_path)

Python 层级目录调用代码范例

import sys
from pathlib import Path

# 获得当前文件绝对路径
Script_path = Path(__file__).resolve().parent

# 寻找根目录
sys.path.insert(0, os.path.join(Script_path, '../'))

if __name__ == "__main__":
	# 文件调用规则,当前目录--》向上寻找文件位置
    root_dir = os.path.join(Script_path, '../models/invert_code.pt')

显存空占情况处理

查询GPU时无进程运行,但是显存却被占用了


HuggingFace 下载方式

参考链接:

如何快速下载huggingface模型——全方法总结
HuggingFace 镜像网站
如何快速下载huggingface模型——全方法总结–个人网站
第一种方式:
利用镜像站实现大模型的下载

pip install -U huggingface_hub
export HF_ENDPOINT=https://hf-mirror.com

huggingface-cli download --resume-download --local-dir-use-symlinks False () 

huggingface-cli download --token hf_***(HuggingFace 密钥) --resume-download --local-dir-use-symlinks False meta-llama/Llama-2-7b-hf(HuggingFace 模型名称) --include (指定文件名) --local-dir Llama-2-7b-hf(本地保存路径)

'''
huggingface-cli download --resume-download --local-dir-use-symlinks False meta-llama/Llama-2-7b-hf(HuggingFace 模型名称) --local-dir Llama-2-7b-hf(本地保存路径)
'''

第二种方式:
colab 保存 --》阿里云盘 --》阿里云盘小白羊下载 (本地可达6MB每秒上限)
通过阿里云盘+colab下载 huggingface大模型
Github 代码-从HuggingFace到阿里云盘
(其中google 有colab插件,打开github colab 代码!后,点击插件即可)

具体步骤:
1、运行github代码(记得修改 refresh-head 和大模型名称及其保存路径命名),从 HuggingFace 保存至阿里云盘。
2、通过“阿里云盘或阿里云盘小白羊”进行下载。


显存释放机制

Python 代码机制,先申请内存,尽管同一变量仍然放于不同的地址。

class A():
    def __init__(self) -> None:
        print("Init")
    
    def __del__(self):
        print("Del")

# 方案1
a = A()
a = A()
print(a)

# 方案2
a = A()
del a
a = A()
print(a)

方案1结果:
在这里插入图片描述
方案2结果:
在这里插入图片描述

相关博客:
PyTorch显存机制分析
Pytorch训练模型时如何释放GPU显存 torch.cuda.empty_cache()内存释放以及cuda的显存机制探索
torch显存分析——如何在不关闭进程的情况下释放显存
PyTorch显存分配原理——以BERT,GPT为例
Pytorch显存机制与显存占用(一) —— 理论分析(memory)(训练过程中占用显存最大部分的是activation)(pytorch缓存区/缓存分配器)


博客代码复制删除前面的数字

  1. 复制代码进 wps
  2. 按“Alt”+左键对数字进行选取。
  3. Del 进行删除,有时按两下。

F.interpolate() 与 nn.Upsample() 函数的区别

参考链接1
align_corners 参数解释:
一文看懂align_corners
【图像处理】bilinear中的align=True or False


import torch.nn as nn
import torch.nn.functional as F
import torch
import numpy as np

img = np.array(range(1, 5)).reshape(1, 1, 2, 2)

x = F.interpolate(torch.Tensor(img), scale_factor=2, mode='bilinear', align_corners=True)
print(x)

nn_up = nn.Upsample(scale_factor=2, mode='bilinear', align_corners=True)
x2 = nn_up(torch.Tensor(img))
print(x2)

torch.tensor() 与 torch.Tensor() 函数的区别

import torch
import numpy as np

img = np.array(range(1, 5)).reshape(1, 1, 2, 2)
x1 = torch.tensor(img)
x2 = torch.Tensor(img)
print(x1)
print(x2)

结果如下:
123


模型数据加载优化策略:

数据加载速度优化


Numpy 矩阵加速策略:

Numpy 矩阵加速技巧


cuda 环境迁移

cuda 环境迁移文章

旧机器:

# 安装打包conda环境的软件:
1、 conda install -c conda-forge conda-pack
# 使用conda-pack打包环境:
2、 conda pack -n 虚拟环境名称 -o output.tar.gz

新机器:

# 复制压缩文件output.tar.gz 到新的电脑环境
1、 scp -r output.tar.gz zhangsan@172.168.23.10:/data  #(zhangsan@172.168.23.10:/data: 用户名@ip地址:文件名)
# 进入到 "conda的安装目录" 下:/anaconda(或者miniconda)/envs/,在该名目录下创建文件夹,复制output.tar.gz 到文件夹中。
2、
cd /anaconda(或者miniconda)/envs/ # 不同电脑情况不一致,根据情况选择。
mkdir torch_2.0_conda  # (torch_2.0_conda:conda环境自取名)
cp -r output.tar.gz /anaconda(或者miniconda)/envs/torch_2.0_conda  
# 解压conda环境:
3、 tar -xzvf output.tar.gz
# 查看虚拟环境
4、 conda env list 
# 激活环境
5、 conda activate  

Yaml 文件相关

YAML 是一种较为人性化的数据序列化语言,可以配合目前大多数编程语言使用。

YAML 的语法比较简洁直观,特点是使用空格来表达层次结构,其最大优势在于数据结构方面的表达,所以 YAML 更多应用于编写配置文件,其文件一般以 .yml 为后缀。

Yaml 基础
Yaml 入门
Yaml 内部调用
Yaml 外部调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值