自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

丑小鸭

想成为合格的coder

  • 博客(192)
  • 资源 (3)
  • 收藏
  • 关注

原创 Vue-cli创建新项目

vue.cli 是 vue 中的项目构造工具,是一个 npm 包,需要安装 node.js 和 git才能用。1 node.js的安装下载链接下载下来的安装包,可以直接进行 下一步 即可,不过注意安装的目录需要选择下。2 git 安装下载链接下载完后,直接进行下一步进行安装就行,注意安装目录。3 node安装后的测试1 测试 node 的安装,打开命令行,输入 node -v2 安装 node.js 的淘宝镜像加速器(cnpm)1 npm install cnpm -g .

2021-10-22 13:58:21 3

原创 【亲测】Swin-Transformer 自定义数据集图像分类

Swin-Transformer是当前热门的深度学习框架,适用于多种视觉任务,相关的原理,网上有很多资源,大家可自行查看,这里主要介绍其在图像分类方面的代码调试经验,方便各位快速上手实验。Swin-Transformer代码链接点击进入实验环境及配置:Pytorch: 1.7.1CUDA: 10.1.243 版本(使用 nvcc --version 查看)GPU:显存8G操作系统: Centos 71 环境配置其实根据官方的配置步骤,可以实现快速的配置,但是在进行到 Nvidia ap

2021-10-20 13:33:22 18

原创 conda install 和 pip install 区别和问题解决

我们在使用Python进行项目编程时,尤其是在跑一些深度学习实验代码过程中,难免会用到一些库或包,一般我们会使用 pip install 或者 conda install 进行安装,但是有些时候,我们发现我们在某些虚拟环境下装的包,在该环境下进行使用过程中,找不到该包,或直接调用的是另一个环境下的其他包或库,比如下面的图 1 :这个情况该怎么解决呢?...

2021-10-19 14:46:31 38

原创 MOS管工作原理

简介MOS(场效应管),是MOSFET的缩写。MOSFET金属-氧化物半导体场效应晶体管,简称金氧半场效晶体管(Metal-Oxide-Semiconductor Field-Effect Transistor, MOSFET)。【源于BDZD】在模电中学习过MOS管后,可能仍对其原理教陌生。本文主要介绍MOS管的工作原理,从PN结开始,逐步介绍MOS管的工作原理,再介绍CMOS(增强型场效应管)的工作原理。PN结介绍阿斯蒂芬https://zhuanlan.zhihu.com/p/2588

2021-08-30 21:57:35 36

原创 【解决】Eclipse中Maven项目属性中没有Deployment Assembly问题

最近在整理一个前后端分离的web项目,后端使用Maven做jar包管理,使用Eclipse进行开发,由于长期没有写过Web项目了,项目使用Tomcat发布时候,发现无法jin'x

2021-06-21 11:27:36 119 1

原创 YOLO5实现安卓APP目标检测

前言本文旨在记录本人将YOLO5训练好的模型转化为安卓 APP 的经历,使用的项目源码为,点击进入,下面开始分步骤进行讲解。项目目录项目的src文件夹下包含下面的文件夹,其中:1 asserts 里面存放的是 YOLO5s.bin和YOLO5s.param,2 java 中存放的是 java 源代码3 jni c存储的是 YOLO5s的C++版本4 res存放的android所需要的配置文件使用 Android studio 直接在该文件的根目录打开就行基础编译该项目首页展示了如何

2021-03-15 10:28:03 2016 16

原创 Centos7 NCNN 编译安装【亲测】

NCNN是什么ncnn 是腾讯开源的,一个为手机端极致优化的高性能神经网络前向计算框架。ncnn 从设计之初深刻考虑手机端的部署和使用。无第三方依赖,跨平台,手机端 cpu 的速度快于目前所有已知的开源框架。基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行。简单概括就是将 使用 GPU 训练好的模型 转为 手机移动端可以使用的模型。NCNN安装前的准备1) g++ 这个Centeos 一般都会默认装上,这里说一些题外话:什么是gcc / g++首先说明:gcc 和 GCC

