自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刚好的博客

宁静以致远,方得始终

  • 博客(26)
  • 收藏
  • 关注

原创 Vision Transformer【ViT】学习笔记

模型架构图整体介绍首先将图片切分成为9宫格,每一个小块为一个patch,再展平为1维向量,再经过一个线性层(MLP)投影成为我们规定的维度(对应于Transformer里面的将token向量化的过程)。由于图片切分之后分别输入到网络中,此时位置信息会被打乱,此时需要positional embedding对位置信息进行编码,再进行自注意力的计算。在Encoder的最后,每一个token都对应一个输出,应该用哪一个作为输出分类呢?借鉴bert,Extra learnable {class} em

2022-05-07 16:53:55 368

原创 Transformer学习笔记

模型架构图Transformer用于自然语言处理(NLP)中的机器翻译模型。Transformer是典型的编码器-解码器架构。encoder 将 (x1, x2, … , xn)(原始输入) 映射成 (z1, z2, …, zn)(机器可以理解的向量)例如:一个句子有 n 个词,xt 是第 t 个词,zt 是第 t 个词的向量表示。decoder 拿到 encoder 的输出,会生成一个长为 m 的序列(y1, y2, … , ym)。m和n可以一样长可以不一样。编码器和解码器的区别:编码

2022-05-06 19:07:37 3371

原创 希 尔排序

希尔排序希尔排序原则上是对插入排序的优化插入排序在大量元素基本有序的情况下,插入排序的工作量是比较小的,因为这种情况下,不需要进行频繁的比较和交换。例如,1、2、3、4、5,用插入排序排序时,每一个轮回的待插入的元素都比有序区的最后一个元素大,因此不需要进行交换,待插入的元素的位置就是排序后的位置。因此,我们可以将数列先进行预处理,让数列整体上有序,即“粗略调整”,以此来优化插入排序,这种方法就是希尔排序。下面用一个例子演示希尔排序的过程。首先对元素进行分组,第一次分组是两两分组,分组的跨度是

2022-01-06 16:31:43 316

原创 插 入排序

