- 博客(69)
- 收藏
- 关注
原创 三个最短路径算法Dijsktra, Floyd, SPFA的总结
刚做完算法作业,好久没碰算法了,这里回顾一下最短路径中比较经典的算法:Dijsktra,Floyd,SPFADijsktra解决的是单源最短路径的问题贪心的思想。且贪心的依据,也正是算法中最关键的一点,当前已知source到所有未确定最短路径的节点的路径中,最短的那一个一定是source出发到该节点最短路径。dist数组存放source到其他节点当前的最短路径。S集合存放了从source出发的所有确定了最终最短路径的节点,D集合存放还未确定全局最短路径的节点。首先,Dijsktra的更新方式,是
2020-06-05 10:54:33 382
原创 conda常用指令
conda info #查询conda信息conda update conda #升级condaconda update anaconda #升级anacondaconda update python 升级pythonconda create --name [name] [dependent package list] #创建环境#例: conda create --name mypy...
2019-11-18 16:01:59 258
原创 CV_shortcomings of the original GAN
shortcomings of the original GAN1.Evaluation、梯度消失及梯度不稳定original GAN的Loss Funtion表示,D实际上是在对P_data和P_G之间做一个JSD的衡量,也就是说,在学习训练D的过程,也就是在衡量给定的G所对应的分布P_G与真实数据所处的分布P_data之间的JS divergence。也正如前述,GAN和VAE使用了相...
2019-11-09 17:15:34 422
原创 CV_shortcomings of original GAN
shortcomings of the original GAN1.Evaluationoriginal GAN的Loss Funtion表示,D实际上是在对P_data和P_G之间做一个JSD的衡量,也就是说,在学习训练D的过程,也就是在衡量给定的G所对应的分布P_G与真实数据所处的分布P_data之间的JS divergence。也正如前述,GAN和VAE使用了相同的架构,但是二者的区...
2019-11-09 17:13:54 269
原创 CV_basic idea of GAN
在GAN出现之前…假设真实的data服从P_data,并且现在拥有属于这个分布的一些样本,但是这个P_data我们是无从得知的,但是我们希望可以得到一个崭新的同样属于这个分布的data。所以我们就对这个分布建立模型,其对应着分布P_G,希望这个P_G能够尽可能地逼近P_data,由于这个P_G是我们自己建立的,所以这个模型或者说P_G对我们而言必然是可知的。那么此时只要P_G能够尽可能地逼近P...
2019-11-09 15:35:06 189
原创 Deep Learning-CNN可视化
关于CNN可视化:卷积核filter可视化 feature map可视化卷积核filter可视化<1>借助反向decode的过程实现filter可视化所谓filter可视化,不是简单的从filter的weights和biases从看出filter的样子,而是应该从filter的机制出发,去理解filter到底“看到了什么内容,``想看到什么内容``”对于CN...
2019-10-21 09:36:31 310
原创 PyTorch-tensorboardX.SummaryWriter()部分源码
来自tensorboardX.SummaryWriter()的源码。其中包括了几个主要的APIclass SummaryWriter(object): """Writes entries directly to event files in the logdir to be consumed by TensorBoard. The `SummaryWriter` c...
2019-10-17 20:10:29 5714
转载 PyTorch-hook
钩子编程(hooking),也称作“挂钩”,是计算机程序设计术语,指通过拦截软件模块间的函数调用、消息传递、事件传递来修改或扩展操作系统、应用程序或其他软件组件的行为的各种技术。处理被拦截的函数调用、事件、消息的代码,被称为钩子(hook)。Hook 是 PyTorch 中一个十分有用的特性。利用它,我们可以不必改变网络输入输出的结构,方便地获取、改变网络中间层变量的值和梯度。这个功能被广泛用...
2019-10-16 07:53:18 695 1
原创 C++随笔-类继承与包含
类继承在派生类对象中创建基类子对象,并根据继承方式的不同,将基类子对象的函数(方法)接口添加进派生类的相应区域(public、private、protected)。子对象是以未命名成员对象的形式存在于派生类对象中的。包含将基类对象显式地作为新类成员对象。也就是说,基类子对象是以命名的成员对象存在于新类对象中的。...
2019-05-14 16:55:22 461
原创 C++随笔-类继承::继承基类接口
“继承基类方法接口的含义”首先,类方法分为实现与接口。所谓方法接口,是用于描述类内与类外交互的途径,因此,只有能够在类外,通过类对象直接对类方法进行调用,才能称为继承了接口。公有继承与私有继承公有继承:基类方法将被添加进派生类的公有部分,成为派生类的公有方法,因此可以通过派生类对象对继承的基类方法进行调用。因此在公有继承机制下,派生类继承了基类的接口,为is-a关系的一部分。...
2019-05-10 17:18:27 1365 2
原创 C++随笔-类继承::protected
首先要知道对于类成员的访问,分为类作用域内进行访问与类外进行访问。基类、派生类都是在继承链中相对的概念。基类中的protected成员,对于基类作用域:全可见 派生类作用域:可见,相当于基类的public 类外:不可见,相当于基类的private对于类中的public、private、protected的划分是为了限制派生类以及类外的访问的。而本类的作用域必然允许是对这三个区域的...
2019-05-08 22:51:05 156
原创 C++随笔-类继承::简单继承与多态继承
继承什么是继承?个人的理解就是将基类的成员作为派生类的成员,注意是作为派生类的成员,即加入派生类的类作用域中,叫做继承。作为派生类的成员意味着可以直接通过派生类对象或者派生类方法对其进行访问。派生类对基类数据成员的继承:将数据成员存储至派生类中,作为派生类的数据成员。派生类对基类方法成员的简单继承:将方法提供给派生类,派生类继承了基类方法的接口。值得注意的是,继承了基类方法的接口,...
2019-05-08 22:39:40 269
原创 C++随笔-类继承::派生类与基类
派生类与基类之间的关系(is-a)@1 派生类会继承基类的数据成员和部分方法成员,并将其加入派生类的相应区域(public、private、protected,取决于才去的继承方式)。之所以是部分方法成员,是因为有一些特殊的函数不会被继承:构造函数、析构函数、赋值运算符函数等。public、private、protected区域的划分只是对可见性的一种描述,并不是真正实现上按这种方式进行划分。...
2019-05-08 22:37:15 1291
原创 C++随笔-友元函数
注意友元函数的身份:非类成员函数。作为类的友元函数,其所获得的只是和类成员函数一样访问类对象的权利,但不代表其可视为类成员函数,理所当然其不可以通过" . "被调用。值得注意的是,通过友元,函数被赋予了访问类对象的权限,其中包括允许访问类的私有(private)和保护(protected)成员。这才是最重要的,因为公有(public)部分直接通过“ . ”方法就可以实现对其的访问。以及在友元函...
2019-05-04 21:02:26 141
原创 C++随笔-复制构造函数与赋值运算符
复制构造函数坑得一逼...当使用实例化了的自定义类对象给一个新声明的自定义类对象赋值时,如果没有定义参数为自定义类对象的构造函数,则编译器会自动生成一个复制构造函数...注意:复制构造函数只在新创建的对象进行初始化时被调用,初始化(赋值)的对象类型同为用户自定义类型。例如下列代码:Classname instance1;Classname instance2 = insta...
2019-05-04 17:10:26 489
原创 C++随笔-转换函数
默认使用类对象的构造函数作为转换函数当需要将其它类型转换为用户自定义类时,如果用户自定义类中存在只接受一个参数,且该参数为待转换类型的构造函数,则可以在某些情况下隐式调用构造函数作为转换函数,从而实现类型的转换。当构造函数有多个参数时,只有一个参数没有默认值,而其他参数都配置了默认值,则同样可以被自动隐式地作为转换函数。同时,如果担心隐式转换会带来意想不到的错误,可以使用关键字explicit...
2019-05-04 09:58:21 190
原创 C++随笔-类之构造函数与析构函数
构造函数和析构函数都是在与类对象相关的程序中,会自动调用的函数。其中构造函数:在类对象初始化时自动调用。C++类对象中构造函数的作用,相当于Python类对象中的__init__(self)方法。都是为了在声明类实例时对类对象完成初始化操作。 析构函数:在类对象过期时自动调用。注意因果关系,是因为类对象要过期了,所以程序自动调用类对象的析构函数。声明格式原型都无返回声明,且构造函数...
2019-05-02 21:32:42 261
原创 C++随笔-函数原型存放在头文件中
除了内联函数,在头文件中通常只存放函数原型,而具体函数定义在其他源文件中。需要函数原型的原因程序的声明部分都是服务于编译器的,函数原型也是如此。函数原型描述了函数到编译器的接口。他将函数的返回值类型(如果有的话)以及参数的类型和数量告诉了编译器。例如double volume = cube(side);首先,原型告诉编译器,cube()有一个double参数。如果程序没...
2019-04-28 16:34:17 1418
原创 C++随笔-名称空间
C++中的声明区域、潜在作用域、作用域声明区域:允许对某变量进行声明的区域 潜在作用域:是声明区域的子集。从某变量声明处开始,到某变量声明结束为止,都是某变量的潜在作用域。 作用域:是某变量潜在作用域的子集,为程序中,某变量实际可见的区域范围。由此可见,只要在不同的声明区域对变量进行声明,就能将该变量加入相应的声明区域,进一步得到相应的该变量的作用域。而通过对变量在不同声明区域以及使用不...
2019-04-28 15:35:48 185
原创 C++随笔-内存模型
C++中提供了三种存储方案:自动存储变量 静态存储变量 动态存储变量其中,动态存储变量采用的是独立的内存管理机制。设立了一个内存池,又称为自由存储空间。动态存储变量不受C++存储机制的影响。其中,描述这三种变量的因素:声明区域 存储持续性。自动存储:只存在一个代码块内;静态存储:存在于整个程序运行阶段 链接性。内部:只能被当前文件所访问;外部:可以被其他文件所访问自动存储变...
2019-04-28 12:01:33 119
原创 Tensorflow-训练的并行模式介绍
TensorFlow中可以很容易地利用单个GPU加速深度学习模型的训练过程,但当需要利用更多的GPU或机器,需要了解如何并行化训练深度学习模型。常见的并行化深度学习模型的训练方式有两种,同步模式和异步模式。下文将对这两种模式展开介绍。在此之前,还需要回顾一下TensorFlow是如何对深度学习模型进行训练的。深度学习模型的训练是一个迭代过程,在每一轮迭代中,前向传播算法会根据当前参数的取值计算...
2019-04-25 20:32:12 1290
原创 Tensorflow-使用TensorBoard实现可视化
TensorBoard无需额外安装,在TensorFlow安装时,TensorBoard就会被自动安装。TensorBoard简介TensorBoard是TensorFlow中实现可视化的工具。其使用TensorFlow程序运行过程中生成的日志文件来实现TensorFlow程序运行状态的可视化。TensorBoard和TensorFlow运行在不同的进程中。TensorBoard会自动读...
2019-04-25 10:45:57 561
原创 Tensorflow-with tf.Graph().as_default()
tensorflow下的Graph中 tf.Operation是一个node,而tf.Tensor是一个edge以tf.constant(0.0)为例,调用tf.constant(0.0)创建一个单独的tf.Operation,生成值42.0,将其添加到默认图形,并返回一个表示常数的值的tf.Tensor在没有特别说明的情况下,程序中定义的tf.Operation均是添加进入defa...
2019-04-03 20:27:17 7507
原创 Target Tracking-MDNet分析
MDNet如果直接使用DL方法从多个视频序列中对各个不同类型的目标进行通用的特征提取,几乎是不现实的。因为在某一个视频中的目标可能在另一个视频中就是背景。也就是说这个目标在A视频中对应的标签是1,在另一个B视频中对应的标签可能就是0了,所以一会作为目标,需要学习它的特征,来降低Loss Function,一会儿又要作为背景,不学习它的特征,才能降低Loss Function。所以针对这个问...
2019-03-28 22:40:55 328
原创 Tensorflow-模型的保存、恢复以及fine-tune
最近在做的本科毕设需要对迁移过来的ConvNet进行在线fine-tune,由于之前在学习Tensorflow时对模型的保存恢复学习的不够深入,所以今天花了一个下午看了几篇文章,觉得有的写的很不错,就搬运过来。在最后有自己的总结。参考原文:https://zhuanlan.zhihu.com/p/53814653使用tensorflow的过程中,我们常常会用到训练好的模型。我们可以直接使用...
2019-03-22 17:54:34 2442 1
原创 OS X系统下pycharm的环境配置
pycharm环境配置常见问题https://blog.csdn.net/niutianzhuang/article/details/79184562https://blog.csdn.net/amberdreams/article/details/81227488
2019-03-21 09:44:12 384
转载 Deep Learning-深入理解Batch Normalization批标准化
原文:https://www.cnblogs.com/guoyaohua/p/8724433.htmlBatch Normalization作为最近一年来DL的重要成果,已经广泛被证明其有效性和重要性。虽然有些细节处理还解释不清其理论原因,但是实践证明好用才是真的好,别忘了DL从Hinton对深层网络做Pre-Train开始就是一个经验领先于理论分析的偏经验的一门学问。本文是对论文《Batch...
2019-03-17 10:30:13 295
原创 Target Tracking-TLD分析
TLD简介对于视频追踪来说,常用的方法有两种,一是使用追踪器根据物体在上一帧的位置预测它在下一帧的位置,但这样会积累误差,而且一旦物体在图像中消失,追踪器就会永久失效,即使物体再出现也无法完成追踪;另一种方法是使用检测器,对每一帧单独处理检测物体的位置,但这又需要提前对检测器离线训练,只能用来追踪事先已知的物体。TLD是对视频中未知物体的长时间跟踪的算法。“未知物体”指的是任意的物体,在开...
2019-03-03 22:51:45 373
转载 Target Tracking-TLD(Tracking-Learning-Detection)原理分析
原文:http://johnhany.net/2014/05/tld-the-theory/Tracking-Learning-Detection(TLD)是Zdenek Kalal提出的一种对视频中单个物体长时间跟踪的算法。我主要会根据他在2010年发表的论文《Tracking-Learning-Detection》来分析TLD算法的原理。该项目的首页中有几段视频展示了TLD实时跟踪的效果...
2019-03-03 15:42:47 238
原创 Target Tracking-MeanShift算法实现流程分析
看了一些博文,但是没有找到能把如何在代码上使用MeanShift实现目标跟踪解析得比较清晰的文章。所以打算根据自己的理解写一篇。MeanShift算法原理略,可以自行参考其他博文MeanShift算法实现目标跟踪流程初始第一帧->选定目标模版,即要跟踪的对象->计算该目标区域的直方图,得到hist1;同时得到该目标区域中心位置的坐标 f1第二帧(注意)此时第...
2019-03-02 15:38:28 348
翻译 论文笔记-Fully-Convolutional Siamese Networks for Object Tracking
Fully-Convolutional Siamese Networks for Object Tracking 摘要 任意对象跟踪的问题传统上通过仅在线学习对象外观的模型来解决,使用视频本身作为唯一的训练数据。 尽管这些方法取得了成功,但它们的在线方法本身就限制了他们可以学习的模型的丰富性。最近若干利用深度卷积网络的表达能力的尝试已经进行了。 然而,当事先不知道要跟踪的对象时,有必要在...
2019-03-01 21:13:05 1979
原创 Tensorflow-数据读取的三种方式
参考原文:1.https://blog.csdn.net/chengshuhao1991/article/details/786449662.https://blog.csdn.net/u014061630/article/details/80712635最近在学习Tensorflow文档。在对QueueRunner的学习过程中顺便了解了一下Tensorflow中常见的数据读取方式。在...
2019-02-15 17:28:56 725 1
转载 Tensorflow-系统架构
参考原文:https://blog.csdn.net/chengshuhao1991/article/details/78644966Tensorflow的系统架构分为两个部分:前端系统:提供编程模型,负责构造计算图 后端系统:提供运行时环境,负责执行计算图可以说,前端的任务就是要构造一幅计算图出来,交给后端完成相应的计算。 Tensorflow的工作方式:Tensor...
2019-02-15 17:17:34 436
原创 C++随笔-预处理器
参考原文:https://blog.csdn.net/huang_xw/article/details/7648117这里只讨论处理以#开头的预处理的编译指令的预处理器预处理器是在程序源文件被编译之前根据预处理指令对程序源文件进行处理的程序。预处理指令一般是无法直接被编译和链接的,则需要由预处理器来进行操作。而在C++中,可以使用预处理指令和具有预处理的功能。预处理中往往会对原文件进行文本...
2019-01-29 10:44:17 158
原创 C++随笔-main()函数
因为文本编辑器中编写的代码实际上是要拿给编译器看的,是要由编译器翻译成目标代码之后再经过链接才得到可执行文件,所以需要让编译器知道一个程序的开始与结束。所以实际上最终供计算机使用的代码实际上是由编译器产生的代码,和源代码并不相同,是经过加工过的。而定义main()函数,实际上也是在告诉编译器,这个是程序的入口。至于为什么是main()函数,其实这只是编译器的规定。因为源代码是拿给编译器看的,所...
2019-01-29 10:40:17 215
原创 C++随笔-程序的创建
程序创建的过程step1:用文本编辑器编写程序,并将其保存至文件中,这个文件就是程序的源代码 step2:编译源代码。通过运行一个程序,将源代码翻译成计算机使用的内部语言,即机器语言。包含了翻译后的程序的文件即目标代码 step3:链接。将目标代码与其他代码链接起来。链接指的是将目标代码同使用的函数的目标代码以及一些标准的启动代码组合起来,生成程序的运行阶段版本。包含该最终产品的文件称为可...
2019-01-29 10:38:44 197
原创 计算机操作系统-文件(1)文件管理、文件的逻辑结构、文件目录
文件管理 文件也属于系统资源,其就是一组有意义的信息、数据集合。计算机中存放了各种各样的文件:一个文件具有哪些属性? 文件内部的数据应该被怎样组织起来? 文件之间又应该怎么组织起来? 从下往上看Operation System应该提供哪些功能才能方便用户、应用程序使用文件? 从上往下看,文件数据应该怎么存放在外存(磁盘)上?1一个文件具有哪些属性?文件名:由创建文件的...
2019-01-21 21:25:45 9735
转载 Git-基础特性
原文地址:https://www.ibm.com/developerworks/cn/opensource/os-cn-git-and-github-1/index.htmlGit的基础特性 克隆一次即可获得代码库的完整副本 这个特性是所有分布式版本控制系统的特性之一,Git也不例外。 直接记录快照而非差异比较 版本控制系统中采用何种策略来管理文件的历史版本是系...
2019-01-20 21:03:29 576
转载 Git-基础简介
原文地址:https://www.ibm.com/developerworks/cn/opensource/os-cn-git-and-github-1/index.html 前言 Git是目前业界最流行的版本控制系统Version Control System,而 GitHub是开源代码托管平台的翘楚。 Git和GitHub的区别及联系 注意,虽然二者联系紧密,但是从本...
2019-01-20 21:00:41 150
原创 Python-try...finally... 和 with
try…finally…当执行一大串代码时,一旦程序代码中某一个部分出错,就会立即停止,同时剩下的其他代码也不会再继续执行了。这就会有一个问题,如果在剩下未执行的代码中有一些事是必须要执行的,比如释放之前分配的内存等等,而因为报错导致之后的代码无法执行,这就会带来内存泄漏等影响。所以使用try...finally...,在try中的代码无论是否出错是否运行被终止,都不会影响finally部分代...
2019-01-19 22:22:35 2729
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人