2021-03-14 21:40:57 343

原创 YOLOv5训练自己的数据集【较全面】

前言这里主要介绍 ultralytics/yolov5 即所谓的 U版YOLO v5,关于YOLO5的原理可以自行搜索相关知识,根据笔者自己测试,效果确实不错,所以这里记录下自己的调试经验。实验环境

2021-03-14 20:42:17 2601 7

原创 【安卓学习_5】随时随地关闭应用

这个功能实现的功能是希望不管在应用栈的哪一层,均可以返回主页面。具体的实现过程是需要一个工具类的列表存储记录所有的应用 Activity,然后在程序退出时,将Activity全部清空,代码如下:1 ActivityCollector 代码 public static List<Activity> activities=new ArrayList<>(); //向集合中添加 public static void addActivity(Activity activi

2020-11-30 22:31:48 64

原创 CenterNet网络模型代码_3-pose_dla_dcn.py

这里主要针对在CenterNet中表现还可以的改进过的 dla 网络进行分析,主要还是结合代码进行说明。下面就是代码:# BN 动量参数BN_MOMENTUM = 0.1# 获取打印日志对象logger = logging.getLogger(__name__)# 获取预训练网络def get_model_url(data='imagenet', name='dla34', hash='ba72cf86'): return join('http://dl.yf.io/dla/models

2020-11-24 11:47:44 677

原创 【安卓学习_4】活动启动模式

什么是启动模式简单来讲,就是指的安卓应用的开启模式,也就是安卓活动开启的策略。为什么需要启动模式1.生成APP被其他APP调用的Activity,例如浏览器应用,照相机应用。2.有效避免生成重复页面,降低手机内存的利用率。3.任务栈过深的时候,避免一直按返回键也退不回想要的页面。安卓中的任务栈任务栈,在安卓关键字中叫做 Task,是用来放置Activity实例的容器,顾名思义,以栈的形式进行存放,根据栈先进后出的性质,任务栈主要有2个基本操作:压栈和出栈,存放的Activity是不支

2020-11-22 20:20:56 89

原创 【安卓学习_3】活动的生存周期

安卓中,不同的活动是通过类似栈的结构来进行切换的,即最晚发生的活动位于栈顶,当这个操作结束,从栈顶弹出该活动,再次执行新的栈顶活动。其主要有以下的状态(图片源于菜鸟教程),这个是个安卓中活动的生存周期过程,类似Java中的 Servlet的周期,不过更复杂些。其中,每个活动周期的使用场景为:1 onCreate() 这是第一个回调,在活动第一次创建时调用,仅在整个活动中调用一次,用来创建整个工程2 onStart() 这个回调在活动为用户可见时被调用,开始我们的操作3 onResume() 这

2020-11-22 15:51:18 37

原创 CenterNet网络模型代码_2-resnet_dcn.py

本文件其实和msra_resnet.py类似,进入博文,这里只把两者的不同说下,不同的部分有以下几处,总体感觉作者在这里添加DCN模块很牵强(仅个人吐槽),可能对反卷积有帮助吧:# 反卷积操作的通道不同# used for deconv layers self.deconv_layers = self._make_deconv_layer( 3, [256, 128, 64], [4, 4, 4],

2020-11-22 10:30:40 604 1

原创 【安卓学习_2】活动的基本用法

活动顾名思义,就是指的点击APP时,有所反应。在Android中活动包含的内容很多,本文主要结合笔者今天所学进行总结。基于Android Studio 进行探索。活动的创建当我们创建一个空的安卓工程时,目录如下:其实主活动函数及一些常用的主活动配置都已经在代码中写好了,主活动在以下的位置相应的配置在 AndroidManifest.xml中布局文件所谓布局文件指的是Android页面的布局,包括按键等一些其他的组建布局,主要相关的文件是 res/layout 下的一些设置,这个其实在

