自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 资源 (2)
  • 收藏
  • 关注

原创 八大排序算法总结

文章目录1 冒泡排序1.1 原理1.2 图解1.3 代码2 选择排序2.1 原理2.2 图解2.3 代码3 直接插入排序3.1 原理3.2 图解3.3 代码4 希尔排序 (缩小增量排序)4.1 原理4.1.1 交换法和移位法4.2 图解4.3 代码4.3.1 交换法4.3.2 移位法5 快速排序5.1 原理5.2 图解5.3 代码6 归并排序6.1 原理6.2 图解6.3 代码7 基数排序7.1 原理7.2 图解7.3 代码8 堆排序9 比较9.1 时空复杂度9.2 实际测试9.2.1 代码9.2.2 结果

2021-07-19 14:04:22 697

原创 Java 泛型程序设计

1 定义泛型类和泛型方法1.1 泛型类一个泛型类(generic class)即具有一个或多个类型变量的类,在类名后面引入一个<>括起来的类型变量列表后,就可以将类中方法的返回类型、域或局部变量的类型指定为<>中的类型变量。public class Pair<T,U>{ private T first; private U second; public Pair(T fisrt, U second) {this.first = first; this.se

2020-11-10 17:17:41 299

原创 Improved Dense Trajectory算法源代码的安装与详细分析

IDT算法是人体动作视频分类中性能最好的传统方法,在13年由LEAR实验室发表,前身是DT算法,IDT算法主要对相机运动进行了校正。DT算法文章:DT,IDT算法文章:IDT。LEAR实验室提供了linux环境下的C++代码,可以在idt下载。官方提供的IDT代码只包含了提取特征的部分,而IDT算法中还需要用Fisher Vector编码特征,再通过SVM分类,这部分后面再学习。由于项目需要用到IDT提特征,所以仔细的学习了一下IDT的代码。1 安装IDT算法需要在linux环境下运行,建议在ubun

2020-11-06 16:21:54 978

原创 Java 处理错误与捕获异常

1 异常的分类所有的异常都派生于Throwable类,然后分成两个分支:Error和Excpetion。Error类层次结构描述Java运行时系统的内部错误和资源耗尽错误。这种情况一般很少出现,应用程序也不用抛出这种类型的对象,出现了这种错误时,一般通告用户并安全终止程序即可。Exception类是主要需要关注的,分为两个分支:RuntimeException、IOException。由程序错误导致的异常属于RuntimeException,一般包含:错误的类型转换数组访问越界访问null

2020-10-22 14:42:50 579

原创 Java 动态代理的原理和特性

1 代理模式的作用代理模式的作用主要在于在于生成代理对象,在服务提供方和使用方之间充当一个媒介,控制真实对象的访问。假定目前项目实现了成百上千个类,实现了不同类型的功能,现在需要在实现每个功能的基础上,打印出功能的详细信息,比如方法名、功能、参数等,不使用代理技术,就需要一个一个修改成百上千个类,而且当又不需要打印额外信息时,又需要修改源代码。2 静态代理静态代理的做法是为每个类编写一个对应的代理类,让他们实现同一个接口,接口中定义了要实现的函数。静态代理模式在不改变目标对象的前提下,实现了对目

2020-10-21 14:27:03 353

原创 Java 内部类的原理和作用

内部类(inner class)是定义在另一个类中的类,一般有三个特点:内部类可访问该类定义所在作用域中的数据,包括私有数据内部类可以对同一个包的其他类隐藏起来定义一个回调函数且不想编写大量代码时,可通过匿名内部类实现1 内部类如何访问对象状态public class TalkingClock{ private int interval; private boolean beep; public TalkingClock(int interval,boolean beep) {...}

2020-10-21 11:00:40 242 1

原创 Java lambda表达式相关知识

Java 8引入了的一个重要特性就是lambda表示,它使得再Java中可以将函数作为参数来使用,极大增加了代码的紧凑性。1 lambda表达式1.1 语法基本结构表示为:(parameters) -> {statements;}但是使用起来可以更加的灵活,比如:可以不传入任何参数() -> { return 2020;}可以没有返回值(String s) -> {System.out.println(s);}只有一个参数时,可以去掉圆括号int x

2020-10-16 15:27:26 189

转载 Java 对象克隆、Cloneable接口

Cloneable接口的作用与深入理解深度克隆与浅度克隆

2020-10-16 12:58:17 141

原创 Java Comparable接口和Comparator接口

1 排序接口Comparable当某个类实现了Comparable接口,意味着该类的对象是可以按照某种规则排序的,Comparable接口定义了compareTo方法:class Employee implements Comparable<Employee>{ @Override public int compareTo(Employee other) { if (salary == other.salary) return 0; return salary <

2020-10-16 12:39:23 147

原创 Java 回调(Callback)机制与接口

1 Java程序调用的方式程序设计过程中很多情况下会涉及到不同模块之间相互调用,这种调用往往分为三种方式进行:同步调用异步调用回调1.1 同步调用同步调用是一种阻塞式单向调用,也是普通程序中最常见的调用方式,假设A函数中部分功能需要由B函数实现,在A函数的某个地方调用了B函数,那么就需要等待B函数执行完毕后,才能继续执行A函数。这种调用方式仅适用于B函数执行时间不长的情况,若B函数出现了长时间阻塞的情况,就会导致整个程序的阻塞。1.2 异步调用异步调用是一种类似于消息或事件的机制,是为

2020-10-16 11:39:08 847

原创 Java 接口中的一些知识

接口中不能含有实例域(方法、变量)接口中所有的方法属于public,声明时不用提供关键字public接口中的域自动设置为public static final使用instance关键字可以检查一个对象是否实现了某个特定的接口每个类只能有一个超类,但是可以实现多个接口(Java通过接口实现了“多重继承”)接口中允许增加静态方法接口中用default修饰符标记的方法可以提供一个默认实现,这样做的好处时,当实现这个接口的类不需要这个方法的功能时,可以不用重新实现它。默认方法可能会产生冲突,为此Ja.

2020-10-15 19:02:01 153

原创 Java 继承中的一些重点知识

Java中所有继承都是公有继承继承关系的一个明显特征是"is a"关系子类中通过super关键字调用超类的成员当一个类中没有定义构造器,会生成一个默认无参构造器,否则不会⭐如果子类的构造器中没有通过super关键字显式调用超类构造器,将会自动调用超类的默认无参构造器,而如果超类中没有默认无参构造器,子类中又没有显式调用超类的其他构造器,将会产生编译错误。所以建议在编写子类构造器时,一律在开头加上super关键字调用超类的某一个构造器。⭐与C++采用虚拟方法实现多态不同,Java通过动态绑定(dy.

2020-10-15 15:45:57 143

原创 Java 类路径

Java中类存储在文件系统的子目录中,类的路径必须和包名匹配。类文件也可以存储在JAR文件中,JAR文件使用ZIP格式组织文件和子目录,例如jre/lib/rt.jar中包含了数千个类库文件。1 如何使你的类被多个程序共享把类放到一个包树状结构的目录中,例如在/home/user/classdir中添加com.horstmann.corejava.Emplyee类,应该把Employee类文件放在/home/user/classdir/com/horstmann/corejava中将JAR文件放在

2020-10-15 14:58:23 6164

原创 Java 关键字修饰符

1 访问控制修饰符Java提供了四种定义访问权限的访问控制修饰符,分别用来保护对类、成员变量、构造器、方法的访问:defalt : 即不带任何修饰符,只能被同一包的类访问public:所有类可以访问private : 只能被自己内部的成员访问protected : 自身内部成员、子类以及同一包的类可以访问其中private和protected不能用来修饰外部类,外部类上一层为包,故外部类一般具有两种访问权限:本包内访问、全局访问,对应default和public。1.1 继承中的访问控制

2020-10-15 14:20:11 418

原创 Java 更改器方法与访问器方法

只访问对象而不修改对象的方法称为访问器方法。访问对象并且能够改变对象状态的方法成为更改器方法。在设计类方法中,当设计到需要返回一个对象时,如果这个对象中包含有更改器方法,则不建议直接返回对象引用,因为这样在对这个返回对象进行操作时,同时也改变了原对象中成员变量的状态,这破坏了类的封装性。故,建议在返回一个可变数据域的拷贝时,使用clone函数,如class Employee{ ... public Date getHireDay() { return (Date) hireDay.c.

2020-10-15 13:35:44 2309

原创 Java Object类

Object类1、概述Object类是Java中所有类的超类,可以使用Object类型的变量来引用任何类型的对象。在Java中,只有基本类型不是对象,除此之外,所有的数组类型,不管是对象数组还是基本类型数组,都扩展了Object类。2、equals方法Object类中的equals方法用于检测一个对象是否等于另一个对象,这个方法将判断两个对象状态的相等性。由于任何类都继承自Object,而Object类中的equals方法仅仅用来判断两个对象是否具有相同的引用,所以在自定义类中,需要自己实现相应的e

2020-10-13 17:36:16 557 1

原创 Java反射机制及其作用

反射1、反射的基本概念反射库是一个提供了一系列丰富且精心设计的工具集,以便编写能够动态操纵Java代码的程序,能够分析类能力的程序称之为反射(reflection)。通过反射能够将Java类中各个部分映射成为一个个Java对象,比如构造器、成员变量、方法。2、反射的作用Ⅰ. 反射最重要的用途就是开发各种通用框架,反射机制能够具有在运行时分析类的能力、在运行时查看对象。Ⅱ. 反射的核心是JVM在运行时才动态加载类或调用方法/访问属性,它不需要事先(写代码的时候或编译期)知道运行对象是谁。Ⅲ. 当

2020-10-13 16:52:07 1506

转载 Java静态工厂方法(factory method)

https://www.jianshu.com/p/ceb5ec8f1174

2020-09-28 14:19:32 218

原创 openpose安装文档installation.md中文版(Win10)

用Onenote翻译的,因为自己主要需要Win10系统下的安装信息,所以部分无关内容没有翻译。

2020-08-21 16:35:24 164

原创 CMake Error: The following variables are used in this project, but they are set to NOTFOUND

win10下用cmake配置openpose项目,再进行generate的时候,出现以下错误:CMake Error: The following variables are used in this project, but they are set to NOTFOUND.Please set them or make sure they are set and tested correctly in the CMake files:Caffe_LIB_DEBUG linked by ta

2020-08-20 15:35:00 10340 4

原创 ubuntu使用ffmpeg出现缺失x264支持的问题

重新安装ffmpeg,在此之前,先安装x264等依赖1、x264下载、解压、进入文件夹、configure、make、make installwget http://www.videolan.org/developers/x264.htmltar xvf x264-master.tar.bz2cd x264-master/configure --prefix=/usr/local/x264 --enable-shared --enable-static --enable-yasm --extra

2020-07-19 15:13:25 670

转载 PyTorch学习笔记6——优化器对比

分别在pytorch中对比了SGD、Momentum、RMSprop和Adam四种优化器的训练效果。结合了前面的构建网络方法、批训练方法等import torchimport torch.utils.data as Dataimport torchfrom torch.autograd import Variableimport matplotlib.pyplot as pltimp...

2020-03-05 16:49:51 223

转载 PyTorch学习笔记5——批训练

1、torch.utils.data.TensorDataset() 和torch.utils.data.DataLoader()pytorch提供了一个数据读取的方法,其由两个类构成:torch.utils.data.Dataset和DataLoader,我们要自定义自己数据读取的方法,就需要继承torch.utils.data.Dataset,并将其封装到DataLoader中。Tenso...

2020-03-05 16:01:01 258

转载 PyTorch学习笔记5——保存和提取神经网络

对训练到某一步的神经网络可以通过保存为pkl文件,下次再想继续训练实验时直接提取。神经网络的保存和提取分为对整个神经网络保存和提取、对神经网络的参数保存和提取。# 保存提取整个神经网络torch.save(net1,'net.pkl')net2=torch.load('net.pkl')# 保存和提取神经网络的参数torch.save(net1.state_dict(),'net_p...

2020-03-05 15:14:05 380

转载 PyTorch学习笔记4——神经网络快速搭建法(torch.nn.Sequential))

torch.nn.Sequential是一个Sequential容器,可以按照自己的需求,把不同的函数或组合成的模块添加到自己定义的网络中。比如,搭建一个两层神经网络(输入特征数为2,隐藏层神经元数为10且使用ReLu激活函数,输出特征数为2)有两种方法定义该网络:1.定义网络类并继承torch.nn.Module模块,这样可以根据自己的需求改变传播过程,forward函数是自己定义的。c...

2020-03-05 14:38:27 1327

转载 PyTorch学习笔记3——搭建分类模型

莫烦PYTHON PyTorch教程P12搭建分类模型代码import torchfrom torch.autograd import Variableimport matplotlib.pyplot as pltimport torch.nn.functional as F'''教程P12:利用torch解决分类问题'''n_data = torch.ones(100,2)#...

2020-03-03 18:12:30 340

转载 PyTorch学习笔记2——搭建回归模型

莫烦PYTHON PyTorch教程P11搭建回归拟合模型代码import torchfrom torch.autograd import Variableimport matplotlib.pyplot as pltimport torch.nn.functional as F'''教程P11:利用torch解决回归拟合问题'''x = torch.unsqueeze(torc...

2020-03-03 17:32:03 212

原创 SlowFast网络阅读笔记

一、原文原文:SlowFast Networks for Video Recognition作者:Christoph Feichtenhofer,Haoqi Fan,Jitendra Malik,Kaiming He单位:Facebook AI Research (FAIR)二、提出背景在图像识别领域中,通常自然地认为两个空间维度是各向同性的,而在视频领域中的三维信号,所有时空方向的不一...

2020-03-03 15:30:58 1921

原创 PyTorch学习笔记1——PyTorch介绍

PyTorch是Torch在Python上的衍生,与TensorFlow不同的是,它在搭建神经网络时不是先建立好一个静态图,然后再把数据放到图计算,而是一个动态的过程,边搭图边计算。PyTorch与Numpy对比:Torch自称为神经网络界的Numpy,因为他能将torch产生的tensor放在GPU中加速运算,就像Numpy会把array放在CPU中加速运算。不过,torch和Numpy能够...

2020-03-01 21:09:11 131

原创 TensorFlow学习笔记5.2——优化器Optimizer

TensorFlow中的优化器有十一种种类,例如以下几种:tf.train.GradientDescentOptimizer() #基础梯度下降算法,实际参数只有学习率tf.train.AdadeltaOptimizer()tf.train.AdagradOptimizer()#自适应梯度下降算法,对每个参数的学习率进行一个有效控制tf.train.MomentumOptimizer(...

2020-02-29 23:35:04 281

原创 TensorFlow学习笔记5.1——神经网络参数更新方法

当通过反向传播来计算解析梯度时,梯度就能够被用来进行参数更新了。一般来说,进行参数更新的方法有许多种,最简单的是沿着负梯度方向逐渐改变参数的的普通方法。又或可以引入动量(Momentum)这一概念…常见的更新方法有:SGD(随机梯度下降)、Momentum(动量)update、Adagrad、RMSprop、Adam。一、SGD(随机梯度下降)沿着参数的梯度负方向更新参数,即这里x表示w...

2020-02-29 22:27:23 2057

原创 TensorFlow学习笔记4——莫烦PYHTON例子3

import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt'''该练习为莫烦PYTHON课程中的例子3(P10-P12)主要是实现了:1、添加神经网络中的层的函数(这里一共只添加了一个隐藏层和一个输出层)2、定义完整的训练过程,包括训练样本定义、层的添加、损失定义、训练方法过程定义3、绘制样本数据...

2020-02-29 20:58:32 118

原创 双流卷积网络阅读笔记

一、原文二、双流网络框架视频被分解为空间和时间成分。空间成分为单帧,即RGB图像。时间成分为光流,描述了观察者和对象的运动情况。两个独立的识别流在softmax层通过以Multi-SVM L2范式方式进行分数融合(实验评估性能优于平均融合方法),组成了双流网络,显著提高了两个单独流网络的性能。三、光流1.定义:一个密集的光流可以看作是连续帧t和t+1之间的一组位移向量场dt。dt(u,v...

2020-02-28 17:30:47 2190 1

原创 TensorFlow学习笔记3——placeholder传入值

placeholder()函数用于定义过程,在执行的时候才对其赋值。也就是在run一个Session时再对其赋值。赋值一般用sess.run(feed_dict = {x:xs, y:ys}),其中x,y是用placeholder创建出来的,下面是一个例子:data1 = tf.placeholder(tf.float32)data2 = tf.placeholder(tf.float32)...

2020-02-17 15:52:40 585

原创 TensorFlow学习笔记2——Variable变量

1.TensorFlow中变量只有被定义为Variable变量才算是变量state = tf.Variable(0,name='counter')one = tf.constant(1)2.定义了变量一定需要初始化操作new_value = tf.add(state,one)update = tf.assign(state,new_value)init = tf.global_var...

2020-02-17 15:41:39 230

原创 TensorFlow学习笔记1——Session会话控制

TensorFlow的运行机制属于“定义”与“运行”相分离,从操作层面可以抽象成两种:构造模型和模型运行。 一个TensorFlow图描述了计算的过程,为了进行计算,图必须在会话Session里启动。Session拥有和管理物理资源CPU和GPU、网络连接的功能,作为上下文管理器来使用1.建立Seesion会话现在定义计算矩阵相乘的一个操作matrix1 = tf.constant([[3,...

2020-02-17 15:28:14 211

原创 01背包问题

现在n件物品和一个总容量为C的背包,n件物品的重量分别是{w1,w2,…,wn},n件物品的价值分别为{v1,v2,…,vn},如何组合使得背包中所有物品的总价值最大?01背包问题本质上是穷举背包容量和可供选择的物品(意思是里面的物品可能会放进背包,可能不会放进背包),取得最优解,只不过在穷举的过程中,会根据状态转移方程,只计算可能获得的最优解的部分,不去计算不是最优解的部分。具体来看,解题思路...

2019-09-17 09:43:24 145

原创 插入、选择、冒泡、快排等排序方法

1.插入排序(稳定,O(n²))数组前半部分为有序区,将ai和前面i个数依次比较,插入到合适的位置。void insert_sort(int *a, int n){ for (int i = 1; i < n; i++) // a[0]-a[i-1]为当前有序区 { int j = i - 1; //记录比较停止的位置,将当前数插入到它前面 int p...

2019-08-21 11:16:01 290

原创 一般信号量 进程同步代码

//一般信号量解决进程同步问题typdef struct semaphore { int value; /*value>0表示可用资源数; value<0表示等待资源进程数; value=0表示现在没有可用资源,也没有等待使用资源的进程*/ struct pcb* list; }void P(semaphore s){ s.value--...

2019-08-21 10:42:14 391

原创 赫夫曼树与赫夫曼编码

1.赫夫曼树也叫最优二叉树,n个权值构造一颗有n个叶子结点的二叉树,且使叶子结点带权路径长度之和最小,则得到一颗赫夫曼树。2.赫夫曼树的构造⑴给定n个权值,构成一个森林的集合F,F中初始为n颗只有一个根节点的二叉树,即n个权值。⑵每次从F中取出根节点权值最小的二叉树,作为左右子树,得到一颗新树(这里规范一下,左子树根节点权值小于右子树根节点权值,这样可以得到唯一的赫夫曼树)⑶将新树加入森林...

2019-05-14 11:10:38 1672

TCP/IP复习资料整理

学校选修课程的复习整理资料

2019-01-03

OSG程序设计教程(附源码)

OpenSceneGraph教程(FreeSouth版)以及书上程序的项目文件

2018-12-22

空空如也

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

TA关注的人

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