自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++指针的用法/指针与引用的区别

计算机程序本质上是对存储在内存中的数据进行的一系列操作。既然要对数据进行操作,首先要解决的第一个问题就是数据存储在什么地方?一般情况下我们通过int x = 10;来定义一个变量,可以通过x来直接访问该变量存储的值,而指针提供了另外一种访问该变量存储的值的方法*p;。指针的定义:指针是一个变量,其存储的是值的地址,而不是值本身。

2022-10-25 17:41:54 709 1

原创 解决Qt Creator中无法添加/找不到MSVC编译器的问题

最近需要使用Qt Creator生成DLL供C#调用,之前一直装的都是32位的MinGW编译器,无法被使用VS系列开发的程序调用,因此需要安装带MSVC编译器的Qt Creator,在安装过程中走了点弯路,总结如下。

2022-10-18 10:23:02 8227

原创 qrencode生成二维码\微信开源算法识别opencv-contrib(一)

最近需要开发一个二维码识别的应用,调研了几个开源算法库,opencv、quirc、zxing、zbar和微信开源的基于深度学习的识别算法,最终选定了微信开源的算法,毕竟又好又快。

2022-07-15 17:48:40 3361

原创 voc数据集格式转coco数据集格式

计算机视觉的第一步就是准备数据集,常用的数据集是coco标准,网上大部分数据集的格式都不是coco格式,所以需要转换。转换的第一步是认识voc和coco格式

2022-04-27 23:07:52 7938 6

翻译 Five reasons to embrace Transformer in computer vision/在计算机视觉领域拥抱Transformer的5条理由

翻译自微软亚洲研究院官网文章Five reasons to embrace Transformer in computer vision 2021.12.5人工智能的统一建模故事“大一统模型”是许多学科的共同目标。例如,在物理学领域,科学家长期以来一直在追求大一统理论,这是一种可以用来解释不同力之间相互作用的单一理论。人工智能领域也有类似的“统一”目标。在当前的深度学习浪潮中,我们朝着实现团结的目标迈出了一大步。例如,对于新的人工智能任务,我们通常遵循相同的过程:收集数据、标记数据、定义网络架构,以及训

2022-04-13 00:52:31 447

原创 numpy手撕逻辑回归分类MNIST公式+代码

简介逻辑回归虽然顶着一个回归的名称,但是实际上做的是分类的事情。回归的一般形式可以表示为:f(x)=wx+bf(x)=wx+bf(x)=wx+b然而,分类任务的最终结果是一个确定的标签值,逻辑回归的输出范围为[-∞,+∞],需要使用Sigmoid函数将输出Y映射为一个[0,1]之间的概率值,再根据设定的阈值分类出正样本和负样本,比如>0.5作为正样本,<0.5的作为负样本逻辑回归在周志华的西瓜书中被称作对数几率函数,为了让模型去预测逼近y的衍生物,按照我的理解就是从线性推广到非线性的情况,

2021-10-28 21:55:00 839

原创 如何理解Python中的深拷贝与浅拷贝/可变对象/不可变对象

深拷贝与浅拷贝需要先理解什么是可变对象和不可变对象:可变对象与不可变对象的区别在于对象本身是否可变。https://zhuanlan.zhihu.com/p/34395671https://cloud.tencent.com/developer/article/1796730python内置的一些类型中可变对象:list dict set不可变对象:tuple string int float bool可变对象>>> a = [1, 2, 3]>>&g

2021-10-27 22:24:08 397

原创 mmdetection环境配置与训练自己的VOC数据集

mmdetection环境安装requirementsLinux或者macOSPython 3.6+PyTorch 1.3+CUDA 9.2+ (If you build PyTorch from source, CUDA 9.0 is also compatible)GCC 5+MMCV建议最好用Linux系统,Windows环境下坑特别多,不建议使用,填坑环节过于繁琐且费事。安装必要的环境和库官方安装教程:https://mmdetection.readthedocs.io/en

2021-06-27 17:36:12 1087

翻译 通过Backprop计算CNN的感受野

翻译自https://learnopencv.com/cnn-receptive-field-computation-using-backprop/Introduction在上一篇文章中,我们学习了如何对任意大小的图像进行分类,并可视化网络的响应图。图1:“camel”类激活的边界框。改图来自我们之前的文章,标题是完全卷积图像分类。在图1中,请注意骆驼的头部几乎没有高亮显示,而响应图包含大量的沙子纹理。边界框也明显关闭。有点不对劲。我们使用的ResNet18网络非常精确,事实上它能正确地对图像