2020-11-21 21:36:33 71

原创 【安卓学习_1】环境配置

目前小程序兴起,很多时候,依托巨头(BAT)等的小程序创作平台,越来越容易开发一些小程序替换之前火热的APP,但是安卓开发仍然是不可或缺的,毕竟有些功能,如果用小程序,需要定制开发, 需要不菲的费用,笔者最近开始安卓的学习,希望可以坚持记录。首先从第一步开始,从配置环境, 在网络上搜索 Android 开发环境配置, 一般是基于 Android Studio 开发,当然也有基于 Eclipse+ADT的方式或者Idea+SDK的方式,为了显得专业,这里我直接选用 Android Studio 这样的IDE

2020-11-21 17:28:53 56

原创 CenterNet网络模型代码_1-msra_resnet.py

这里开始进行阅读CenterNet源码模型中的models\networks的部分的网络代码,从简单的 Resnet 模型开始,这里先给出卷积的输入输出的计算公式,以及反卷积的输入输出计算公式:1 2维卷积操作(Conv2d):nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True))参数解析:in_channel: 输入数据的通道数,例RGB图片

2020-11-21 12:23:29 381

原创 BatchNorm的原理和计算实例

关于这个问题,其实很多同学都会有疑问,因为在论文中是一系列的公式展开,其实并不是很好理解。关于BN其实BN操作的目地是使一批feature map 进行归一化,避免数据过大而导致网络性能的不稳定。我记得网有一篇博文中对BN有较详细的介绍,大概意思就是,输入数据经过若干层的网络输出其实会让数据特征分布和初始分布不一致,降低模型的泛化性能,引入BN机制后,先将特征变为标准正态分布,然后再通过γ和β两个参数将标准正态分布适当拉回归一化前的分布,相当于在原分布和标准正态分布进行折中,以此增强模型的泛化性。

2020-11-20 21:11:53 782

