- 博客(47)
- 收藏
- 关注
原创 vscode
"C_Cpp.formatting": "clangFormat", "C_Cpp.intelliSenseEngineFallback": "Enabled", "clangd.detectExtensionConflicts": false, "editor.formatOnType": true, "editor.semanticTokenColorCustomizations": { "enabled": true, // enable for al.
2022-04-22 17:16:22
400
3
原创 关于多卡推理的猜想
1.分组卷积 设计动机:GPU显存不足,需要双卡同时训练及推断 原理:将卷积核分为两组,分别在两张GPU上进行处理,最后再使用全连接层对两组卷积得到的特征进行整合(混洗) 优点:双卡分担计算量,且总计算量减少一半。 缺点:无法方便地使用预训练模型,且由于两组特征之间的信息没有交互,效果会变差。过量分组会增加MAC。 shufflenet增加了通道混洗结构,增强特征通信,但如果在多卡上分别进行组卷积,则对显卡之间的通信速度要求较高。 2.深度可分离卷积 一种极致分组的分组卷积,混洗方式为1*1卷积。
2021-10-13 20:41:45
1132
2
原创 YOLO v1,v2,v3总结
YOLOv1 相比于两步法,yolo v1用网络直接回归出目标框和框置信度得分并对类别进行分类,没有提取建议区域的步骤,比两步法更快(可以将yolo v1看作是faster rcnn中的RPN网络的高精度版)。 从另一种角度理解,yolov1将图像分为了77共49个grid,输出的张量为77*30,分别对应每个grid,这其实就是粗暴地将划分出地grid作为建议区,然后执行两部法的第二部对其进行回归和分类。 上图为对应某grid cell的输出张量,对应输出内容,损失函数分为框置信度损失、框定位损失和分
2021-08-04 15:05:06
1396
原创 2021-06-28
git diff #查看与上一个提交版本的改动内容 git status #查看与上个版本有差异的文件路径 git log #查看commit提交的更改信息 git add 文件 #跟踪指定文件 git commit -m “备注” #提交文件到本地仓库 git commit -am “备注” #提交所有文件到本地仓库,无需git add git commit --amend #修改本次提交信息,不会增加git log中的提交版本 ...
2021-06-28 22:58:47
171
6
原创 CUDA基本优化方法
一、基于线程的优化方法 1.选取合适的gridDim和blockDim blockDim最好为32的整数倍:因为执行指令的基本单位为线程束,线程束内的所有线程统一执行广播下来的命令,而线程束的线程数量基本为32。当block被分到SM中去,其会被划分为多个线程束,若blockDim!=线程束内线程数整数倍,则会造成线程的浪费。 2.减少存在分支的if 因为线程束中的所有线程执行同一条的指令,若出现存在出现分支的if,即线程束内的部分线程符合if条件,部分符合else条件,因cuda编译不具备分支预测能力,则
2021-06-24 15:24:43
3626
原创 pcl框选点云
配合X键完成选取 #include <pcl/io/pcd_io.h> #include <pcl/point_cloud.h> #include <pcl/point_types.h> #include <pcl/visualization/pcl_visualizer.h> #include <iostream> #include <vector> pcl::PointCloud<pcl::PointXYZ>::Ptr
2021-05-19 21:24:24
650
1
原创 PCL
环境配置 "args":[ "-g", "${workspaceFolder}/${fileBasename}", // include path指令 "-I", "/usr/local/include/pcl-1.8", "-I", "/usr/include/eigen3", "-I", "/usr/include/vtk-5.10", "-I", "/usr
2021-05-19 21:22:43
154
原创 CUDA installing
sudo ubuntu-drivers autoinstall sudo sh xxxxxx.run sudo gedit ~/.bashrc export PATH=$PATH:/usr/local/cuda/bin
2021-05-06 15:52:04
150
原创 cv2
图片裁剪 img=img[10:650,300:600] # 第一个范围表示高度 第二个范围表示宽度 画框 cv2.rectangle(img, (x, y), (x+width, y+height), (0, 0, 255), 2)#(宽,高)左上角点和右下角点 查看图像尺寸 [height,width,channles]=img.shape ...
2021-04-21 00:19:48
156
原创 python
os.path.splitext 去除扩展名 path1='asd/fgh/image.jpg' print(os.path.splitext(path1)) #输出'asd/fgh/image' os.path.basename 返回文件名 path1='asd/fgh/image.jpg' print(os.path.basename(path1)) #输出'image.jpg'
2021-04-09 21:56:18
164
原创 leetcode
栈和队列 stack<int> st; st.push(x); st.pop(); cout<<st.top()<<endl; //注意在确认栈不为空的情况下才可以查看top cout<<st.size()<<endl; if(!st.empty()) queue<int> que; cout<<que.front()<<que.back()<<endl; string //栈赋值给string
2021-03-08 00:40:05
165
原创 面试问题
1.sigmod和softmax的区别: 二者都是典型的激活函数,sigmod 函数常用于二分类,softmax 函数常用于多分类。两者都起到了压缩的作用(将输出压缩到0-1)。 2.sigmod和relu的优劣: Relu优点:(1)relu函数在大于0的部分梯度为常数,所以不会产生梯度弥散现象.。而对于sigmod函数,在正负饱和区的梯度都接近于0,可能会导致梯度消失现象。(2)Relu函数的导数计算更快,所以使用梯度下降时比Sigmod收敛起来要快很多。 Relu缺点:Relu死亡问题。当 x 是小于
2021-03-01 21:55:06
281
原创 mmdet修改图像深度
Lib/mmdetection/mmdet/datasets/pipelines/loading.py anaconda3/lib/python3.8/site-packages/mmcv/image/io.py anaconda3/lib/python3.8/site-packages/mmcv/image/photometric.py Lib/mmdetection/mmdet/datasets/pipelines/transforms.py anaconda3/lib/python3.8/site-p
2021-02-22 02:55:36
514
原创 opencv-python
查看图像尺寸 width=out_img.shape[1] hight=out_img.shape[0] 图像拼接 #竖直方向上拼接 img3 = np.vstack([img1, img2]) #水平方向上拼接 img3 = np.hstack([img1, img2]) #深度拼接 img3 = np.concatenate((img1, img2), axis=2) 图像裁剪 img[100:200,100:300] #100:200的意思是高截取100到200像素点的距离 #100:300的意思
2021-02-22 02:55:20
159
原创 docker比赛提交常用命令
登录账户 export DOCKER_REGISTRY=registry.cn-hangzhou.aliyuncs.com/cqy_test docker login $DOCKER_REGISTRY --username=西交陈清源 创建自己的镜像 拉取基础镜像 docker pull registry.cn-shanghai.aliyuncs.com/tcc-public/python:3 #基础镜像地址 #https://tianchi.aliyun.com/forum/postDetail?spm
2021-02-16 15:43:16
608
原创 比赛2
“完了完了”队算法说明及运行流程 1. 算法说明 框架选择: 深度学习框架使用pytorch,目标检测框架使用mmdetection。 模型选择: 模型选用two-stage的检测模型cascade-rcnn。 训练集生成: 将原训练集通过划窗裁剪的方式裁剪并保留包含瑕疵的划窗块,其划窗大小为1024*1024,步长为512,共可生成四万多张图片。 测试集生成: 由于cascade-rcnn模型可对多种尺度的输入图像进行处理,所以直接采用原测试集图片作为测试集。 Tricks: (1)减小anchor尺寸以
2021-01-31 20:20:52
205
原创 mmdetetcion训练COCO格式的检测数据集
修改参数 以backbone为resnet的cascade rcnn为例,打开config/cascade文件夹下的cascade_rcnn_r50_fpn_20e_coco.py,第一行如下 _base_ = './cascade_rcnn_r50_fpn_1x_coco.py' 打开cascade_rcnn_r50_fpn_1x_coco.py _base_ = [ '../_base_/models/cascade_rcnn_r50_fpn.py', '../_base_/datas
2021-01-13 00:06:57
1149
原创 OpenCV图像编码和解码 imencode和imdecode
#include <iostream> #include "opencv2/opencv.hpp" #include "opencv2/imgcodecs/legacy/constants_c.h" #include "opencv2/imgproc/types_c.h" using namespace std; using namespace cv; int main() { cv::Mat img_encode; img_encode = imread("/home/cqy
2020-12-29 20:24:18
2781
1
原创 darknet make时出现nvcc: not found
darknet make时出现nvcc: not found是因为找不到cuda路径,需要打开makefile,将NVCC=nvcc修改为:NVCC=/usr/local/cuda-xx.x/bin/nvcc,即可解决问题
2020-12-03 17:34:55
746
原创 TensorRT C++ 序列化serialize / 反序列化deserialize
序列化Engine // serialize the engine, then close everything down const std::string engine_file{ "tensorrt_mnist.trt" }; nvinfer1::IHostMemory* gieModelStream = mEngine->serialize(); // GIE model fprintf(stdout, "allocate memory size: %d bytes\n", gieModelS
2020-11-19 23:24:16
2624
5
原创 Tensor RT C++ 使用流程
Tensor RT C++ 使用总体流程 提供包含权重和网络结构的文件,如.onnx,相当于构建生产流水线所需的参数图纸 Creating a TensorRT network definition from your model 盖一个工厂(builder),放置生产流水线(engine)用来生产,流水线是加速网络,原料是输入,生产出结果 Invoking the TensorRT builder to create an optimized runtime engine from the networ
2020-11-18 17:28:07
1707
1
原创 Tensor RT官方安装手册
https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html#installing-zip Tensor RT官方安装手册
2020-09-25 17:12:49
290
原创 anaconda环境配置
source activate pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-contrib-python https://pytorch.org/get-started/locally/
2020-08-26 20:30:11
206
1
原创 ubuntu 安装cuda时/tmp空间不足
更改临时文件存放位置 sudo sh cuda_11.0.3_450.51.06_linux.run --tmpdir=/home/cqy/tmp
2020-08-24 22:37:54
2970
2
原创 pytorch加载预训练模型部分参数
resnet = models.resnet50(pretrained=True) new_state_dict = resnet.state_dict() dd = net.state_dict() #net是自己定义的含有resnet backbone的模型 for k in new_state_dict.keys(): print(k) if k in dd.keys() and not k.startswith('fc'): #不使用全连接的参数 print('y
2020-08-17 11:33:02
1433
原创 c++用rand()产生随机数
#include <ctime> srand(unsigned(time(NULL))); int num = rand() % 100; //产生0~149共150个整数。 float fnum = (rand() % 2000)/1000.0 - 1; //产生-1~1的浮点数。
2020-05-08 20:52:30
385
原创 数据集处理相关
iter() 和next() https://blog.csdn.net/sxingming/article/details/51479039?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158807744819724843357761%2522%252C%2522scm%2522%253A%252220140713.130102...
2020-04-28 22:22:43
284
原创 autograd
x.requires_grad = True #Variable 正式合并入Tensor, Variable 本来实现的自动微分功能,Tensor就能支持。读者还是可以使用Variable(tensor), 但是这个操作其实什么都没做。建议读者以后直接使用tensor output=net(input) criterion=nn.MSELoss() loss=criterion(output,ta...
2020-04-28 17:53:34
235
原创 tensor
import torch as t from future import print_function #张量定义 x = t.Tensor(5, 3) x = t.Tensor([[1,2],[3,4]]) x = t.rand(5, 3) #查看尺寸 print(x.size()) x.size(1) #列数 #加 t.add(x, y, out=result) # 输入到result ...
2020-04-28 16:55:37
322
原创 pytorch网络和反向传播相关
torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode=‘zeros’)
2020-04-26 10:42:31
364
3
原创 OpenPose demo参数使用(c++)
命令行参数: 打开摄像头检测pose:–camera 0 处理指定文件夹里的所有图像:–image_dir C:\Users\chenQY\Desktop\pose\Openpose_test\x64\Release\1 指定模型文件夹:–model_folder C:\Users\chenQY\Desktop\pose\Openpose_test\x64\Release\models 指定模型:...
2020-04-17 14:36:02
1410
原创 读取文档&将结果保存为文档
string text_time = exe_address + “\time.txt”; //得到耗时 ofstream fout_time(text_time); fout_time << “running time = " << ((double)getTickCount() - start_time) / getTickFrequency() <<”...
2020-03-31 12:55:08
195
原创 OpenCV
cv.imwrite(‘outputs/m%d.jpg’%octave, cv.resize(deprocess(detail),(1280,720),cv.INTER_LINEAR)*255,[int(cv.IMWRITE_JPEG_QUALITY),100])
2020-03-18 21:42:16
193
原创 ubuntu
https://files.pythonhosted.org/packages/14/d3/d683fb120771489ae0a49bbaf6085942751c039f5f5e02e9775b7883c377/gym-0.16.0.tar.gz
2020-02-25 23:35:52
145
1
原创 将主机(linux)存储通过NFS挂载在嵌入式开发板(linux)上
主机操作: 1. sudo ifconfig eth0(一般是e开头) 192.168.199.1 //修改IP地址 2. sudo apt-get install nfs-kernel-server //安装服务器 3. sudo gedit /etc/exports //配置NFS路径 /home/cqy/work是本主机上允许用来挂载的文件夹,...
2019-11-28 20:01:36
452
8
原创 c++调用c库和c函数
extern “C” { #include “xxxx.h” } extern “C” { int xxx(inta,int b); }
2019-08-18 00:41:27
315
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