2021-06-18 21:35:50 424

原创 深度学习中常见的LOSS函数及代码实现

Introduction训练深度学习模型地目的只有一个,尽可能地学习到训练数据的分布。像往常地考试一样,考试成绩会有一个分数作为评判标准,评价你对于知识点地掌握情况,以便后续针对性地去学习。深度学习也一样,需要一个数值对训练的效果进行评价。在有监督学习中,这个数值也就是评价标准被称作loss值,即损失值。对于给定的输入xxx,对应标签值为yyy。定义深度学习模型的映射为f(x;θ)f(x;\theta)f(x;θ)。输出的预测值为y^\hat{y}y^​,损失函数LossLossLoss是用来计算便签值

2021-06-18 11:33:13 3700 5

原创 深度理解感受野(一)什么是感受野?

IntroductionCNN用分布式的代码去表示目标经典目标检测和最新目标跟踪都用到了RPN(region proposal network),锚框(anchor)是RPN的基础,感受野(receptive field, RF)是anchor的基础。本文介绍感受野及其计算方法,和有效感受野概念什么是感受野?感受野与视觉感受野(receptive field)这一概念来自于生物神经科学,是指感觉系统中的任一神经元,其所受到的感受器神经元的支配范围。感受器神经元就是指接收感觉信号的最初级神经元视

2021-05-27 22:00:43 30114 3

原创 实战:使用Faster R-CNN完成肺结节检测(LUNA16)(1)/LUNA16数据集初探

LUNA16LUNA16,全称Lung Nodule Analysis 16。该数据集来自另一个更大的数据集LIDC-IDRI,旨在推动更多计算机视觉领域的SOTA算法用于CAD领域。比赛共分为两个部分结节区域检测:确定每个疑似结节的区域,并给他们一个概率值假阳性减少:对提取出的区域进行分类,类别为是或者不是一个真实结节LUNA16数据集数据集的由来LUNA16由LIDC-IDRI数据集筛选而来,LIDC-IDRI它包括1018个低剂量的肺部CT影像。LUNA16排除了其中切片厚度大于2.

2021-05-18 21:11:29 5687 2

原创 PIL读取图片转numpy格式并用matplolib显示

导入库import osimport nunpy as npfrom PIL import Imagefrom matplotlib import pyplot as pltos.listdir()----------------------------OUT---------------------------['1.png']用PIL读取图片im = Image.open('1.png')----------------------------OUT---------------

2021-05-17 23:00:56 1004 2

原创 conda安装第三方包找不到包的地址解决方法

用conda下载第三方包经常出现,在默认源的资源列表里找不到对应的包,大部分解决方法就是换成国内镜像源,然而因为某些原因换了源之后还是无法找到对应包的url按照我的经验,对应源没有想要安装的包是一方面,但有些时候网络抽风也是一方面原因可以尝试手动下载对应的安装包,放到对应环境的目录下从https://www.lfd.uci.edu/~gohlke/pythonlibs/这个网站可以下到各种安装包,然后放到环境目录下,比如我的目录就是C:\Users\Administrator\anaconda3\en

2021-05-13 15:18:48 3422 1

原创 Python实现K-means聚类算法并可视化生成动图

K-means算法介绍简单来说,K-means算法是一种无监督算法,不需要事先对数据集打上标签,即ground-truth,也可以对数据集进行分类,并且可以指定类别数目牧师-村民模型K-means 有一个著名的解释:牧师—村民模型:有四个牧师去郊区布道,一开始牧师们随意选了几个布道点,并且把这几个布道点的情况公告给了郊区所有的村民,于是每个村民到离自己家最近的布道点去听课。听课之后,大家觉得距离太远了,于是每个牧师统计了一下自己的课上所有的村民的地址,搬到了所有地址的中心地带,并且在海报上更

2021-05-07 19:21:48 6845 4

原创 用Pandas记录10次5折交叉验证的结果并求平均值写入csv文件中

Introduction最近在训练一个病灶区域的分类模型,代码用的是MedMNIST。先是把MRI图像中的病灶区域抠出来保存成图片,然后resize到28*28的大小,再制作成.npz格式的数据集送入模型中进行训练并分类。按照5-folds-cross-validation 的方法,把数据集分成了5个部分,因为.npz格式的特殊性,label和image必须在ndarray中的索引值一一对应上,所以在选取val-sets时只得按照步长来选取图片作为验证集,每隔10step选取一张图片。从最终实验结果来

