![](https://img-blog.csdnimg.cn/20191223010429523.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
技术栈
主要用于各类工具,新开发软件的学习
dlvector
be better man,基础不牢,地动山摇!
展开
-
如何高效阅读源码
以前阅读代码总是很慢,自己理解能力也不是很好,很难直接在脑中运算出每一步结果,主要原因有两点:对api不熟悉,框架太多,函数太多.->多熟悉自己常用的框架源码框架层数一般较深,多次返回就会记不住原来的内容.这次也是从网上阅读了一些博主的帖子,希望改进自己的源码阅读能力,提高工作效率.如何高效阅读源码带着问题去阅读,这次为什么看代码?希望理解和解决什么问题?先让项目可以跑起来多熟悉框架的功能点的使用,不会用就谈不上读多debug,打断点来分析运行的情况.重点地方写注释形成文档,记录自原创 2021-12-19 23:20:34 · 238 阅读 · 0 评论 -
存档_CmakeList的一些常见配置
cmake 设置cuda的时候一些配置选项.# 按惯例,cmake的版本CMAKE_MINIMUM_REQUIRED(VERSION 2.8)# 项目名称PROJECT(AD-Census)# cmake寻找cuda,这个要现在系统里面装好cuda,设置好cuda的环境参数啥的FIND_PACKAGE(CUDA REQUIRED)# C++和CUDA的编译参数,可选。SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")SET(CUDA_N原创 2021-07-25 16:48:27 · 234 阅读 · 0 评论 -
Anaconda瘦身_清理相关存储
用了一年的anaconda,存储占用44G,不断出现存储不够的报警。可以看到有很多库,不同版本的库,这里可以用conda自带的清理命令行来处理一下。conda clean 命令方参数$ conda clean -Husage: conda clean [-h] [-a] [-i] [-l] [-p] [-t] [-f] [-c TEMPFILES [TEMPFILES ...]] [-d] [--json] [-q] [-v] [-y]Remove unu原创 2021-04-05 20:15:11 · 8237 阅读 · 2 评论 -
cpp源码STL之vector中push_back的时间复杂度分析
先说结论最好是O(1),最差是O(n), 均摊是O(1)。最好的情况,就是插入的时候,还有空余;最坏的情况,就是每次插入都满了,要重新分配内存。均摊复杂度,先看一下定义对一个数据结构进行一组连续操作中,大部分情况下时间复杂度都很低,只有个别情况下时间复杂度比较高,而且这些操作之间存在前后连贯的时序关系,这个时候,我们就可以将这一组操作放在一块儿分析,看是否能将较高时间复杂度那次操作的耗时,平摊到其他那些时间复杂度比较低的操作上。推导这里就是按照定义,对插入九个数的过程进行了分析原创 2021-02-09 02:11:54 · 641 阅读 · 0 评论 -
sklearn:卡方分布输入不能是负数
今天使用sklearn进行特征选择的时候出现一个错误:ValueError: Input X must be non-negative.找了stackoverflow,原来是卡方验证不能用于负值。卡方分布是通过统计当前变量的频次,和目标变量的频次来分析当前变量时候有关系来衡量当前变量的重要程度,所以用来做特征选择。这里细致讲解,请看参考博客第三个。频次当然不是负数,所以不能输入负数值。解决办法:1.把输入变化到0-1.sklearn.preprocessing.MinMaxScaler()原创 2021-02-01 01:00:28 · 2517 阅读 · 0 评论 -
opencv测试的基本代码
开始一直运行不正确,发现和标准代码有出入。发现是使用img.empty() == 0这个用法是错误的。#include <opencv2/core.hpp>#include <opencv2/imgcodecs.hpp>#include <opencv2/highgui.hpp>#include <opencv2/opencv.hpp>#include "opencv2/highgui/highgui.hpp"#include <iostre原创 2021-01-20 23:29:51 · 2136 阅读 · 1 评论 -
自动调参数工具:Keras-Tuner的基本使用
基本的代码,导入一些库文件。from tensorflow.keras.datasets import fashion_mnistfrom tensorflow import kerasfrom tensorflow.keras.layers import Conv2D, MaxPooling2D, Dense, Flatten, Activation(x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()定义模型构建函数,原创 2021-01-03 23:36:22 · 1740 阅读 · 0 评论 -
pytorch中二分类的lossf函数使用
二分类中,torch.nn.BECLoss 和torch,nn.BCEWithLogitsLoss需要预测输出y_pred和y_gt需要一样的维度。故需要使用一下两种转变y_gt的方法。假设y_pred如下:[[1.2 2.3 ],[2.1 2.2 ]]其中,y_gt如下:[[0],[1]]目标是是转化成下面的维度:[[1,0],[0,1]]代码如下:gt_y_temp = torch.zeros(gt_y.shape[0], 2)gt_y_temp[range(gt_y.sh原创 2021-01-01 19:29:56 · 1836 阅读 · 0 评论 -
MATLAB可视化:用鼠标选取ROI
function Zoomer figure(); highResImage = imread('peppers.png'); lowResImage = imresize(highResImage,0.5); a1 = subplot(2,1,1); a2 = subplot(2,1,2); imshow(lowResImage,'Parent',a1); initialPosition = [10 10 100 100]; lowRe原创 2020-11-20 22:59:42 · 1245 阅读 · 0 评论 -
opencv中加速的一些操作
CV_OCL_RUNOpenCL(全称Open Computing Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准。OpenCL由两部分组成,一是用于编写kernels(在OpenCL设备上运行的函数)的语言,二是用于定义并控制平台的API(函数)。 OpenCL提供了基于任务和基于数据两种并行计算机制,它极大地扩展了GPU的应用范围,使之不再局限于图形领域。OpenCL是一种标准,intel、Nvidia、ARM、AMD、QUALCOMM、Apple都有其.原创 2020-11-03 15:07:39 · 3193 阅读 · 0 评论 -
C++ VS2015提示未加载 wntdll.pdb
报错信息:未加载wntdll.pdb,下面的框架可能不正确/或缺失,没有为ntdll.dll加载符号。出错原因:你的指针指向了错误的东西 / 你调用你的指针释放了奇怪的内容,和内存的调用有很大的关系,比如new的使用。案例:有问题的代码:#include<iostream>#include<ctime>#include<fstream>#include<string>#include<stack>#include<v原创 2020-11-02 16:11:44 · 2247 阅读 · 0 评论 -
matlab中对文件的操作总结
matlab中常见的对文件的操作函数有:fopen,fseek,ftell,fread,fclose打开文件fid=fopen(文件名,‘打开方式’)fid用于存储文件句柄值如果返回的句柄值大于0,则说明文件打开成功。常见的打开方式如下:‘r’:只读方式打开文件(默认的方式),该文件必须已存在。‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建原创 2020-10-29 16:00:22 · 738 阅读 · 0 评论 -
各种加速,专治便秘
pip 安装加速pip --default-timeout=100 install 库名称 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com2020.07.22更新:如果上面那个豆瓣依然不快(虽然还没出现过这种情况),可以换成下面的国内镜像网站。清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/中国原创 2020-10-25 21:41:05 · 101 阅读 · 0 评论 -
opencv中常用的绘制集合图形的函数
linevoid line(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=8, int shift=0)参数:img: 要绘制线段的图像。pt1: 线段的起点。pt2: 线段的终点。color: 线段的颜色,通过一个Scalar对象定义。thickness: 线条的宽度。lineType: 线段的类型。可以取值8, 4, 和CV_AA, 分别代表8邻接连.原创 2020-10-19 16:03:22 · 197 阅读 · 0 评论 -
opencv中Mat对象的构造函数与常用方法
深拷贝和浅拷贝的区别clone是深拷贝,会重新开辟内存,复制过去。浅拷贝是指,新的变量只是一个引用,只不过指向原来的存储位置,特别注意这种引用,会修改原值。原创 2020-10-15 16:29:04 · 427 阅读 · 0 评论 -
配置vs时个人习惯
1.关闭符号加载打开VS的【工具】-【选项】-【调试】-【符号】参考:https://blog.csdn.net/wenpinglaoyao/article/details/78978267VS调试时出现“加载符号缓慢的问题”2.关闭诊断工具【工具】-【选项】-【调试】-【常规】 - 【调试时启动诊断工具】3.安装看图插件 images watch...原创 2020-10-15 13:58:05 · 159 阅读 · 0 评论 -
opencv中Mat格式,图像读入与像素获取
常用的基本函数Mat矩阵的定义data:Mat对象中的一个指针,指向内存中存放矩阵数据的一块内存 (uchar* data)dims:Mat所代表的矩阵的维度,如 3 * 4 的矩阵为 2 维, 3 * 4 * 5 的为3维channels:通道,矩阵中的每一个矩阵元素拥有的值的个数,比如说 3 * 4 矩阵中一共 12 个元素,如果每个元素有三个值,那么就说这个矩阵是 3 通道的,即 channels = 3。常见的是一张彩色图片有红、绿、蓝三个通道。depth:深度,即每一个像素的位数(b原创 2020-10-14 10:33:32 · 3573 阅读 · 0 评论 -
pytorch中GPU数据常见的数据操作
x.data 与 x.detach() 返回的 tensor :相同:都和 x 共享同一块数据都和 x 的 计算历史无关requires_grad = False不同:y=x.data 在某些情况下不安全, 某些情况, 指的就是 上述 inplace operation 的第二种情况.detach(),从反向传播图中切割出来,不参与反向传播。但是会参与前向计算,因为储存空间共享。.cpu().item() 标量可以这样提取数值。.cpu().detach().numpy(),使用nu.原创 2020-09-28 09:56:27 · 632 阅读 · 0 评论 -
pytorch中自己写loss需要注意的地方
不要使用inplace操作比如out += residual #会导致原来的out被覆盖,反向传播出现问题。a.add_(10.) # 或者 a += 10.# RuntimeError: a leaf Variable that requires grad has been used in an in-place operation.需要反向传播,并再次赋值,正确的做法:a.data.fill_(10.)# 或者 a.detach().fill_(10.)参考博客:PyTor.原创 2020-09-28 09:45:55 · 1005 阅读 · 0 评论 -
docker错误记录
错误1.WARNING: Error loading config file: /home/kang/.docker/config.json: stat /home/kang/.docker/confsudo chown "$USER":"$USER" /home/"$USER"/.docker -R sudo chmod g+rwx "/home/$USER/.docker" -R错误2.Got permission denied while trying to connect to the D原创 2020-08-14 00:27:21 · 136 阅读 · 0 评论 -
conda 改下载源的方法
conda 改源conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --set show_channel_urls yesconda config --add channels https://原创 2020-08-11 17:08:12 · 1403 阅读 · 0 评论 -
pytorch学习:loss为什么要加item()
作者:陈诚链接:https://www.zhihu.com/question/67209417/answer/344752405来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。PyTorch 0.4.0版本去掉了Variable,将Variable和Tensor融合起来,可以视Variable为requires_grad=True的Tensor。其动态原理还是不变。在获取数据的时候也变得更优雅:使用loss += loss.detach()来获取不需要梯度回传的部分。或转载 2020-07-05 20:46:26 · 31282 阅读 · 0 评论 -
pytorch学习:visdom绘制网络训练过程
安装pip install visdom 或者 conda isntall visdom打开使用visdompython -m visdom.server通过http://localhost:8097访问在代码中加入visdom#导入包from visdom import Visdom#生成一个viz的环境viz = Visdom()#初始化两个小的窗格,来分别绘制train,test的情况# 绘制初始点,原点viz.line([0.], [0.], win='train_lo原创 2020-07-05 19:40:26 · 351 阅读 · 0 评论 -
英伟达驱动相关概念和安装驱动过程记录
查考网站:安装显卡驱动,很细致:https://gist.github.com/wangruohui/df039f0dc434d6486f5d4d098aa52d07原创 2020-07-05 00:39:09 · 2631 阅读 · 0 评论 -
matlab学习:图像的加减乘除操作
图像加法imgRice = rgb2gray(imread('rice.png'));imgCameraman = imread('cameraman.tif');imgCameraman = imgCameraman(:,1:255);addimg = imadd(imgRice,imgCameraman);figure,subplot(131),imshow(imgRice);subplot(132),imshow(imgCameraman);subplot(133),imsho.原创 2020-06-28 12:28:47 · 11871 阅读 · 2 评论 -
pytorch学习:搭建自己的数据集
数据和label的标签主要有三种,需要分别写。常见的形式:按照文件叫不同来存放照片这个时候,我们使用pytorch 的数据集构建功能,主要完成两个类:Dataset类和DataLoard类,分别用来告知存储数据的位置和提取数据。主要实现一下三个方法:初始化:init,getitem和len这样构建的两个数据集和通过连加的形式,加在一起。这样会按照顺序将两个数据集,合并在一起,组成一个新的数据集。一个文件夹放照片,一个txt文件放label信息。例子:一般是按照图像名字来,原创 2020-06-21 23:45:53 · 756 阅读 · 0 评论 -
matlab学习01:图像的基本读入显示操作
1. 图像的读取 普通图像,直接读取。 i = imread('lena.png') [i2m,map] = imread('lena.tif')会自动推导类型。对于一写特殊的图像类型,有特殊的操作: tif格式[i3,map] = imread('lena.gif',2)%读取lena.gif的第二帧PNG格式i4 = imread('lena.png','backgroundColor',[1 0 0])%读取lena.gif的第二帧读取透明原创 2020-05-18 09:55:25 · 1033 阅读 · 0 评论 -
OpenCV学习:高斯金塔与SIFT特征
左图:是高斯金字塔,尺度的下降是下采样的结果,每一组的图片是采用不同的高斯卷积核得到的模糊程度不同图片,尺寸大小相同。右边:左边是高斯,右边是高斯差分。对同一组,相邻两张图片进行相减。O是计算金字塔的组数,其中M,N是输入原图的高宽。S是层数,n是自己希望提取几张图像的特征。下一个组的第一张图片,来自原上一组的倒数第三章。右下角是θ的选取,是选用满足勾股定理的一套理论。第一步,阈...原创 2020-02-18 20:27:16 · 238 阅读 · 0 评论 -
resnet.children()的输出
在查看FPN的网络的时候,看见要使用ResNet的.children(),不太清楚这个输出是什么,就自己整理了一下。pytorch Module里的children()与modules()的区别输出的结果如下:sequential里面分别是【3,4,6,3】个bolck,每一个block就是一个基本的残差模块。输出的全文:[Conv2d(3, 64, kernel_size=(7, ...原创 2020-02-06 23:21:32 · 4876 阅读 · 0 评论 -
pytorch学习:ResNet的实现
结合图片理解更加好:import torchimport torch.nn as nnimport torchvisionprint("PyTorch Version: ",torch.__version__)print("Torchvision Version: ",torchvision.__version__)__all__ = ['ResNet50', 'ResNet10...原创 2020-02-06 22:05:36 · 706 阅读 · 0 评论 -
OpenGL自学:你好,三角形
这次学习,最重要的是学习了一些计算机画图的基本流程和基本概念。一些专业术语:参考连接很好的入门教材https://learnopengl-cn.github.io/01%20Getting%20started/04%20Hello%20Triangle/#_12...原创 2020-01-26 01:20:58 · 160 阅读 · 0 评论 -
opencv学习:匹配模板函数matchTemplate
函数createTrackbar( trackbar_label, image_window, &match_method, max_Trackbar, MatchingMethod );/*参数1:滑动条轨迹名参数2:滑动条依附的窗口名参数3:滑块的位置,创建时,滑块初始位置就是这个变量当前的值参数4:轨迹的最大值参数5:回调函数参数6:默认0,用户传给回调函数的数据,如...原创 2020-01-14 19:45:11 · 297 阅读 · 0 评论 -
小网格图:seaborn.FacetGrid
这个小网格图,是对各种图像都适用,主要是sns.FacetGrid对横纵分类的标准选择g.map(plt.scatter, “total_bill”, “tip”, edgecolor=“w”)对单个图像横纵坐标的标识代码:import seaborn as snssns.set(style="ticks", color_codes=True)import matplotlib.p...原创 2020-01-10 11:34:43 · 398 阅读 · 0 评论 -
直方统计图:
代码如下:#年龄的处理#画图,面板处理fig,(axis1,axis2)=plt.subplots(1,2,figsize=(15,4))axis1.set_title("original age values-Titanic")axis2.set_title("New Age values -tatanic")#提取年龄的均值,方差和缺失值个数averager_age_trai...原创 2020-01-09 22:41:24 · 294 阅读 · 0 评论 -
柱状图:seaborn.countplot
代码如下:import seaborn as snssns.set(style="darkgrid")titanic = sns.load_dataset("titanic")ax = sns.countplot(x="class", data=titanic)效果:原创 2020-01-09 22:36:54 · 554 阅读 · 0 评论 -
折线图:factorplot
代码如下:import seaborn as snssns.set(style="ticks")exercise = sns.load_dataset("exercise")g = sns.factorplot(x="time", y="pulse", hue="kind", data=exercise)出图效果这个函数好像要取消了新的函数:catplot...原创 2020-01-09 22:34:42 · 375 阅读 · 0 评论 -
gdb调试(1):info frame的含义解读
一个代码:输入info frame 的结果:解读这个输出之前,需要先明白汇编中,函数的调用形式。寄存器的英文全称:AH&AL=AX(accumulator):累加寄存器BH&BL=BX(base):基址寄存器CH&CL=CX(count):计数寄存器DH&DL=DX(data):数据寄存器SP(Stack Pointer):堆栈指针寄存器BP(...原创 2019-12-28 15:02:05 · 5490 阅读 · 1 评论 -
pytorch学习01:基础卷积运算
卷积操作nn.Conv2d(input_cahnnel, output_channel, conv_szie)输入图像:卷积核的设置:输入的维度是1,输出维度是2,卷积核大小3×3先对图像的格式变化成NCHW:卷积之后的结果:relu之后的结果:max_pool之后的结果:参考资源:60题目pytorch...原创 2019-12-26 14:12:59 · 532 阅读 · 0 评论