自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 堆-数据结构和算法之美学习笔记

堆这种数据结构的应用场景非常多,最经典的莫过于堆排序了。堆排序是一种原地的、时间复杂度为 O(nlogn) 的排序算法。堆是一种特殊的树,只要满足这两点,它就是一个堆堆是一个完全二叉树堆中每一个节点的值都必须大于等于(或小于等于)其子树中每个节点的值对于每个节点的值都大于等于子树中每个节点值的堆,我们叫做“大顶堆”。对于每个节点的值都小于等于子树中每个节点值的堆,我们叫做“小顶堆”。其中第 1 个和第 2 个是大顶堆,第 3 个是小顶堆,第 4 个不是堆。除此之外,从图中还可以看出来,对于同

2021-01-03 20:20:22 144

原创 二叉树-数据结构和算法之美学习笔记

树(Tree)树”这种数据结构很像我们现实生活中的“树”,这里面每个元素我们叫做“节点”;用来连接相邻节点之间的关系,我们叫做“父子关系”如下:A 节点就是 B 节点的父节点,B 节点是 A 节点的子节点。B、C、D 这三个节点的父节点是同一个节点,所以它们之间互称为兄弟节点。我们把没有父节点的节点叫做根节点,也就是图中的节点 E。我们把没有子节点的节点叫做叶子节点或者叶节点,比如图中的 G、H、I、J、K、L 都是叶子节点。还有三个比较相似的概念:高度(Height)、深度(Depth)、层(L

2020-12-24 23:30:24 192

原创 散列表-数据结构和算法之美学习笔记

散列表的英文叫“Hash Table”,我们平时也叫它“哈希表”或者“Hash 表”散列表用的是数组支持按照下标随机访问数据的特性,所以散列表其实就是数组的一种扩展,由数组演化而来。可以说,如果没有数组,就没有散列表。键(key)/关键字;散列函数;散列值可以总结出这样的规律:散列表用的就是数组支持按照下标随机访问的时候,时间复杂度是 O(1) 的特性。我们通过散列函数把元素的键值映射为下标,然后将数据存储在数组中对应下标的位置。当我们按照键值查询元素时,我们用同样的散列函数,将键值转化数组下标,从

2020-12-23 23:12:03 150

原创 线性排序-数据结构和算法之美学习笔记

三种时间复杂度是 O(n) 的排序算法:桶排序、计数排序、基数排序。因为这些排序算法的时间复杂度是线性的,所以我们把这类排序算法叫作线性排序;之所以能做到线性的时间复杂度,主要原因是,这三个算法是非基于比较的排序算法,都不涉及元素之间的比较操作学习重点是掌握这些排序算法的适用场景一、桶排序顾名思义,会用到“桶”,核心思想是将要排序的数据分到几个有序的桶里,每个桶里的数据再单独进行排序。桶内排完序之后,再把每个桶里的数据按照顺序依次取出,组成的序列就是有序的了桶排序的时间复杂度为什么是 O(n) 呢

2020-12-23 12:44:01 116

原创 基础排序-数据结构和算法之美学习笔记

排序算法的执行效率**最好情况、最坏情况、平均情况时间复杂度:**分析排序算法的时间复杂度时,要分别给出最好情况、最坏情况、平均情况下的时间复杂度。除此之外,你还要说出最好、最坏时间复杂度对应的要排序的原始数据是什么样的。**时间复杂度的系数、常数 、低阶:**时间复杂度反映的是数据规模 n 很大的时候的一个增长趋势,所以它表示的时候会忽略系数、常数、低阶。但是实际的软件开发中,我们排序的可能是 10 个、100 个、1000 个这样规模很小的数据,所以,在对同一阶时间复杂度的排序算法性能对比的时候,

2020-12-21 23:04:44 101

原创 递归-数据结构和算法之美学习笔记

基本上,所有的递归问题都可以用递推公式来表示递归需要满足的三个条件一个问题的解可以分解为几个子问题的解;比如,电影院的例子,你要知道,“自己在哪一排”的问题,可以分解为“前一排的人在哪一排”这样一个子问题。这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样;比如电影院例子,求解“自己在哪一排”的思路,和前面一排人求解“自己在哪一排”的思路,是一模一样的存在递归终止条件:把问题分解为子问题,把子问题再分解为子子问题,一层一层分解下去,不能存在无限循环,这就需要有终止条件。还是电影院的例子

2020-12-19 22:21:06 102 1

原创 队列-数据结构和算法之美学习笔记

队列这个概念非常好理解。你可以把它想象成排队买票,先来的先买,后来的人只能站末尾,不允许插队。先进者先出,这就是典型的“队列”栈只支持两个基本操作:入栈 push()和出栈 pop()。队列跟栈非常相似,支持的操作也很有限,最基本的操作也是两个:入队 enqueue(),放一个数据到队列尾部;出队 dequeue(),从队列头部取一个元素。队列跟栈一样,也是一种操作受限的线性表数据结构应用非常广泛,比如循环队列、阻塞队列、并发队列。它们在很多偏底层系统、框架、中间件的开发中,起着关键性的作用。比如高

2020-12-19 18:16:32 93 1

原创 栈-数据结构和算法之美学习笔记

后进者先出,先进者后出,这就是典型的“栈”结构,从栈的操作特性上来看,栈是一种“操作受限”的线性表,只允许在一端插入和删除数据事实上,从功能上来说,数组或链表确实可以替代栈,但要知道,特定的数据结构是对特定场景的抽象,而且,数组或链表暴露了太多的操作接口,操作上的确灵活自由,但使用时就比较不可控,自然也就更容易出错当某个数据集合只涉及在一端插入和删除数据,并且满足后进先出、先进后出的特性,这时我们就应该首选“栈”这种数据结构栈既可以用数组来实现,也可以用链表来实现。用数组实现的栈,我们叫作顺序栈,用

2020-12-19 13:23:11 152 1

原创 链表-数据结构和算法之美学习笔记

链表的底层存储结构​ 数组需要一块连续的内存空间来存储,对内存的要求比较高。如果我们申请一个 100MB 大小的数组,当内存中没有连续的、足够大的存储空间时,即便内存的剩余总可用空间大于 100MB,仍然会申请失败。而链表恰恰相反,它并不需要一块连续的内存空间,它通过“指针”将一组零散的内存块串联起来使用,所以如果我们申请的是 100MB 大小的链表,根本不会有问题单链表链表通过指针将一组零散的内存块串联在一起。其中,我们把内存块称为链表的“结点”。为了将所有的结点串起来,每个链表的结点除了存储数

2020-12-18 17:53:35 140 3

原创 数组-数据结构和算法之美学习笔记

数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据第一是线性表(Linear List)。顾名思义,线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表、队列、栈等也是线性表结构非线性表,比如二叉树、堆、图等。之所以叫非线性,是因为,在非线性表中,数据之间并不是简单的前后关系。连续的内存空间和相同类型的数据正是因为这两个限制,它才有了一个堪称“杀手锏”的特性:“随机访问”。但有利就有弊,这两个限制也让数组的很

2020-12-18 17:52:26 67 1

原创 VSCode配置C/C++开发环境

Vscode插件下载如图这个插件就好辣下载WinGW访问该链接https://sourceforge.net/projects/mingw-w64/files/选择进行下载解压到任意位置配置环境变量添加bin目录到PATH然后回到VSCode中去调整,注意添加完环境变量后重启VSCode添加配置文件创建任意.cpp文件,按F5运行,弹出配置窗口按照如下步骤进行配置,图源:https://www.cnblogs.com/bpf-1024/p/11597000.html到此应该就彳亍

2020-12-16 19:13:05 98 1

原创 YouTube学习_Few-Shot Learning3-简单方法

一个简单而有效的方法大规模数据集上的预训练+小规模Few Shot Learning上的微调其中预训练部分构造大约如此这里构造一个简单的例子:在分类的时候就要把Query中的特征向量与上述u1,u2,u3做对比做预测的时候采用这样的方法Fine-Tuning部分为何要做Fine-Tuning?因为可以提高得分鸭整体过程...

2020-08-10 19:12:15 187

原创 YouTube学习_Few- Shot Learning2-孪生网络

数据集划分一个简单的Siamese network可以如下这样就可以对一个Query 来分别对比support set 中的每个图片计算sim的值而对于孪生网络的训练过程首先选择一个图片作为anchor(锚点),然后记录下这个anchor ,再在这个anchor所在类中随机抽取一个样本共同构成正样本,然后在非anchor所在类中的其他类中随机抽取一个样本构成负样本将anchor、正样本和负样本分别输入同一个神经网络,计算特征之间的距离所以在这里希望正样本的d更小而负样本的d更大

2020-08-10 19:11:43 419

原创 YouTube学习_Few-Shot Learning1-基本概念

基础理解Support Set: 比较小的训练数据集-具有很少的类和很少的类中数据,其与train set 的区别在于:train set更大,而Support Set则不足以让网络学习到每一类的具体划分,而是学会区分其间的异同Few-shot learning的目标是让机器自己学会学习比如这里面有很多不同的动物,传统的分类就是通过大量的训练网路来让网路认识某张图片是属于哪一类,Meta-Learning则不同,其更注重于判断事物的异同,就好比兔子的图片中,模型经过了上面大量的学习后,并不知道这个是

2020-08-10 19:10:33 328

原创 论文阅读:弱监督语义分割、遥感

论文阅读:Weakly Supervised Deep Learning for Segmentation of Remote Sensing ImageryWang, S.; Chen, W.; Xie, S.M.; Azzari, G.; Lobell, D.B. Weakly supervised deep learning for segmentation of remote sensing imagery. Remote Sensing 2020, 12, 207.文章定义了弱监督源:(1)单

2020-08-10 16:15:39 1803 3

原创 Docker搭建实验室GPU服务器环境

为什么使用docker服务器主要的使用场景是科学计算,跑深度学习模型,有过单机配置训练环境的经历的人就知道,多版本CUDA共存有多不方便。之前搭建服务器环境只是利用anaconda做了一个简单的环境控制,加上每个用户设置单独用户账号登录来管理自己的环境。后来当要复现一些老版本tensorflow代码的时候需要使用CUDA9,这时候之前搭建的环境就显得有点憨憨了,早就知道有个玩意叫docker,...

2020-02-27 11:55:56 2272 2

原创 VScode配置远程开发--科学计算

Pycharm的远程开发好用是好用,就是需要专业版才能使用该功能,学生邮箱只能白嫖一年,来看看VScode的远程开发环境是怎么搭建的⑧????你需要具备一台可以ssh的服务器,可以是阿里云,和一台安装了VScode的电脑????1.下载安装Anaconda常规的下载安装Anaconda-linux版本,然后把.sh文件上传到阿里云或者你的服务器然后执行bash Anaconda3-2019.10-...

2020-02-27 11:49:50 657

空空如也

空空如也

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

TA关注的人

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