2021-05-06 17:19:17 1683 4

原创 使用NumPy和PyTorch实现反卷积/转置卷积操作

前言转置卷积又被称为反卷积和逆卷积,但是转置卷积才是最正规和主流的叫法,在主流的深度学习框架中,转置卷积的函数名都是conv_transpose因为转置卷积的运算过程很容易让人误解,举一个例子,一个4*4的输入经过3*3的卷积核(stride=1,padding=0)输出为2*2,而转置卷积将这个输出当作输入,即一个2*2的输入经过3*3的转置卷积核输出为4*4,看起来很像是卷积的逆操作,但事实并不是一个逆过程的概念转置卷积用公式可以更好的说明转置卷积与逆卷积的不同卷积运算可以这么表示:y=Cx

2021-04-22 17:06:44 809

原创 PyTorch手动初始化卷积层并进行卷积运算报数据类型错误Expected object of scalar type Double but got scalar type Float for arg

Expected object of scalar type Double but got scalar type Float for argument #4 ‘bias’尝试脱离nn.Module模块手动定义conv2d层,并对权重init和卷积运算X = torch.arange(1,17,dtype=float).reshape((1,1,4,4))K = torch.arange(1,10,dtype=float).reshape((1,1,3,3))conv = nn.Conv2d(in_

2021-04-22 14:51:37 255

原创 用Numpy实现卷积和反卷积操作

import numpy as npbatch_size = 1stride = 1padding = "VALID"input_channel = 1input_size = 5output_channel = 1filter_size = 3output_size = 3input_np = np.reshape(np.arange(input_size*input_size, dtype="float32"),newshape=[input_size,input_size])pr

2021-04-22 10:29:25 599

原创 如何寻找数据集?

如何寻找数据集?除了医疗领域之外,其他领域的数据集有时也很难获取,这就需要我们掌握一些常见的数据集搜集方法和常用资源。最近,Medium 上的一位博主介绍了多个常用的数据集获取来源:1 Awesome Data这是一个 GitHub 存储库,包含多个不同类别的数据集。链接:https://github.com/awesomedata/awesome-public-datasets2 Data Is Plural这是一个以电子表格形式展示的数据集资源,从 2015 年开始定期更新,最新一期是 20

2021-04-21 09:10:27 8431

原创 使用Unet进行脊柱分割爬坑记录

被一个非常不起眼的小bug搞得精疲力尽,本着bug不过夜的信仰,终于在晚上10.30成功debugg,记录一下使用Unet网络训练自己的脊柱分割网络首先准备训练集,一开始这个数据集是用github上的一个完整的代码进行处理的,下载下来的数据集是nii.gz 格式,先进性解压缩,然后用nibabel模块进行读取并转成png问题就出在转格式这一块了转出的png文件是黑色的,后来怀疑是不是这个数据集被我转坏了,用PIL+numpy读取后发现,有数值,只不过ROI区域的数值为1,其余地方为0,也就没当回事

2021-04-20 22:44:26 910 2

原创 Conda错误:Collecting package metadata (current_repodata.json): failed

使用cond install pkg 总是会显示Collecting package metadata (current_repodata.json): failed公司的网连接pip 和 conda外部源总会出问题,不是连不上就是抛出HTTPerror考虑可能是默认源的问题,删除.condarc文件中的defaults后可以正常使用清华源。还有可能报错failed with initial frozen solve. Retrying with flexible solve.这个错误不影响执行

2021-04-15 14:33:24 694

原创 Microsoft Office 全家桶下载地址

VisioProhttps://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60/media/zh-CN/VisioPro2019Retail.img专业增强版(强烈推荐):http://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60/media/zh-cn/ProPlus2019Retail.img专业版:http://officecdn.

2021-03-31 18:35:53 6789

原创 VGG16

VGG简介VGG是由Simonyan 和Zisserman在文献《Very Deep Convolutional Networks for Large Scale Image Recognition》中提出卷积神经网络模型,其名称来源于作者所在的牛津大学视觉几何组(Visual Geometry Group)的缩写。该模型参加2014年的 ImageNet图像分类与定位挑战赛,取得了优异成绩:在分类任务上排名第二,在定位任务上排名第一。结构用PyTorch实现VGG-16...

2021-03-16 18:49:01 446

原创 用PyTorch训练CIFAR-10数据集训练集精度达100%/AlexNet