原创 【解决】QObject::moveToThread: Current thread is not the object`s thread. Cannot move to target thread

异常原因报错:Opencv无法显示图像,报错QObject::moveToThread: Current thread is not the object’s thread . Cannot move to target thread这个为缺少 qt 包的异常解决安装 pyqt : conda install pyqt,如果比较慢的话,可以借助 pip install -i https://pypi.tuna.tsinghua.edu.cn/sample pyqt5...

2020-11-16 16:26:45 4580 13

原创 【详细】CenterNet源码分析(Objects as Points)

CenterNet是一种Anchor Free的目标检测方法,其对应论文为《Objects as Points》,论文链接点击进入,本文主要针对CenterNet源码进行分析。具体的算法过程和代码的环境配置过程可以借鉴其他博客内容。源码链接点击进入源码中的模型存储在Google云盘里,不是很好下载,我搜集了一些预训练模型,网盘链接为链接:https://pan.baidu.com/s/1YBbJYbObcSKIRUr5U_0lyg提取码:lbnf(包含Res101、18 和 dla 34),如果有

2020-11-16 12:13:47 835

原创 目标检测中Anchor如何映射到原图

Anchor在目标检测中是比较常见的,引入Anchor主要是为了让检测更精准,当然现在有很多Anchor Free的方法也达到了较好的结果,但是最近项目中用的是基于Anchor的方法,但是置于Anchor怎么映射到原图其实网上很多内容比较混乱,我这里把自己的理解记录下来,附加上一些代码用来解释说明。什么是Anchor?Anchor中文是锚框的意思...

2020-09-10 15:09:30 1355 3

原创 Centos7安装百度云盘

本文介绍如何在Centos7中安装百度云盘,主要是想通过它下载一些大的数据集。客户端下载链接进入选择Linux版本中的rpm进行下载。这里需要注意:百度云盘编译环境需要是 GCC 4.9 以上,而系统默认是4.8.5 所以需要对GCC进行升级,参照该篇然后就是找到 rpm 文件,将命令行切换到 root 权限在,使用命令 rpm -ivh “rpm的绝对路径”,也可以将rpm文件直接拖入命令行,会自动有个绝对路径生成,然后回车即完成安装。其中命令 -ivh意思是: i=install 安装 v=v

2020-08-31 21:36:23 4787 2

原创 【Centos7】GCC版本编译升级

之前讲过一次关于Centos7的GCC版本的升级,这里,主要使用源码对GCC进行升级,即在安装完成后不用再切换GCC环境。1 切换到root属性su[root@localhost ~]# yum -y install wget 2 下载GCC源码以下命令会放在 usr/local/ 下面[root@localhost ~]#wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.gz3 解压压缩包[root@localhost ~

2020-08-30 08:48:04 1523 2

原创 torch中nn.ReLU和F.ReLU的不同

可以看下面的代码其实TestNet_1和TestNet_2执行的结果是一样的,但是明显 Relu的位置是不一样的,一个是nn库内的,一个是nn.functional内的import torch.nn as nnimport torch.nn.functional as Fimport torch.nn as nn class TestNet_1(nn.Module): def __init__(self, num_classes=n): super(TestNet_1

2020-08-17 13:22:08 496 3

原创 win10可用空间新建卷提示磁盘上没有足够的空间完成此操作如何解决

解决方式:1.Windows键+R,打开运行对话框,键入:diskpart进入duWindows 自带的磁盘管理程序进入DOS窗口:DISKPART>2.键入: list disk 选择查看该电脑下已连接的硬盘,dao会显示如下:磁盘 ### 状态 大小 可用 Dyn Gpt磁盘 0 联机 100 GB 300 GB磁盘 1 联机 14 GB 0 B3 则我们分的盘为 disk 0,(如果要选磁盘1就直接键入select disk 1)输入命令:select disk 0会提示 磁盘

2020-08-13 22:26:17 6176 1

原创 【推荐】Windows安装的几种工具

这里介绍的几种方式是比较干净的安装方式,网上很多傻瓜式的软件可以一键装机,但是会携带一些默认安装的软件,这里介绍的几款都是轻量级只安装系统的软件。1 软碟通(UltraISO)这个是比较经典的装机软件,可以自行搜索其使用技巧。软件地址:https://pan.baidu.com/s/1QhnnMiRmMxoTv7hc6TCtnQ 提取码: wgst这个工具的使用网上有很多教程,可以自行搜索。注意需要自己下载对应版本的windows版本,这个在网上也很多,可以自行检索。【注】使用软碟通安装有时候不

2020-08-13 21:26:40 788

原创 【java】BlockingQueue解析【硬】

什么是BlockingQueueBlockingQueue即阻塞队列,它算是一种将ReentrantLock用得非常精彩的一种方式,很好的解决了多线程中,如何高效安全“传输”数据的问题。依据它的基本原理,我们可以实现Web中的长连接聊天功能,当然其最常用的还是用于实现生产者与消费者模式。Java中BlockingQueue源码public interface BlockingQueue<E> extends Queue<E> { //将给定元素设置到队列中,如果设置成功

2020-07-23 11:36:55 176

原创 【java】线程通信

什么是线程间的通信线程的等待与唤醒又称为线程之间的通信,等待与唤醒机制是实现两个或多个线程在执行任务过程相互配合相互协作的一种技术。线程通信的目的通信的目的是为了更好的协作,线程无论是交替式执行,还是接力式执行,都需要进行通信告知。Java中四种线程通信方式方法1...

2020-07-21 13:16:43 74

原创 【Java概念】可重入函数

什么是可重入函数可重入函数主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数。即:如果一个函数执行过程中,被中断服务程序打断,去执行另外一段代码,然后恢复先前的功能,而不妨碍其早期的操作,则称该函数能是可重入的。可重入函数用于硬件中断处理,递归等应用程序可重入函数的条件1 不使用全局和静态数据。虽然没有限制,但一般不建议。因为中断可能会改变某些全局值,之后使用新数据恢复可重入函数的动作过程可能会产生不希望的结果。2 可重入函数不应修改自己的代码。我们需要函数的动作在整个代码中保

2020-07-21 09:59:02 181

原创 【java】happens-before规则

1 程序次序规则:一个线程内,按照代码顺序,书写在前面的操作先行发生 书写在后面的操作;2 锁定规则:一个unLock操作先行发生于后面对同一个锁lock的操作,即先释放锁,再给线程加锁;3 volatile变量规则:对一个变量的写操作先行发生于后面对这个变量的读操作,保证读操作读取的是最新的变量值;4 传递规则:如果操作A先行发生于操作B,而操作B又先行发生于操作C,则可以得出操作A先行发生于操作C;5 线程启动规则:Thread对象的start()方法先行发生于此线程的每一个动作;6 线程中断

2020-07-21 09:13:46 68

原创 【java】锁的相关概念

前面两篇都讲了java中锁的基本使用,里面穿叉了少量的原理,这里主要是针对Java锁的一些概念来讲解1 可重入锁像synchronized和ReentrantLock都是可重入锁,可重入性实际上表明了锁的分配机制:基于线程的分配,而不是基于方法调用的分配。【比如】,当一个线程执行到某个synchronized方法时,比如说method1,而在method1中会调用另外一个synchronized方法method2,此时线程不必重新去申请锁,而是可以直接执行方法method2。原因如下:由于me

2020-07-20 23:04:43 90

原创 【Java锁】Lock接口的使用

前言java中同步锁包括synchronized与Lock,前面已经讲过关于synchronized的使用和基本原理,synchronized是java内置关键字,在jvm层面,Lock是个java类,其实指的是 JDK 中的同步锁。为什么Java中除了内置的锁,还要使用 java类 来声明一个同步锁呢?这主要是synchronized有缺点,为了弥补缺点,所以引出了JDK中的同步锁。synchronized有什么缺点?如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行

2020-07-20 22:08:19 415

原创 【Java】synchronized使用和原理

前言为什么用synchronized?在并发编程中存在线程安全问题,主要原因有:1.存在共享数据 2.多线程共同操作共享数据。关键字synchronized可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块,同时synchronized可以保证一个线程的变化可见(可见性),即可以代替volatile(这个关键字也很重要,可以关注下)实现原理synchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性。(1)syn

2020-07-19 12:01:25 108

原创 Java线程和线程池知识整理【较详细】

前言在讲多线程之前,首先明白几个概念1 程序:计算机中,程序是一个有序的有限指令序列,一般是按照有顺序执行,直至遇到跳转程序或者出现中断,注意程序是静态的,不运行就是一系列的代码。2 进程:首先明确,进程是计算机最小的资源分配单位,可以把它理解为正在运行的程序实例,广义上也认为是具有一定独立功能的程序在相关数据上的运行活动,通常一个进程中包含了若干线程。比如我们打开微信等客户端程序就在打开一个进程。多进程的作用不是提高执行速度,而是提高CPU的使用率;进程和进程之间的内存是独立的;3 线程

2020-07-13 12:17:59 114

原创 【深度学习】标签平滑

标签平滑采用如下思路解决这个问题:在训练时即假设标签可能存在错误,避免“过分”相信训练样本的标签,也就避免了过拟合。具体实例如下:1 假设某个三分类问题,最终的预测输出为(1.,5.4.),经过Softmax函数之后,就可以得到:2 假设该样本的初始label为(0,1,0),则对应的损失函数,使用交叉熵计算为:3 可以发现,其实模型的学习目标是 让 0.721 无限接近类标 1,但是其实一般情况下,预测的分类准确率没必要非要是1,可以是 0.99等,那么我们就考虑从初始的label入手,进行.

2020-07-10 09:03:08 210

原创 Pytorch常用代码段集锦

本实验内容基于Pytorch 1.51 导入包和版本查询# -*- coding:utf-8 -*-import torchimport torch.nn as nnimport torchvisionif __name__=="__main__": print(torch.__version__) # torch 版本号 print(torch.version.cuda)# torch cuda 版本号 print(torch.backends.cudnn.version())# cud

2020-07-09 19:16:41 144

原创 Mysql主从复制原理和作用(较详细)

最近一直在了解数据库的一些实现细节,今天结合网上的一些资料,总结一下Mysql的原理和作用。什么是主从复制主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。一般在数据量较大的情况下会考虑,当然我们做的单机程序可能用不到这些内容,但是现在是个大数据时代,各种技术都会和分布式相联系,主要是为了进行负载均衡,数据库的主从复制其实就是为了解决数据过大,单机进行增删改查压力会比较大,所以把数据的增删改和查分开。主从复制的作用1 作为后备数据库,主数据

2020-07-04 16:20:41 395

原创 【python】两幅图像融合成一幅图像

完成的目标可以看以下的过程,比如有两张图像A和B,希望变为AB融合的图像:代码实现【代码里面可以实现为图像添加文本描述,如果是中文,可以参考我的博文】# -*- coding:utf-8 -*-from skimage import ioimport cv2from PIL import Image,ImageDraw,ImageFontdef blend_two_images(img_file1,img_file2,img_file3,text, left, top, text_co

2020-07-01 17:40:28 1377

原创 【面试】数据库原理

什么是数据库数据库简单来讲就是存放数据的地方,面试过程中,数据库一般都会被问到,这里主要是自己查阅的资料和一些总结,主要为了巩固下自己的对数据库的理解和认识。这里主要结合MySQL数据库进行整理。存储过程(Store Procedure)MySQL数据库是一种常用的关系型数据库,操作语言是SQL语句,SQL语句一般在执行的时候需要先编译,然后执行。而存储过程一般是有预先定义的SQL语句集,经编译后存储在数据库中,用户指定存储过程的名字并给定参数(如果存储过程有参数的话),然后直接可以执行。一个

2020-06-30 19:25:27 372

原创 【原理】CAM(类激活映射)模型可视化

前言深度学习如火如荼,神经网络的可解释性一直是讨论的热点,其实可解释性常和模型的可视化联系在一起,模型可视化或者模型可解释说到是对某一类别具有可解释性,直接画出来特征图并不能说明模型学到了某种特征。这里主要讲一下基于类激活映射(Class Activation Mapping)的可视化。这个技术其实提出时间比较早,但是效果较好,如果希望做模型可视化,推荐大家研究一下,近期我也是用到了这个模型可视化,所以这里主要先针对原理进行简要的阐述,希望可以加深自己的认识。可视化方法其实可视化有很多方法:1

2020-06-29 19:19:02 3038 6

原创 Shell脚本一次执行多条命令

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。简要来讲,shell脚本就是 .sh 结尾的文件,在Linux系统中经常被用到。问题 如何使用 Shell 脚本执行多条命令呢?我们需要遵从以下三个原则:1.每个命令之间用 ; 隔开说明:各命令的执行给果,不会影响其它命令的执行。换句话说,各个命令都会执行,但不保证每.

2020-06-28 09:31:06 4312

考研数据结构常用算法

408计算机考研数据结构常用算法背诵,经典常考算法代码,适合考试前冲刺背诵。预祝考研成功!

2018-11-26

期中期末考试/考研 C语言练习题

本资源包含日常考试/考研C语言常出题目,可以用作日常考试/考研 C语言的练习。熟悉C语言的运行流程,熟悉C语言的算法书写规范。预祝您考研成功。

2018-12-01

流畅的python+深度学习入门:基于Python的理论与实现+源代码【真实不用填写密码】

本资源真实有效,其中第二本资料里面包含源代码!需要的请下载!谢谢支持

2019-05-08

空空如也

空空如也

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

TA关注的人 TA的粉丝

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