- 博客(75)
- 资源 (1)
- 收藏
- 关注
原创 报错device-side assert triggered的其中一种解决方案
当小错误显示为Assertion 'indexValue>=0 && indexValue < src.sizes[dim]时,大多数错误发生在标签的某些设置上超出了数组限制
2020-07-09 10:48:50
3088
原创 哈夫曼树
二叉树的带权路径长度设二叉树具有n个带权值的叶子结点,从根结点到各个叶子结点的路径长度与相应叶子结点权值的乘积之和。记为在这些由不同的路径组成的树中,带权路径长度最小的二叉树,称之为哈夫曼树,也称作最优二叉树。哈夫曼树的特点权值越大的叶子结点越靠近根结点,而权值越小的叶子结点越远离根结点(构造的核心思想)n个叶结点的哈夫曼树的结点总数为2n-1个哈夫曼树不唯一,但WPL唯一哈夫...
2019-03-03 17:07:27
3710
1
原创 使用C++创建一个线索二叉树
线索二叉树的结构由于二叉树每次遍历的时候都会造成大量的时间消耗,因此创建一个线索二叉树就显得十分必要。线索二叉树的结构如图所示:在这里,我们可以发现线索二叉树的规则:若结点p有左孩子,则p->lchild指向其左孩子结点,否则令其指向其(先序、中序、后序、层序)前驱;若结点p有右孩子,则p->rchild指向其右孩子结点,否则令其指向其(先序、中序、后序、层序)后继;那么...
2019-02-27 12:57:27
1096
原创 使用C++创建一个二叉树
二叉树的创建由于在二叉树的创建过程中,我们需要使用输入/读取的值来判定二叉树是否有左节点或者右节点。因此我们在创建的时候就需要使用指针的引用或者二重指针。我们定义二叉树的基本结点形式如下所示:typedef int Elemtype;struct node{ Elemtype data; node* lchild; node* rchild;};typedef node* No...
2019-02-25 12:33:24
20620
4
原创 tensorflow中的函数随手记
tf.concattf.concat 起到的是拼接的作用,函数主要有两个参数,分别是 axis 和 values。这两个参数 axis 起到确定相加方向的作用,values 起到给出待相加参数的作用。axis 这个参数常见有 0和1,即指定相加方向。0 指的是列相加;1 指的是行相加。理论上还有 -1 这个参数,但一般用不上。要注意的是,若要列相加,则两个向量的行应相同;若行相加,则向量的列应...
2019-02-22 20:11:48
258
原创 使用链表进行多项式加法
创建一个链表数据结构选用为单链表,多项式中含有参数和指数,因此链表中包含的元素应该为参数、指数、链表指针,如下所示:typedef int Elemtype;struct LkList{ int para; int index; LkList* next;};typedef LkList* LIST;typedef LkList* Position;链表数据导入我们首先将...
2019-02-22 14:41:20
841
原创 使用pytorch创建一个简单的图像分类器
下载训练集我们使用 CIFAR10 作为目标数据集,首先使用 pytorch 将目标数据集下载:import torchimport torchvisionimport torchvision.transforms as transformstransform=transforms.Compose([transforms.ToTensor(), ...
2019-02-15 18:34:09
1042
原创 使用pytorch构建一个简单的神经网络
网络的搭建首先,我们创造一个继承于类 nn.Module 下的类 Net,并在初始化时就定义网络的结构。
2019-02-14 13:25:53
1542
原创 pytorch1.0中torch.nn.Conv2d用法
Conv2d的简单使用torch 包 nn 中 Conv2d 的用法与 tensorflow 中类似,但不完全一样。在 torch 中,Conv2d 有几个基本的参数,分别是in_channels 输入图像的深度out_channels 输出图像的深度kernel_size 卷积核大小,正方形卷积只为单个数字stride 卷积步长,默认为1与tensorflow不一样的是,pyt...
2019-02-13 19:47:19
6493
原创 tensor的个人理解
tensor的个人理解开始从数学来讲从Nvidia来讲结束开始最开始接触深度学习的时候,都有一个疑问,为什么是tensor?什么是tensor?tensor有什么好处?要回答这些问题,我们就要从最开始的地方讲起从数学来讲首先,如果你能科学上网,强推这一篇:What’s a Tensor?如果不能,我们来看:数学中,我们有 tensor (张量)、vector (向量)、scalar(...
2019-02-03 21:04:29
1209
原创 项目三 独立的图像识别模型(一)
1 微调的概念 以常见的VGG16作为例子,我们采用VGG16在ImageNet上已经训练好的网络参数作为初始值,并只根据需要来重新训练所有参数或是部分参数。而微调主要有以下几种情况: 1.只训练最后一个全连接层与倒数第二个全连接层之间的参数,即保留绝大部分参数,适用于拥有图片较小的情况 2.训练所有参数,即使用网络思想不使用数据,适用于数据量较大 3.训练...
2018-11-05 10:16:27
899
原创 项目二 CIFAR10与ImageNet图像识别(二)
2.使用tensorflow训练CIFAR10识别模型2.1数据增强 通过平移、旋转、翻转、裁剪、缩放、颜色变换等数据操作可以增加数据库的数量,同时也能大大提高模型的泛化能力,并且可以预防过拟合。在应用这个方法的时候,我们可以使用以下方法:# 随机剪裁distorted_image = tf.random_crop(reshaped_image, [height, width...
2018-11-01 20:58:02
586
原创 项目二 CIFAR10与ImageNet图像识别(一)
1 CIFAR10数据集1.1 数据集简介 CIFAR10是一个包含十个类别RGB图像的用于识别普适物体的小型数据集。其内共有50000张训练图片与10000张测试图片,图片尺寸为32*32。1.2下载数据集中数据import cifar10import tensorflow as tf# tf.app.flags.FLAGS是TensorFlow内部的一个全局变量存...
2018-10-29 21:24:36
2030
原创 OpenCV3+级联卷积神经网络训练自己的xml文档(分类器)
1.简介 最近小学期的课程中,导师要求做了一个在图像中识别特定人物的任务(识别特朗普)。我最开始使用反投影直方图,但是效果极其渣,后来选用神经网络的方法做分类进行识别,但网上写的都不甚详细,于是打算自己写一个作为记录。2.原理 OpenCV3中使用的分类器是基于级联神经网络,其可以通过级数的增加提高分类的正确率。3.过程步骤一: 首先,我们需要知道训练一个分类器我们要准备些什么:...
2018-07-10 10:12:43
3477
3
原创 python简明教程学习笔记 异常
当我们的程序出现例外情况时就会发生异常(Exception)。当这种情况发生时,python将给出一个 Error。例如你把“print”写成了“Print”。1.处理异常 我们可以通过 try...except 来处理异常状况,我们以一个处理输入异常的作为举例。 try: text = input('Enter your name --> ') ...
2018-07-04 11:43:29
357
原创 python简明教程学习笔记 输入与输出
1.用户输入 在程序需要与用户进行交互的时候,我们可以通过 input 与 print 来实现这个目的。input是一个很简单的函数,和 C 的差别就在于它可以把提示信息和用户需要输入的信息放在一起。something = input("Enter text: ")2.文件打开 我们可以通过创建一个属于 file 类的对象并适当使用它的 read 、 readline 、 write ...
2018-07-04 10:43:28
362
原创 python简明教程学习笔记 面向对象编程
1.面向对象 在至今我们编写的所有程序中,我们曾围绕函数设计我们的程序,也就是那些能够处理数据的代码块。这被称作面向过程(Procedure-oriented) 的编程方式。还有另外一种组织起你的程序的方式,它将数据与功能进行组合,并将其包装在被称作“对象”的东西内。在大多数情况下,你可以使用过程式编程,但是当你需要编写一个大型程序或面对某一更适合此方法的问题时,你可以考虑使用面向对象式...
2018-07-03 18:55:26
354
原创 python简明教程学习笔记 数据结构
数据结构(Data Structure)就是用来储存一系列相关数据的集合。 python中有四种数据结构,它们分别是列表(List)、元组(Tuple)、字典(Dictionary)、集合(Set)。通过这四种数据结构,python可以使我们的编程之路更加简单。1.列表 列表是一种可变的数据类型,我们可以在其中添加、删除、改变、搜索项目。 在列表之中,我们常用的命令有以下...
2018-07-02 15:36:43
333
原创 python简明教程学习笔记 模块
1.模块 如果我们想在别的程序之中重用我们已经写好的函数,我们就需要使用模块。有很多种方法可以编写模块,其中最简单的就是创建一个包含函数变量,以 .py 格式为后缀的文件。 另一种方法是使用撰写 Python 解释器本身的本地语言来编写模块。举例来说,你可以使用 C 语言来撰写 Python 模块,并且在编译后,你可以通过标准 Python 解释器在你的 Python 代码中使用它们。...
2018-07-02 09:26:59
425
原创 python简明教程笔记 目录
作为一个从C++转过来的程序员,还是从最最基础的东西开始看起,不管怎么样,先写个目录吧。 我看的书是Swaroop C H编写的《A Byte of Python》 的中文翻译版,版本为根据python3重新编排过的4.06c版,在CSDN上就可以找到。 第一章 基础 第二章 运算符 第三章 控制流...
2018-07-01 22:36:46
396
原创 python简明教程学习笔记 函数
函数(Functions)是指可重复使用的程序片段。它们允许你为某个代码块赋予名字,允许你通过这一特殊的名字在你的程序任何地方来运行代码块,并可重复任何次数。这就是所谓的调用(Calling)函数。range等等都是函数。1.关键字 函数可以通过关键字 def 来定义。这一关键字后跟一个函数的标识符名称,再跟一对圆括号,其中可以包括一些变量的名称,再以冒号结尾,结束这一行。随后而来的...
2018-07-01 22:14:24
342
原创 python简明教程学习笔记 控制流
在这里,我们将介绍有关控制流,也就是python语句if、for、while这些关键词的用法1.if-block 不同于C的用法,python中if后的条件没有任何括号,而是采用“:”作为替代,我们使用冒号来向python提示后面将会有一块语句。并且python中没有分开的“else if”,取而代之的是elif。同样的,语句块中也没有花括号作为语句块与语句块之间的分隔,而采用不同缩...
2018-07-01 16:51:31
254
原创 python简明教程笔记 运算符与表达式
运算符与表达式1.运算符与操作数运算符(Operators)就是你经常用的加减乘除,而操作数,则是加减乘除左右的那些数2 + 3“+”就是运算符;“2”、“3”就是操作数2.运算符+会产生如下的效果(重载)2 + 3 = 5'a' + 'b' = 'ab'-可以自动补齐第一位操作数中没有的零-5.2 = -5.250 - 24 = 26*也可以对字符串进行操作2 * 3 = 6'ha' * ...
2018-06-29 22:04:52
263
原创 python简明教程笔记 基础
1.format方法是将每个参数值替换到格式所在的位置,使用“.”解引用操作符进行操作e.g print('{name} using {language}'.format(name = 'author', language = 'python'))在这里,我们可以注意到,‘’和“”在python中表示字符串的时候起到的作用是一致的,其基本没有区别...
2018-06-29 21:16:46
687
原创 4.1 逗号分隔的值;4.2 一个原型库
4.1 逗号分隔的值 逗号分隔的值(comma-separated value),或CSV,是个术语,指的是一种用于表示表格数据的自然形式,使用很广泛。表格的每行是一个正文行,行中不同的数据域使用逗号进行分隔,书中给出的例子是: 这些格式通常由某些程序进行读写,而让程序帮我们做到这些工作,最重要的是自动化,在没有人工干预的情况下提取所需的数据,并将他们转换为人们所需要的形式。这些,都是...
2018-05-12 17:52:14
297
原创 第四章 界面
第四章 界面 在造墙之前,我必须设法弄清 该把什么放在墙里,什么放在墙外, 最需要防御的又是什么。 确实有些东西不喜欢墙, 总希望它倒下来。 设计的真谛,就是在一些互相冲突的需求和约束条件之间寻找平衡点。如果要写的是一个自给自足的小程序,那么常常可以找到许多折衷方式,所做出的特定选择将产生一些后果,会遗留在系统里,但其影响还只限于写程序的个人。如果写出的代码是为...
2018-04-29 10:56:41
399
原创 3.6 马尔科夫链算法的具体实现(C++环境下)
3.5 马尔科夫链算法的具体实现(Java环境下) 由于我不是一个Java的程序员,只略懂一点Java的皮毛,所以不敢写,如果有大佬可以写的话,欢迎补充。我也会进行转载。3.6 马尔科夫链算法的具体实现(C++环境下) 因为C++语言几乎是C的一个超集,只要注意某些写法和规则,C++一样可以以C的形式去使用,实际上在上一篇中,我得所有输入输出就是用的C++中的基本输入输出流。对于C++...
2018-04-19 09:34:54
2741
原创 3.4 马尔科夫链算法具体实现(C语言)
3.4 马尔科夫链算法具体实现 在这一篇笔记中,我不打算说很多了。因为所有的理论知识都在3.3节中讨论过了。我在这里直接给出代码。另外给个彩蛋,某公司的面试题可就和这道特别类似哦。 在这里,我要说的是: 1.读取文本和代码之间的配合要掌握好 2.时间与空间消耗要掌握好 而对于C语言来说,最强的地方就是给了程序员对实现方式的完全控制,用它写出的程序趋向于快速。但是这也有...
2018-04-16 12:43:20
2624
1
原创 3.3 在C语言下构造马尔科夫链数据结构
3.3 在C语言下构造马尔科夫链数据结构 在文章的开头,我们要强调一下文章的目的和整体脉络,以便在长文中丢失自我。1.目的 我们给定一个输入(前缀),算法将自动匹配它的后缀,并根据选定的后缀更新前缀再重选后缀直至文档结束2.脉络 对于我们期望的这种数据结构,我们要明白的是,它要服务马尔科夫链算法。回忆这个算法,我们不难发现算法中需要通过前缀去寻找后缀。而这之中,状态(State)...
2018-04-15 19:01:17
1417
原创 3.2 数据结构的选择
3.2 数据结构的选择 对于马尔科夫链的输入,我们就不得不考虑有多少输入需要处理,程序应该运行的多快。假定我们的输入文本有100,000个词,我们还想让代码在几秒之内完成。那么就注定这不会是一个简单的算法。 以下是书中的摘录: 马尔可夫算法必须在看到了所有输入之后才能开始产生输出。所以它必须以某种形式存储整个输入。一个可能的方式是读完整个输入,将它存为一个长长的字符串。情况的另一...
2018-04-14 17:44:55
1153
原创 3.1 马尔科夫链算法
3.1 马尔科夫链算法 在这里,我们可以将输入当成由一些互相重叠的短语构成的序列,而马尔科夫链算法把每个短语分割为两个部分:多个词组成的前缀和只包含一个词的后缀。根据原文本的统计性质,马尔科夫算法随机的选择跟在前缀后面的特定后缀以生成输出短语序列。如果我们采用三个词作为短语的长度划分,那么算法就可以工作的很好。 而算法的实现则为: 设置w1和w2为文本的前两个词 输出w1和...
2018-04-13 19:18:07
1944
原创 第三章 设计与实现
第三章 设计与实现 给我看你的流程图而藏起你的表,我将仍然是莫名其妙。如果给我你的表,那么我将不再要你的流程图,因为它们太明显了。 以上从Brooks的经典书中摘录的内容想说的是,数据结构设计是程序构造过程的中心环节。一旦数据结构安排好了,算法就像是瓜熟蒂落,编码也比较容易。 这种观点虽然有点过于简单化,但也不是在哄骗人。在前一章里我们考察了各种基本数据结构,它们是许多程序的基...
2018-04-13 12:35:16
521
原创 2.9 散列表
2.9 散列表 散列表是计算机科学里的一个伟大发明,它是由数组、表和一些数学方法相结合,构造起来的一种能够有效支持动态数据的存储和提取的结构。 散列表的一个典型应用是符号表,在一些值 (数据)与动态的字符串 (关键码)集合的成员间建立一种关联。你最喜欢用的编译系统十之八九是使用了散列表,用于管理你的程序里各个变量的信息。你的网络浏览器可能也很好地使用了一个散列表来维持最近使用的页面踪迹...
2018-04-11 17:57:13
335
原创 2.8 树
2.8 树 树是一种分层性数据结构。在一棵树里存储着一组项,每个项保存一个值,它可以有指针指向0个或多个元素,但只能被另一个项所指。树根是其中惟一的例外,没有其他项的指针指向它。 实际存在许多不同种类的树,它们表示各种复杂的结构。在这里,我们使用二分检索树来说明树的原理。二分检索树的每个结点带有两个子结点指针,left和right,它们分别指向对应的子结点。而对于一个特定的节点,其左节...
2018-04-10 13:13:53
195
原创 2.7 表
2.7表 除了数组之外,链表是典型程序中使用最多的数据结构。虽然在C++和Java里表已经由程序库实现了,我们还是需要知道如何使用以及何时使用它。而在C语言里我们就必须自己实现。这一节我们准备讨论C的表,从中学到的东西可以用到更广泛的地方去。 一个单链表包含一组项,每个项都包含了有关数据和指向下一个项的指针。表的头就是一个指针,它指向第一个项,而表的结束则用空指针表示。而下面是...
2018-04-07 00:08:26
225
原创 程序设计实践读书笔记
零.写在前面 这是一系列有关Rob写的《程序设计实践》一书的读书笔记。这本书不是讲算法的,也不是讲实际编程的。归类的话,应该是一本讲“你在写代码时要注意的问题”的书。更像是一种约定俗成与经验公式,用来规范或是让你的代码看起来更加合理。个人来讲,我推荐已经写了一些代码,但是还没有写太多的朋友来看这本书。如果你的代码量太多或者太少,个人感觉都不是很合适。那么,现在就开始这本书的个人笔记。快速通道...
2018-04-06 15:26:52
332
原创 2.4 Java快速排序;2.5 大O记法;2.6 可增长数组
2.4 Java快速排序 额。。基本不会Java,想看这部分的可以去看一下书里的部分,也不长。2.5 大O记法 我们常需要描述特定算法相对于n(输入元素的个数 )需要做的工作量。在一组未排序的数据中检索,所需的时间与n成正比;如果是对排序数据用二分检索,花费的时间正比于log(n)。排序时间可能正比于n^2或者nlog(n)。 我们需要有一种方式,用它能把这种说法弄得更精确,同时又...
2018-04-03 12:46:36
326
原创 第二章 算法与数据结构
二.算法与数据结构 从第二章开始,我将会把书中的每小节分开,使得笔记的条理更加清晰。 我们还是以书中的原话来作为笔记的开篇:(笔记作者有删改) 算法和数据结构的研究是计算机科学的重要基石,但是这并不意味着你要明白所有的东西。当你进入到某一个特定的领域的时候,那么首先需要弄清楚在这里已经有了些什么,以免无谓地把时间浪费在别人早已做好的东西上。 每个程序都要依靠算法与数据结构...
2018-04-02 00:26:19
358
原创 2.1 检索;2.2 排序;2.3 库
2.1检索 数组是我们经常使用到的东西,一个例子就是储存静态的表格式数据。在实际应用中,我们往往需要找到数组中的特定数据。对于这种问题,终止整个搜索的一种处理方法是传递一个数组长度参数,而这里采取在数组最后放一个NULL作为结束参数。使用一个数组数据寻找函数作为遍历。char *flab[] = { "actually", "just", "quite", "really",...
2018-03-31 23:24:17
271
原创 第一章 风格
一.风格1.0 引子 对于一门编程语言,使用其进行代码的编写,不仅仅要让计算机“读懂”,更是要让其他程序员读懂。因此,好的程序就像一篇好的作文,语句凝练,段落清晰。反映到程序上,则是程序要有一个良好的风格。而好的风格在代码的维护与修改上都会给之后的工作带来极大的便利。1.1 名字 形式上,一个变量的名字应该遵循着简练、易记忆。当然,如果使用英文进行注明则是再好不过。 对于不同种类...
2018-03-29 18:10:43
317
MatlabKCF算法简析 不需要一点数学的情况下简单看懂KCF代码
2018-02-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人