文章目录0 CIFAR-10数据集简介1 下载CIFAR-10数据集1.1 查看数据集的组成2 装载数据集并可视化0 CIFAR-10数据集简介官网链接:The CIFAR-10 datasetCIFAR-10和ClFAR-100是8000万个微型图像数据集的被标注过后的子集。它们由Alex Krizhevsky,Vinod Nair和Geoffrey Hinton收集。CIFAR-10数据集包含10个类别的60000个32x32彩色图像,每个类别有6000张图像。有50000张训练图像和1000

2021-03-15 15:45:59 11180 16

原创 梯度下降算法(GD)及python代码实现可视化

梯度下降算法什么是梯度?梯度的公式定义:gradf(x0,x1,⋯ ,xn)=(∂f∂x0,⋯ ,∂f∂xj,∂f∂xn)gradf(x_0,x_1,\cdots,x_n)=(\frac{\partial f}{\partial x_0},\cdots,\frac{\partial f}{\partial x_j},\frac{\partial f}{\partial x_n})gradf(x0​,x1​,⋯,xn​)=(∂x0​∂f​,⋯,∂xj​∂f​,∂xn​∂f​)梯度的本意是一个向量(

2021-02-27 00:24:41 1160 2

原创 mnist手写数字识别+dropout+weight_decay提升test精度到0.99

什么是dropout?2012年,Hinton等人在《 Improving neural networks by preventing co-adaptation of feature detectors 》论文中首次提出Dropout,并在随后的比赛中用到了Dropout算法,用于防止过拟合。Dropout可以看作在训练深度神经网络的一种trick,在训练过程中以一定的概率将神经网络单元暂时丢弃掉(一定要注意是暂时丢掉),也就是让一部份hidden layers中的节点权重为0,这样可以减少特征检测器

2021-02-26 00:59:00 1430

原创 PyTorch中设置学习率衰减的方法/torch.optim.lr_scheduler/learning_rate_decay

文章目录学习率衰减(Learning Rate Decay)为什么引入学习率衰减?学习率衰减方式手动设置学习率衰减调用PyTorch函数lr_scheduler.LambdaLRtorch.optim.lr_scheduler.StepLRtorch.optim.lr_scheduler.MultiStepLRtorch.optim.lr_scheduler.ExponentialLRtorch.optim.lr_scheduler.CosineAnnealingLR学习率衰减(Learning Rate

2021-02-23 00:16:45 3087 1

原创 PyTorch中的item()用法

torch.item()按照官方文档,可以理解为从只包含一个元素的tensor中提取值,注意是只含有one element,其他情况用tolist()在训练时统计loss的变化时,经常用到,否则会累积计算图,造成GPU的额外开销x = torch.tensor([1.0])x.item()# -------------------out----------------1.0...

2021-02-22 22:01:22 1374

原创 PyTorch中的torch.manual_seed()

为啥要设置随机数种子由于每次初始化时,参数都是默认进行随机初始化的。然而每次运行py文件时,随机变量就会发生了变化。为了保证每次产生固定的随机数,可以通过torch.manual_seed()函数每次生成相同的随机数,这样有利于实验的比较和改进torch.manual_seed(2) ...: x = torch.randn(2) ...: torch.manual_seed(2) ...: y = torch.randn(2)xOut[16]: tensor([ 0.3923,

2021-02-14 01:12:11 240

原创 PyTorch中tensor与numpy和PIL格式变量相互转换

文章目录tensor与numpy格式相互转换tensor转numpyNumPy Array 转化成 Torch Tensortensor与PIL格式相互转换PIL格式的图片转tensortensor转PIL格式tensor与numpy格式相互转换将一个Torch Tensor 转换为numpy数组是一件轻松的事,反之亦然Torch Tensor与numpy数组共享底层内存地址,修改一个会导致另外一个的变化tensor转numpy将一个Torch Tensor转换为NumPy数组In:

2021-02-14 01:08:41 261 1

原创 PyTorch实现MNIST手写数字识别/LeNet/tensorboard绘制loss曲线

0 MNIST是什么?MNIST数据集(Mixed National Institute of Standards and Technology database)是美国国家标准与技术研究院收集整理的大型手写数字数据库,包含60,000个示例的训练集以及10,000个示例的测试集MNIST可以算是深度学习中的Hello World了,几乎每个初学者都会先从MNIST数据集入手,来训练自己的第一个基于CNN的分类器1 环境搭建本文将使用PyTorch1.7来训练LeNet网络来对手写数字进行分类i

2021-02-08 23:51:38 3750 4

原创 用Anaconda+PyCharm搭建深度学习开发环境/PyCharm使用conda虚拟环境

PyCharm使用conda虚拟环境打开PyCharm新建Project,找到上方菜单栏,打开File->Settings找到Project->Python Interpreter->红色箭头所指的小齿轮,单击->Add…可以看到,PyCharm已经自动搜索到了刚才创建的Conda环境Tip:如果没有显示的话可以根据路手动添加,C:\Users\Administrator\anaconda3\envs (按照默认路径安装)配置成功后可以看到右下角发生了变化可以直接

2021-01-30 17:17:15 395

原创 用Anaconda+PyCharm搭建深度学习开发环境/安装软件

Anaconda是什么?Anaconda是一个基于Python的数据处理和科学计算平台,它已经内置了常用的250多个工具包,装上Anaconda,就相当于把Python和一些如Numpy、Pandas、Scrip、Matplotlib等常用的库自动安装好了,比常规的用pip install一个一个下节省很多时间,过程痛苦,且要考虑各个包之间的版本兼容性。因而推荐直接使用Anaconda进行python版本管理和Packages管理简单的说:方便Python版本管理和Packages安装下载方便创建

2021-01-30 16:48:21 327

原创 用Anaconda+PyCharm搭建深度学习开发环境/安装conda环境/conda pip下载换源

配置环境打开Anaconda可以看见,只有一个base环境使用Anaconda Powershell Prompt打开WIN10的开始菜单栏,找到Anaconda Powershell Prompt(如果在安装包的过程中出问题时,建议用这个进行操作)查看当前存在哪些环境conda env list更新conda版本conda update conda创建虚拟环境conda create -n your_env_name python=x.x # your_env_na

2021-01-30 16:17:35 665 2

原创 谷歌免费云服务器Colab使用入门

什么是Colab?Colaboratory 是一个 Google 研究项目,旨在帮助传播机器学习训练和研究成果是一个 Jupyter 笔记本环境,不需要进行任何设置就可以使用,并且完全在云端运行Colaboratory 笔记本存储在 Google 云端硬盘中,并且可以共享,就如同你使用 Google 文档或表格一样Colaboratory 可免费使用同时也可以运行 Keras、TensorFlow、PyTorch、OpenCV 等框架进行深度学习的开发与应用Colab是一个免费的远程服务器,而

2021-01-21 21:52:34 4987 1

原创 步进电机的原理与控制

步进电机的概述步进电机是将电脉冲信号转变为角位移或线位移的开环控制电机,应用极为广泛。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率...

2019-11-14 10:53:23 2288

原创 STC89C52的最小系统——万能板焊接实现

今天花了大概一整个白天的时间焊出来一个51的最小系统,经过调试整个系统运行正常。复位,晶振,下载电路,还有一个与P2.7口相连的用于测试是否运行正常的LED灯。写一点关于这次的经验吧1动手之前必须要把想实现的功能确定下来,规划好元器件的布局,现在纸上画一下大概的管脚在什么方位,也可以在板子上用铅笔先画一下。2一般出问题的都是不该连的连到了块,或是连错了管脚,毕竟这次焊接的是一个最基础的电路,...

2019-10-26 20:31:06 4340 3

原创 关于keil加入头文件

先在工程下面建立一个.h文件,例如delay.h。在其中写入要加入的函数声明,或者其他的一些预定义。再在工程下面新建一个名称相同的一个.c文件,头文件要包含刚刚的那个.h文件,这里面写函数体即可最后在main.c文件里包含刚写的头文件即可,再点击编译,左侧的工程拦下方会自动包含刚写的.h文件...

2019-10-05 20:20:04 3640

原创 ADC转换原理

什么是模拟信号(analog)和数字信号(digital)?模拟信号是指用连续变化的物理量所表达的信息,如温度、湿度、压力、长度、电流、电压等等,我们通常又把模拟信号称为连续信号,它在一定的时间范围内可以有无限多个不同的取值。而数字信号是指在取值上是离散的、不连续的信号 。如何进行模数转换(A/D)?模拟信号由传感器转换为电信号,经过放大送入AD转换器转换为数字量一个完整的采样过程必须经过...

2019-10-02 19:54:30 3162

SMG+TLC1543.c

采用11个模拟输入通道 的10 位分辨率 A/D 转换器TLC1543模块,采用数码管显示

2019-09-17

空空如也

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

TA关注的人

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