自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 Qt 实现类似于手机界面的切换效果

Qt 实现类似于手机界面的切换效果实现思路:主要利用QStackedWidget, 将要切换的界面添加到其中,并移除上一个界面,实现界面的灵活切换。QPropertyAnimation实现两个界面切换的动画过渡效果,最后通过event函数监听退回按键,切换到之前的界面。继承QPushButton, 可以自由添加多个要切换的页面。mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QWidget>#inclu

2022-03-09 11:59:44 2310 1

原创 kruskal算法和Prim算法

最小生成树设R为G的所有生成树的集合,若T为R中边的权值之和最小的那颗生成树,则T称为G的最小生成树(Minimum-Spanning-Tree, MST)Prim算法(邻接矩阵的存储结构)初始时从图中任取一顶点加入树中,此时树中只含有一个顶点,之后选择一个与当前T中顶点集合距离最近的点,并将该顶点和相应的边加入T,每次操作后T中的顶点数和边数都增加1。以此类推,直至图中所有的顶点都并入T,得到的T就是最小生成树。此时T中必然有n-1条边。void Prim(MGraph G){ bool vi

2021-03-06 22:43:02 468

原创 matplotlib常用函数

plt.figure参数描述num图像的标识符figsize图像的大小(w=6.4, h=4.8)创建一个新图或者激活一个现有图(num参数指定图)plt.xlim(*args, **kwargs)获得或者设置图片的x轴界限left, right = xlim() # return the current xlimxlim((left, right)) # set the xlim to left, rightxlim(left, right) .

2021-02-08 18:09:11 966

原创 logging模块

引言此篇仅是个人对logging模块的学习记录,具体请详见https://docs.python.org/zh-cn/3/library/logging.html?highlight=logging#logging.basicConfiglogging 模块概念日志(logging)是对软件执行时所发生事件的一种追踪方式。软件开发人员对他们的代码添加日志调用,借此来指示某事件的发生。一个事件通过一些包含变量数据的描述信息来描述(比如:每个事件发生时的数据都是不同的)。开发者还会区分事件的重要性,重要

2021-02-08 15:47:17 191

原创 常见的优化算法

前言本文主要是对动手学深度学习中第7章优化算法的总结,对常见的几种优化算法用pytorch做了简单实现,包括SGD,momentum, AdaGrad, RMSProp, AdaDelta, Adam和学习率衰减策略warmup, 余弦退火(Cosine Annealing)用到的数据集为:飞机机翼噪音数据集https://archive.ics.uci.edu/ml/datasets/Airfoil+Self-Noise参考文档:https://zh.d2l.ai/chapter_optimiza

2021-02-03 16:28:28 546

原创 YOLOV5源码解读(数据集加载和增强)

YOLOV5源码解读系列文章目录数据集加载和增强loss计算前言此篇为yolov5 3.1 版本,官方地址[https://github.com/ultralytics/yolov5]看源代码之前有必要先大致了解实现原理和流程,强推这篇文章https://blog.csdn.net/nan355655600/article/details/107852353(https://github.com/amdegroot/ssd.pytorch)数据加载器由utils/datasets.py文

2021-01-26 21:39:31 6862 5

原创 YOLOV5源码解读(loss计算)

YOLOV5源码解读系列文章目录数据集加载和增强前言此篇为yolov5 3.1 版本,官方地址[https://github.com/ultralytics/yolov5]看源代码之前有必要先大致了解实现原理和流程,强推这篇文章https://blog.csdn.net/nan355655600/article/details/107852353(https://github.com/amdegroot/ssd.pytorch)创建数据加载器,由utils/datasets.py的crea

2021-01-25 13:48:27 6401 2

原创 PyTorch-YOLOV3(loss计算)

系列文章目录数据集加载和预处理网络结构loss计算前言源代码连接https://github.com/eriklindernoren/PyTorch-YOLOv3当前代码用到的数据集为coco2014,这里提供官网地址https://cocodataset.org/YOLOLayer,loss计算和预测class YOLOLayer(nn.Module): """Detection layer""" def __init__(self, anchors, num_c

2021-01-14 20:49:08 989

原创 PyTorch-YOLOV3源码解读(网络结构)

系列文章目录数据集加载和预处理网络结构loss计算文章目录系列文章目录前言构建网络模型models.py前言源代码连接https://github.com/eriklindernoren/PyTorch-YOLOv3当前代码用到的数据集为coco2014,这里提供官网地址https://cocodataset.org/构建网络模型models.py代码中构建模型的方法是通过读取config/yolov3.cfg的配置文件,进行搭建的这里可以通过Netron查看网络结构,由于网

2021-01-14 20:41:31 815 1

原创 Pytorch-YOLOv3源码解读(数据集加载和预处理)

# 图像填充为等宽等高def pad_to_square(img, pad_value): c, h, w = img.shape dim_diff = np.abs(h - w) # (upper / left) padding and (lower / right) padding # 高宽之差为2的整数倍时 pad1, pad2 = dim_diff // 2, dim_diff - dim_diff // 2 # 两边填充等长宽度,不同时右边比左边多一

2021-01-14 20:06:45 616 1

原创 VS2017配置Opencv和DBow3

一、opencv下载安装首先在官网下载3.4版本的opencv(本人使用的是3.4.10版本,其他版本没有测试过),若有需要可见网盘下载:链接:https://pan.baidu.com/s/1bgYwi7OZbngMV2xOt1QRTg提取码:izkh下载后是一个.exe程序,其实就是一个压缩包,压缩到你想要的目录中。(现在目录中并没有my_build,是之后需要编译×86的opencv时创建的)二、使用cmake编译×86的opencv在当前目录创建my_build文件夹,存放build

2020-11-10 17:39:31 523

原创 PaddlePaddle学习之实现常见的预处理操作

深度学习中常见的预处理操作import cv2import numpy as npimport randomimport matplotlib.pyplot as plt# 连接各个transform操作 class Compose(object): def __init__(self, transforms): self.transforms = transforms def __call__(self, image, label=None):

2020-10-26 15:02:44 582

原创 gluoncv之源码解析

gluoncv之voc格式的mAP计算源码解析一、数据集预处理.二、voc格式的mAP计算源码解析.文章目录gluoncv之voc格式的mAP计算源码解析前言二、voc格式的mAP计算源码解析前言本项为gluoncv官方源码解析二、voc格式的mAP计算源码解析先介绍如何使用:根据网络的输出和label压入数组中保存,通过调用eval_metric.update()函数,来更新mAP值。eval_metric.get()函数返回mAP的计算结果。# 声明一个评价函数对象,传入之后

2020-10-16 16:44:15 292

原创 常用的numpy函数

1. numpy.flatx = np.array([[[1,2],[3,4]], [[5,6],[7,8]]])print(x.flat[4])print(x.flat)>>>5><numpy.flatiter object at 0x000001A03B2CB340>可知numpy.flat将多维的数组转化成一维数组,并返回numpy.flatiter类型的迭代器而x.flatten()直接返回一维的数组x = x.flatten()print(

2020-10-15 21:02:52 177

原创 gluoncv之yolov3数据集预处理

gluoncv之yolov3训练源码解析一、数据集预处理.文章目录gluoncv之yolov3训练源码解析前言一、训练集预处理1.random_color_distort函数2.random_expand函数3.random_crop_with_constraints函数4.imresize函数4.random_flip函数5.to_tensor,normalize函数二、验证集预处理前言本项为gluoncv官方源码解析一、训练集预处理训练集预处理在YOLO3DefaultTrainTr

2020-10-12 22:57:53 2724

原创 mxnet常用API

mx.contrib.ndarray.box_nms简单例子:x = [[0, 0.3, 0.1, 0.1, 0.2, 0.2], [0, 0.4, 0.1, 0.1, 0.2, 0.2], [0, 0.5, 0.1, 0.1, 0.3, 0.3], [0, 0.6, 0.5, 0.5, 0.7, 0.8]]x = nd.array(x)out = mx.contrib.ndarray.box_nms(x, overlap_thresh=0.25, coord_start=2, score

2020-10-06 10:42:58 265

原创 mxnet复现SSD之损失、评价函数

mxnet复现SSD系列文章目录一、数据集的导入.二、SSD模型架构.三、训练脚本的实现.四、损失、评价函数.五、预测结果.文章目录mxnet复现SSD系列文章目录前言一、损失函数代码实现二、评价函数代码实现参考链接前言本项目是按照pascal voc的格式读取数据集,数据集为kaggle官网提供的口罩检测数据集,地址:Face Mask Detection,模型架构参考自gluoncv ssd_300_vgg16_atrous_voc源码一、损失函数类别损失函数采用Softma

2020-09-20 17:19:28 272

原创 mxnet复现SSD之预测结果

mxnet复现SSD系列文章目录一、数据集的导入.二、SSD模型架构.三、训练脚本的实现.四、损失、评价函数.五、预测结果.文章目录mxnet复现SSD系列文章目录前言一、读取单张图片进行预测代码实现结果展示二、实时检测1.代码实现前言本项目是按照pascal voc的格式读取数据集,数据集为kaggle官网提供的口罩检测数据集,地址:Face Mask Detection,模型架构参考自gluoncv ssd_300_vgg16_atrous_voc源码一、读取单张图片进行预测

2020-09-19 17:09:44 393

原创 mxnet复现SSD之训练脚本的实现

mxnet复现SSD系列文章目录一、数据集的导入.二、SSD模型架构.三、训练脚本的实现.四、损失、评价函数.五、预测结果.文章目录mxnet复现SSD系列文章目录前言一、代码实现前言本项目是按照pascal voc的格式读取数据集,数据集为kaggle官网提供的口罩检测数据集,地址:Face Mask Detection,模型架构参考自gluoncv ssd_300_vgg16_atrous_voc源码一、代码实现import mxnet as mxfrom mxnet im

2020-09-19 16:58:29 294

原创 mxnet复现SSD之模型架构

mxnet复现SSD系列文章目录一、数据集的导入.二、SSD模型架构.三、训练脚本的实现.四、损失、评价函数.五、预测结果.文章目录mxnet复现SSD系列文章目录前言一、模型架构二、实现代码参考链接前言本项目是按照pascal voc的格式读取数据集,数据集为kaggle官网提供的口罩检测数据集,地址:Face Mask Detection,模型架构参考自gluoncv ssd_300_vgg16_atrous_voc源码一、模型架构SSD( (features): VGG

2020-09-19 15:49:22 329

原创 mxnet复现SSD之数据集的导入

.└── VOCdevkit #根目录 └── VOC2012 #不同年份的数据集,这里只下载了2012的,还有2007等其它年份的 ├── Annotations #存放xml文件,与JPEGImages中的图片一一对应,解释图片的内容等等 ├── ImageSets #该目录下存放的都是txt文件,txt文件中每一行包含一个图片的名称,末尾会加上±1表示正负样本 │ ├── Action

2020-09-19 15:33:31 376

原创 上传自己的项目到github

首先下载git for windows和 tortoisegit在git上创建一个新仓库打开github,在Repositories下点击new,创建一个新仓库,填写仓库名称和进本信息就创建好了clone项目代码到本地复制要clone的项目网址选择一个文件夹右键空白处,点击git clone,默认配置之后点击OK就可以下载了上传本地项目在文件空白处选择TortosieGit->Add…添加要上传的文件,点击ok后继续commitMessage为对这次上传的描述,继续commit

2020-09-16 23:00:26 106

转载 PaddlePaddle学习心得

图像分类中常见的模型LeNetLeNet是最早的卷积神经网络之一[1]。1998年,Yan LeCun第一次将LeNet卷积神经网络应用到图像分类上,在手写数字识别任务中取得了巨大成功。LeNet通过连续使用卷积和池化层的组合提取图像特征,其架构如 图1 所示,这里展示的是作者论文中的LeNet-5模型:第一模块:包含5×5的6通道卷积和2×2的池化。卷积提取图像中包含的特征模式(激活函数使用sigmoid),图像尺寸从32减小到28。经过池化层可以降低输出特征图对空间位置的敏感性,图像尺寸减到14

2020-08-29 18:30:14 193

原创 mxnet安装环境配置

一、安装Miniconda官方网址:https://conda.io/en/latest/miniconda.html本人选择python3.7版本Windows64位安装完成后打开Anaconda Prompt创建虚拟环境conda create –n env python=3.7这里的env为自定义环境名激活环境conda activate env退出环境:conda deactivate查看当前miniconda版本conda info添加 conda 的镜像服务

2020-07-01 23:38:41 1456

原创 拓扑排序

拓扑排序在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,我们成为AOV网(Activity On Vertex Network)。AOV网中的弧表示活动之间存在的某种制约关系,设G=(V,E)是一个具有n顶点的有向图,V中的顶点序列v1,v2,…,vn,满足若从顶点vi到vj有一条路径,则在顶点序列中顶点vi必在顶点vj之前。则我们称这样的顶点序列为一个拓扑序列。#include "stdio.h" #include "stdlib.h"

2020-05-31 14:31:12 115

原创 图的邻接矩阵,邻接表,DFS,BFS的实现

#include <iostream>#include<string.h>using namespace std;#define MAXVEX 100 //最大顶点数#define INFINITY 65535 //65535代表∞typedef struct{ char vexs[MAXVEX]; //顶点表 int arc[MAXVEX][MAXVEX]; // 邻接矩阵,看作边表 int numVertexes, numEdges; // 图中的顶点数和边

2020-05-31 14:24:16 801

原创 c++线索二叉树

线索二叉树前序创建二叉树以及中序遍历创建线索二叉树#include <iostream>#include<string.h>using namespace std;// Link==0表示指向左右孩子指针, Thread==1表示指向前驱或后驱的线索typedef enum {Link, Thread} PointerTag; // 二叉线索存储结点typedef struct BiThrNode{ char data; struct BiThrNode

2020-05-14 19:26:56 228

原创 c++队列

队列队列其实就是简单的链表,只是添加了队头和队尾指针。限制了添加和删除只能从队尾和队头操作。代码实现#include <iostream>using namespace std;// 结点typedef struct QNode{ int data; struct QNode *next;}QNode, *QueuePtr;// 链表结构typedef struct{ QueuePtr front, rear; // 队头,队尾指针}LinkQueue;

2020-05-13 15:57:44 1159

原创 c++链表

#include <iostream>#include <time.h>using namespace std;struct Node{ int data; struct Node *next;};typedef struct Node *LinkList; //定义LinkList类型// 创建链表// 头插法void CreateListHead(LinkList *L, int n){ LinkList p; int i; *

2020-05-10 14:25:21 167

原创 mxnet中的MultiBoxPrior、MultiBoxTarget、MultiBoxDetection函数理解

三个函数的参数和输出mxnet.contrib.ndarray.MultiBoxPrior (生成锚框)参数:data=输入图像样本(批量大小,通道数,高,宽)sizes=包含多个锚框大小的数组ratios=包含多个锚框的宽高比的数组输出: 多个锚框mxnet.contrib.ndarray.MultiBoxTarget (标注锚框类别和偏移量,生成掩码)参数:anchor...

2020-04-29 23:27:30 1455

原创 mxnet复现vgg11

vgg11vgg11网络使用了8个卷积层和3个全连接层,所以经常被称为VGG-11。VGG块的组成规律是:连续使用数个相同的填充为1、窗口形状为 3×3 的卷积层后接上一个步幅为2、窗口形状为 2×2 的最大池化层。卷积层保持输入的高和宽不变,而池化层则对其减半。网络结构Sequential( (0): Sequential( (0): Conv2D(None -> 64...

2020-04-26 22:23:42 208

原创 mxnet复现AlexNet

网络结构Sequential( (0): Conv2D(1 -> 96, kernel_size=(11, 11), stride=(4, 4), Activation(relu)) (1): MaxPool2D(size=(3, 3), stride=(2, 2), padding=(0, 0), ceil_mode=False, global_pool=False, pool_...

2020-04-23 23:49:49 148

原创 mxnet复现ResNet-18

ResNet-18网络结构:其中的Residual为残差块每个Sequential模块里有4个卷积层(不计算 1×1 卷积层),加上最开始的卷积层和最后的全连接层,共计18层Sequential( (0): Conv2D(1 -> 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3)) (1): BatchNorm(axis...

2020-04-21 21:00:33 517

转载 深度学习中常用的优化算法

参考《动手学深度学习》 https://zh.d2l.ai/chapter_optimization/index.html一维梯度下降我们先以简单的一维梯度下降为例,解释梯度下降算法可能降低目标函数值的原因。假设连续可导的函数 f:R→R 的输入和输出都是标量。给定绝对值足够小的数 ϵ ,根据泰勒展开公式,我们得到以下的近似:f(x+ϵ)≈f(x)+ϵf′(x).这里 f′(x) 是函数 ...

2020-04-19 14:16:12 660

原创 pandas数据处理工具

pandas概览Pandas 是 Python 的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。Pandas 的目标是成为 Python 数据分析实践与实战的必备高级工具,其长远目标是成为最强大、最灵活、可以支持任何语言的开源数据分析工具。pandas简单运用导入pandas库import pandas as pd读取csv文件:pd.r...

2020-03-08 14:48:08 165

原创 LeetCode题库练习之无重复字符的最长子串

参考自https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/solution/hua-dong-chuang-kou-by-powcai/题目描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。解题思路:运用滑动窗口的思想,从字符串第一个位置开始遍历,当出现重复...

2019-11-13 22:50:15 171

转载 LeetCode题库练习之两数之和

给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum著作

2019-11-12 16:26:46 151

转载 unordered_map关联容器

关联容器:unordered_map详细介绍(附可运行代码)介绍1 特性2 Hashtable和bucket模版1 迭代器功能函数1 构造函数12示例代码2 容量操作21 size22 empty3 元素操作31 find32 insert33 at34 erase35 clear36 swap37 示例代码4 迭代器和bucket操作41 begin4...

2019-11-11 22:58:24 120

原创 socket多线程通信

进程与线程的区别:进程:在操作系统构成单独执行流的单位。线程:在进程构成单独执行流的单位线程的创建和执行流程#include <pthread.h>int pthread_create(pthread_t * restrict thread,const pthread_attr_t * restrict attr,void * (* start_routine)(void ...

2019-11-02 09:10:49 834

原创 socket通信基础知识

TCP是TransmissionControl Protocol(传输控制协议)的简写,意为“对数据传输过程的控制”。TCP套接字是面向连接的,因此又称基于流(stream)的套接字。TCP/IP协议分为四层,应用层 <–>TCP层/UDP层<–>IP层 <–>链路层IP层使用的协议就是IP,IP本身是面向消息的,不可靠的协议。TCP在ip层中的作用数...

2019-10-25 20:45:12 137

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除