- 博客(407)
- 资源 (19)
- 收藏
- 关注
原创 C数据结构常见树型结构和二叉排序树基本操作
二叉树: 二叉树是每个节点最多有两个子树的树结构。二叉树可以是空集;根可以有空的左子树或右子树;或者左、右子树皆为空。 满二叉树: 高度为h,并且由2{h} –1个结点的二叉树,被称为满二叉树。 完全二叉树: 一棵二叉树中,只有最下面两层结点的度可以小于2,并且最下一层的叶结点集中在靠左的若干位置上。这样的二叉树称为完全二叉树。一棵满二叉树必定是一棵完全二叉树,而完全二叉树...
2018-11-06 20:31:35 651
原创 C 数据结构队列和栈基本操作
队列队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。队列是一种操作受限制的线性表。与现实中的排队类似,进行插入操作只能在队尾,进行删除操作只能在队头。队列是一种先进先出的线性表。C实现队列,需要定义一个结点结构,一个含指向首结点和尾结点指针的结构(比链表多一个指向首尾的结构)。 队列的首指针指向第一个元素,队列的尾指针指向最后...
2018-11-05 20:55:31 1665 1
原创 C 数据结构循环链表(带环链表)基本操作
经典循环链表之约瑟夫问题:标号从1到n的n个人围成一个圈,从1开始计数到m的人退出圈子,然后从退出的下一个人开始接着从1计数,数到m的人后继续退出,最后只剩下一个人,求剩下人的编号。这便是约瑟夫问题的模型。经典循环链表之魔术师发牌问题:魔术师手中有A、2、3……J、Q、K十三张黑桃扑克牌。在表演魔术前,魔术师已经将他们按照一定的顺序叠放好(有花色的一面朝下)。魔术表演过程为:一开始,魔术师数1...
2018-11-05 20:48:49 651
原创 C 数据结构中双链表基本操作
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。#include<stdio.h>#include<stdlib.h>#include<string.h>//定义双链表结点typedef struct dNode{ ...
2018-11-05 20:43:08 454
原创 C 数据结构中单链表基本操作
C中的typedefC中的typedef关键字作用是为一种数据类型定义一个新名字,这样做的目的有两个,一是给变量定义一个易记且意义明确的新名字,如:typedef unsigned char BYTE;把unsigned char类型自命名为BYTE。另一个目的是简化一些比较复杂的类型声明,比如struct结构类型: typedef struct student ...
2018-11-02 09:40:18 730
原创 C++ 类
C结构体、C++结构体、C++中类C语言中的struct中只能定义成员变量,不能定义成员函数,可以定义函数指针; 所以C中的struct可以看作是一个复杂的数据类型,不能用于面向对象编程。C++中的struct既可以定义成员变量也可以定义成员函数;C中声明结构体变量的时候struct关键字不能省,C++中可以省略。C++中class跟struct的区别是类中成员默认是私有的,str...
2018-10-31 21:04:11 962
原创 C中几个递归问题
1. 计算累和 1+2+3+……+n#include<stdio.h>#include<stdlib.h>#include<string.h>int add_up(int n){ if(n==1){ return 1; } return n+add_up(n-1);}void main(){ ...
2018-10-31 14:36:55 2540 1
原创 C++(二)
函数指针函数指针是指向函数的指针。函数具有可赋值给指针的物理内存地址,一个函数的函数名就是一个指针,它指向内存中存放函数代码块的起始地址。函数指针的定义:类型 (*指针变量名)(参数列表);例如: int (*p)(int i,int j);这里定义了一个函数指针,该函数具有两个int类型的参数,返回类型为int,指针名称是p,指针符号*跟指针名称用括号括...
2018-10-29 20:05:42 536
原创 C++(一)
1. i++与++i 问题i++: i先参与运算,再自增1;++i: i先自增加1, 再参与运算。2. 三元运算符条件?操作一:操作二条件为真,执行操作一,条件为假,执行操作二。注意确定“条件”的范围,有时候并不是把全部的左边表达式作为“条件”的。例如:int a=9,c;c=(a++==9);这里c等于括号里的判定结果,a++==a 为真,所以 c = 1...
2018-10-28 18:02:34 466
原创 C++ 基类指针和派生类指针之间的转换
函数重载、函数隐藏、函数覆盖函数重载只会发生在同作用域中(或同一个类中),函数名称相同,但参数类型或参数个数不同。 函数重载不能通过函数的返回类型来区分,因为在函数返回之前我们并不知道函数的返回类型。函数隐藏和函数覆盖只会发生在基类和派生类之间。函数隐藏是指派生类中函数与基类中的函数同名,但是这个函数在基类中并没有被定义为虚函数,这种情况就是函数的隐藏。所谓隐藏是指使用常规的调...
2018-10-28 11:01:19 25302 9
原创 C中位运算、逻辑运算
C中的位运算&: 按位与(两者同为1则为1,否则为0) |:按位或 (两则同为0则为0,否则为1) ^: 按位异或(两则相同则为0,相异则为1) ~: 取反 (1取0,0取1) <<:左移 (相当于乘2) >>:右移 (相当于除2)验证:#include <stdio.h>int main(){ int a = 5; ...
2018-10-24 21:05:39 2581
原创 数据结构
数据结构概念数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科,是相互之间存在一种或多种特定关系的数据元素的集合。数据: 描述客观事物的符号,是计算机中可以操作的对象,能被计算机识别,并可以输入给计算机处理的符号集合。结构: 指数据集合中各个组成部分相互搭配和排列的方式,也就是数据关系。程序设计 = 数据结构 + 算法 逻辑结...
2018-10-24 10:02:02 1112
原创 编译原理
进程在内存中的大概分布情况进程都需要占用一定内存,被占用的内存有些是事先静态分配和统一回收的,有些是按需动态分配和及时回收的。一般分为5种不同的内存数据段: 代码段:用来存放可执行文件完整的操作指令(机器码)和只读数据,为了防止代码段被非法修改,代码段的特点是只读不写的。如果一个程序有多个运行实体,则这些实体共享同一个代码段。 数据段:用来存放可执行文件中已经初始化了的全局变量,也...
2018-10-19 20:09:10 5804
原创 计算机网络
TCP/IP协议TCP/IP协议不是“一个”协议,而是一个协议群的统称。里面包括了IP协议,IMCP协议,TCP协议,以及我们更加熟悉的http、ftp、pop3协议等。互联网进行通信时,需要相应的网络协议,TCP/IP就是为使用互联网而开发制定的协议族,是一系列互联网协议的统称,因为TCP和IP在这一系列协议中比较重要,所以就以它们来命名了。TCP/IP协议为什么分层?TCP/IP协议族...
2018-10-18 15:44:18 1174
原创 计算机组成原理
冯诺依曼体系结构冯诺依曼提出“存储程序”原理,即把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存,以此为基础的计算机称为冯诺依曼机。特点:①计算机由运算器,控制器,存储器,输入和输出五部分组成②指令和数据以同等的地位存放于存储器内,并可按地址寻访③指令和数据均用二进制数表示④指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置⑤指令在...
2018-10-18 08:44:14 37695 1
原创 计算机操作系统
1. 进程和线程进程是具有一定功能的程序在某个数据集上的一次运行活动,是系统进行资源调度和分配的一个独立单位。线程是进程的实体,是CPU调度和分配的基本单位,是比进程更小的能独立运行的基本单位。一个进程可以有多个线程,多个线程可以并发执行。线程执行开销小,但不利于资源管理和保护,进程相反。引入进程的目的,是为了使多道程序并发执行,以提高资源利用率和系统吞吐量;而引入线程,则是为了减...
2018-10-16 20:00:17 810
原创 tensorflow模型继续训练 fineturn
解决tensoflow如何在已训练模型上继续训练fineturn的问题。 训练代码任务描述: x = 3.0, y = 100.0, 运算公式 x×W+b = y,求 W和b的最优解。# -*- coding: utf-8 -*-)import tensorflow as tf# 声明占位变量x、yx = tf.placeholder("float", shape=[...
2018-10-12 19:09:26 6583
原创 tensorflow神经网络结构可视化
借助 tensorboard 实现tensorflow中定义的深度神经网络可视化。在程序中实现网络可视化,只需要在加载网络之后,加上这一句:summary_writer = tf.summary.FileWriter('./log/', sess.graph)上边的 sess.graph 就是定义的网络结构了,使用summary.FileWriter 方法保存到本地。或者:...
2018-10-11 19:00:41 20199
原创 几个常用的计算两个概率分布之间距离的方法以及python实现
1. 欧氏距离(Euclidean Distance)欧氏距离源自欧氏空间中两点间的直线距离,是最常见的一种距离计算方式。计算公式是两个矩阵中对应元素之差的平方和再开方。python实现:import numpy as npx = np.array([[1, 2, 3, 4],[5, 6, 7, 8]])y = np.array([[5, 6, 7, 8],[1, 2, ...
2018-09-29 20:11:36 24718 4
原创 生成对抗网络消除图像模糊(Keras)
2017年,乌克兰天主教大学、布拉格捷克理工大学和解决方案提供商Eleks联手公布了一篇论文,文章标题为《DeblurGAN: Blind Motion Deblurring Using Conditional Adversarial Networks》。这篇文章中,研究人员提出一种基于条件对抗式生成网络和内容损失(content loss)的端对端学习法DeblurGAN,用来去除图像上因为相...
2018-09-29 09:51:18 9427 6
原创 python装饰器限制函数运行时间,超时退出
实际项目中会涉及到需要对有些函数的响应时间做一些限制,如果超时就退出函数的执行,停止等待。可以利用python中的装饰器实现对函数执行时间的控制。python装饰器简单来说可以在不改变某个函数内部实现和原来调用方式的前提下对该函数增加一些附件的功能,提供了对该函数功能的扩展。方法一. 使用 signal使用signal有所限制,需要在linux系统上,并且需要在主线程中使用。...
2018-09-26 11:10:56 31346 2
原创 tensorflow中几种读取图片文件并显示方法
方式一:通过tf.gfile.FastGFile()读取图像文件tf.gfile模块提供了tensorflow中通用的文件I/O操作。tf.gfile.FastGFile(filename, mode)函数用于获取文件操作句柄,类似于python中的文本操作open()函数。第一个参数filename是文件路径,第二个参数mode是文件编码方式(‘r’:UTF-8编码; ‘rb’:非UT...
2018-09-05 14:19:00 32513 4
原创 tensorflow中tf.nn.conv2d()函数
tensorflow中二维卷积函数tf.nn.conv2d()定义:def conv2d(input, filter, strides, padding, use_cudnn_on_gpu=True, data_format="NHWC", dilations=[1, 1, 1, 1], name=None)第一个参数input:指需要做卷积的输入图像,它要求是一个Tensor,...
2018-09-04 08:33:02 15406 4
原创 Opencv+Python实现图像运动模糊和高斯模糊
运动模糊: 由于相机和物体之间的相对运动造成的模糊,又称为动态模糊Opencv+Python实现运动模糊,主要用到的函数是cv2.filter2D():# coding: utf-8import numpy as npimport cv2def motion_blur(image, degree=12, angle=45): image = np.array(im...
2018-09-02 17:30:28 25006 6
原创 tensorflow中卷积方式SAME和VALID特征图大小计算
卷积方式SAME后特征图大小计算卷积方式: SAME(卷积后的特征图大小跟卷积核大小无关,只跟卷积所用的步长有关,当卷积步长是1时,卷积前后特征图大小保持不变)输入特征图大小:W×H卷积核大小: k×k卷积步长: s×s输出特征图大小: W1×H1W1 = math.ceil(W / s)H1 = math.ceil(H / s)其中math.ceil()是向上取整卷积方...
2018-09-02 17:19:55 6965 7
原创 Flask上传本地图片并在页面上显示
使用Flask远程上传图片到服务器,并把获取到的图片显示到前端页面上。 方法一 目录结构:'static/images' 文件夹用来存放上传过来的图片 ‘templates’文件夹下的两个html文件定义显示页面 upload_pictures.py 是工程代码upload_pictures.py 代码:# coding:utf-8from flask...
2018-08-23 21:15:49 67270 19
原创 风格迁移简介
1. 神经风格迁移之前的风格迁移方法1) 基于笔划的渲染(Stroke-based rendering SBR)基于笔划的渲染是指在数字画布上增加虚拟笔划以渲染具有特定样式的图片的方法。应用场景大多限定在油画、水彩、草图等,不够灵活。2) 图像类比方法图像类比旨在学习一对源图像和目标图像之间的映射,以监督学习的方式定位风格化图像。图像类比训练集包括成对的未校正的源图像和具有特定样式的...
2018-08-22 19:53:32 19833
原创 基于对抗生成网络的图像去模糊
论文参考: Deep Generative Filter for motion deblurring 论文解读完整工程代码下载: https://download.csdn.net/download/dcrmg/10620482 1. 图像大小 256×256 。训练时候把清晰图像和模糊图像合成在一张图上,左侧是清晰图像,右侧是模糊图像。 2. 根据训练和测试图片生成 ...
2018-08-22 19:31:17 9091 23
原创 YOLO v3 检测原理
YOLO v3文章地址:YOLOv3: An Incremental Improvement v3相对于v2的主要改进:1. 特征提取器更深(参考ResNet) 2. 多尺度预测 (类似FPN) 3. Bounding Box和Loss1. 特征提取器(分类器)V3的特征提取器在V2的Darknet-19基础上做了优化,命名为Darknet-53。包含52层卷积层和1个全连...
2018-08-20 17:14:47 12097
原创 YOLO v2 检测原理
YOLO v2论文地址: YOLO9000: Better, Faster, Strongerv2版本的优化目标:改善召回率,提升定位精度,保证分类准确度。YOLOv2相比YOLOv1的改进:1. Batch Normalization(批规范化BN层应用)v2在每一个卷积之后增加了BN层,提高了网络训练的速度,加快了收敛,消除了对其他正则化的依赖,且正则化效果更好,使调参更简...
2018-08-11 07:54:02 2279
原创 YOLO v1检测原理
YOLO v1论文地址: You Only Look Once: Unified, Real-Time Object Detection YOLO v1检测原理YOLO v1之前的RCNN系列目标检测算法,其本质仍是一个分类问题,基本思路是通过滑窗在图像上滑动,遍历完整个图像,分别判断窗口图像的分类,再通过回归方法调整物体精确边框,达到检测和定位的目的。其后改进的fast-RCNN系...
2018-08-11 07:24:14 5837
原创 keras模型可视化
1. 安装pydotpip install pydot 2. 安装 graphvizsudo apt-get install graphviz 3. 使用keras中 plot_model 函数画出模型图#encoding=utf-8from keras.models import Sequentialfrom keras.layers.core i...
2018-08-09 10:58:25 8372
翻译 Deep Generative Filter for motion deblurring 论文解读
"Deep Generative Filter for motion deblurring"(用于消除运动模糊的深度生成网络)是2017年9月挂到arXiv上的一篇论文,论文连接: https://arxiv.org/abs/1709.03481 摘要由于相机抖动导致的运动模糊由于其本身的病态属性,一直是计算机视觉领域一个具有挑战性的问题。在3D空间中,相机和被拍摄物体之间的相对运动...
2018-08-09 09:18:40 4071 2
原创 批规范化 Batch Normalization
batch normalization 就是对数据做批规范化,使得数据满足均值为0,方差为1的正太分布。其主要作用是缓解DNN训练中的梯度消失/爆炸现象,加快模型的训练速度。BN在2015年提出,论文:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift机器学习领...
2018-08-08 09:26:45 6202 1
原创 在python程序中使用YOLO v3(基于keras)
在python程序中使用YOLO,可以为YOLO添加python接口,也可以把YOLO的网络框架和权重文件转换成keras或pytorch使用的格式,然后再在python程序中调用。这里介绍基于keras的YOLO调用。 完整项目代码下载地址 : https://github.com/dcrmg/yolo3-training-keras-master 1. 生成keras的.h5文...
2018-08-03 09:22:11 31134 18
原创 ubuntu编译安装opencv
简易安装opencv2:conda install --channel https://conda.anaconda.org/menpo opencv或:sudo apt-get install libopencv-dev python-opencv简易安装opencv3:pip install opencv-python或:pip install openc...
2018-08-01 14:31:41 2445
原创 YOLOv3训练自己的数据
1. 下载预训练权重文件YOLOv3使用在Imagenet上预训练好的模型参数(文件名称: darknet53.conv.74,大小76MB)基础上继续训练。darknet53.conv.74下载链接: https://pjreddie.com/media/files/darknet53.conv.74,下载完成后放在darknet主目录。也可以直接在darknet目录下通过w...
2018-07-31 09:52:58 7994 3
原创 keras图像风格迁移
风格迁移: 在内容上尽量与基准图像保持一致,在风格上尽量与风格图像保持一致。1. 使用预训练的VGG19网络提取特征 2. 损失函数之一是“内容损失”(content loss),代表合成的图像的特征与基准图像的特征之间的L2距离,保证生成的图像内容和基准图像保持一致。 3. 损失函数之二是“风格损失”(style loss),代表合成图像的特征与风格图像的特征之间的Gram矩阵之间的差...
2018-07-29 12:37:43 4513 1
原创 卷积神经网络特征图可视化(自定义网络和VGG网络)
借助Keras和Opencv实现的神经网络中间层特征图的可视化功能,方便我们研究CNN这个黑盒子里到发生了什么。 自定义网络特征可视化 代码:# coding: utf-8from keras.models import Modelimport cv2import matplotlib.pyplot as pltfrom keras.models import...
2018-07-27 23:22:38 75048 74
原创 python中类的创建和实例化
python中同样使用关键字class创建一个类,类名称第一个字母大写,可以带括号也可以不带括号;python中实例化类不需要使用关键字new(也没有这个关键字),类的实例化类似函数调用方式;# coding: utf-8# 创建一个类,类名称第一个字母大写,可以带括号也可以不带括号class Student(): student_count = 0 def ...
2018-07-27 09:24:15 54273 3
Tensorflow-Multi-GPU-Training.rar
2020-07-28
pytorch训练图像分类模型pth转ONNX并测试
2019-10-29
基于生成对抗网络的图像去模糊
2018-08-22
SqueezeNet模型文件及使用
2018-03-15
tensorflow训练的识别验证码模型
2018-01-08
python中xlutils模块(版本2.0)
2017-10-26
jTessBoxEditorFx-2.0-Beta part2(part1&&part2;)
2017-10-14
jTessBoxEditorFx-2.0-Beta part1(part1&&part2;)
2017-10-14
Windows平台下 Java运行时环境(虚拟机)安装包javaSetup8u144.exe
2017-10-14
tesseract简体中文语言包chi_sim.traineddata
2017-10-14
Windows下Tesseract 4.0安装包
2017-10-14
张正友相机标定Opencv实现(完整程序+棋盘图)实例源码
2016-10-26
贪吃蛇小游戏实现
2016-08-01
90年代经典“手游”—拼图板小游戏Opencv实现
2016-07-29
直方图反向投影的肤色检测
2016-07-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人