博客集合
- Pytorch Dataloader Epochs时速度较慢
- 仿射变换矩阵 & cv2.warpaffine
- 推理加速汇总
- Yolov5 相关资料
- Git clone 快捷方法
- Git 命令大全
- 修改Conda 启动无法使用conda activate
- 非root用户安装cuda与cudnn
- Ubuntu22.04安装gcc-5和g++ -5
- 远程 Tk.tk screenname 查询方式
- Dropout 深层原理
- 旋转目标检测如何入门
- Python 读取及保存中文路径
- Python 层级目录调用代码范例
- 显存空占情况处理
- HuggingFace 下载方式
- 显存释放机制
- 博客代码复制删除前面的数字
- F.interpolate() 与 nn.Upsample() 函数的区别
- torch.tensor() 与 torch.Tensor() 函数的区别
- 模型数据加载优化策略:
- Numpy 矩阵加速策略:
- cuda 环境迁移
- Yaml 文件相关
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 命令大全
修改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
# 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
# 切换 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')
显存空占情况处理
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缓存区/缓存分配器)
博客代码复制删除前面的数字
- 复制代码进 wps。
- 按“Alt”+左键对数字进行选取。
- 按 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)
结果如下:
模型数据加载优化策略:
Numpy 矩阵加速策略:
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 为后缀。