插入排序插入排序和玩扑克牌一样,每一次迭代都选去当前元素最合适插入的位置,每一次选都从高往低找这个合适的位置。首先选第一个元素为有序区第一轮,8>5,所以无需交换。第二轮,6<8,则交换,6>5,无需交换。每一轮结果如下:优化待插入的元素在未到达最终位置的时候,会交换很多次,这是一个缺点。此时可以将当前待插入的元素暂存起来,然后将有序区的元素逐一向后复制。例如,当前需要寻找待插入元素3的位置,可以用insertValue将3存储起来。上代码(优化之

2022-01-06 15:47:30 529

原创 选 择排序

选择排序选择排序是从无序数列中选择最小(大)的一个放到有序区的最后面相比冒泡排序方法而言,减少了大量的交换。上代码 public static void selectionsort(int[] array) { for (int i = 0; i < array.length - 1; i++) { int minIndex = i;//默认无序区第一个为最小值 for (int j = i + 1; j < arr

2022-01-06 15:24:09 346

原创 桶 排 序

桶排序和计数排序一样,都是线性时间的排序算法。每一个桶(bucket)代表一个区间范围,里面可以承载一个或多个元素。假设有一个非整数数列如下:4.5,0.84,3.25,2.18,0.5。桶排序的第1步,就是创建这些桶,并确定每一个桶的区间范围。具体需要建立多少个桶,如何确定桶的区间范围,有很多种不同的方式。我们这里创建的桶数量等于原始数列的元素数量,除最后一个桶只包含数列最大值外,前面各个桶的区间按照比例来确定。区间跨度 = (最大值-最小值)/ (桶的数量 - 1)第2步,遍历原始数列,

2021-12-29 16:02:14 936

原创 计 数排序

计数排序适用于整数,且最大值和最小值的相差不大的范围内的数列。线性复杂度的排序算法。例,有20个随机整数:9,3,5,4,9,1,2,7,8,1,3,6,5,3,4,0,10,9 ,7,9以上数列的取值范围为0-10,11个数字建立一个大小为11的统计数组每一个整数按照其值对号入座,同时,对应数组下标的元素进行加1操作。例如第1个整数是9,那么数组下标为9的元素加1。然后对每一个数字进行上面的操作之后得到以下数组:每一个下标位置的值代表数列中对应整数出现的次数。直接遍历数组,输出数组

2021-12-29 15:51:29 563

原创 堆 排 序

堆排序二叉堆的特性:最大堆的堆顶是整个堆中的最大元素;最小堆的堆顶是整个堆中的最小元素。以最大堆为例,如果删除一个最大堆的堆顶(并不是完全删除,而是跟末尾的节点交换位置),经过自我调整,第2大的元素就会被交换上来,成为最大堆的新堆顶。慢慢地进行这种删除,得到的序列就是一个从大到小的序列,而较大的一头先交换到了数组末尾一端,较小的则留在了数组头部一端。这样就实现了排序。堆排序算法的步骤:把无序数组构建成二叉堆。需要从小到大排序,则构建成最大堆;需要从大到小排序,则构建成最小堆。循环删除堆顶元素,替

2021-12-28 21:22:47 55

原创 优先队列(二叉堆的应用)

优先队列(二叉堆的应用)用最大堆来实现最大优先队列每一次入队操作就是堆的插入操作,每一次出队操作就是删除堆顶节点。上代码:public class PriorityQueue { private int[] array; private int size; public PriorityQueue(){ //队列初始长度32 array = new int[32]; } /** * 入队 * @para

2021-12-28 21:06:13 187

原创 二叉堆及其基本操作

二叉堆最大堆最大堆的任何一个父节点的值,都大于或等于它左、右孩子节点的值。最小堆最小堆的任何一个父节点的值,都小于或等于它左、右孩子节点的值。二叉堆的自我调整插入节点插入位置是完全二叉树的最后一个位置。然后慢慢上浮合适的位置,直到满足根节点都比孩子节点都小即可。删除节点删除的是处于堆顶的节点。把堆的最后一个节点10临时补到原本堆顶的位置。节点10和它的左、右孩子进行比较,和最小的一个交换即可。构建二叉堆把一个无序的完全二叉树调整为二叉堆,本质就是让所有非叶子

2021-12-28 21:00:13 274

原创 快速排序(二十世纪十大算法之一)

快速排序每一个轮回随机(或直接选第一个)选一个基准元素,让所有大于该基准元素移动到右边,所有小于该基准元素移动到左边,从而将数列拆分为两部分;继续对上述两部分子数列实施这种拆分,直到不可分为止。此种方法正是分治法的核心思想。在每一轮的比较和交换,需要将所有元素都遍历一遍,需要的时间复杂度是N;而这样的遍历是需要logN轮的,所以总的时间复杂度是O(NlogN)。需要完成整个过程,基准元素的选取和元素交换方式是重点。...

2021-12-28 19:48:06 290

原创 冒泡排序及其优化

冒泡排序相邻的两个元素比较大小,如果当前元素比右侧元素大的话就交换,否则不交换;总共排N-1个回合,每一个回合挑选出无序区中最大的元素;一个回合要比较N-1次,总共有N-1个回合,因此时间复杂度是N*N;最原始的版本(也是第一次学数据结构试图背下来的算法!) public static void sort(int array[]){ for(int i = 0; i < array.length - 1; i++) { for(

2021-12-26 20:12:14 82

原创 你以为创建对象只能new吗?其它的怎么能不知道呢

5种创建对象的方法。

2019-09-28 10:14:43 688

原创 View——属性动画

属性动画

2019-09-06 19:32:15 476

原创 View——滑动

View的6中滑动方式。跟随触控点进行滑动。

2019-09-06 18:30:00 96

原创 线程池

Java

2019-08-22 16:42:12 98

原创 Volley

适用于进行数据量不大但通信频繁的网络操作。

2019-08-21 21:14:55 120

原创 AsyncTask

处理耗时任务

2019-08-21 21:13:44 167

原创 Glide

最强大的图片加载库。

2019-08-21 21:12:46 72

原创 四大组件——服务(内附IntentService)

服务是“隐身”的Activity

2019-08-20 13:49:20 154

原创 四大组件——内容提供器

提供应用之间数据共享的接口。

2019-08-19 18:18:09 176

原创 四大组件——广播

全局大喇叭,可以启动本机其他应用中的activity。应用不需要打开就可以接受的通知。

2019-08-17 22:21:43 237

原创 节能版的活动——Fragment

在Activity轻量级的存在,当activity只用于展示界面的的时候它最好的替代方案。

2019-08-14 17:17:32 83

原创 组件之间的通信桥梁——Intent

四大组件之间的通信者和开启者

2019-08-14 14:08:33 220

原创 四大组件——Activity

Activity是APP的门面。

2019-08-14 12:04:36 99

原创 OkHttp3

最强大的网络访问框架,没有之一。

2019-08-09 15:19:44 223

空空如也

空空如也

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

TA关注的人

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