CSRMS
CSRMS 用于视觉表征学习的类级结构化关系建模与平滑 (MM2023) 论文地址:https://ercdm.sdu.edu.cn/__local/7/AC/70/7E4948C4761839F62E3958CE772_043AE854_2B459A.pdf 代码地址:https://github.com/czt117/CSRMS 个人理解这个像是一个知识总结的过程。首先通过特征提取获得特征图,这个过程可以类比我从书本上学习知识的过程,提取出有用的知识,然后通过聚类算法对特征图进行分簇,就相当于把学到的知识进行总结的过程,但是总会有一些比较相近的知识容易被搞混,这个就是类间相似性和类内多样性,再着重对这一块进行处理,使得对知识的掌握更加透彻。 名词解释: 课程构建(Curriculum...
Transformer
Attention Is All You Need 个人理解 transformer 编码器是把人能理解的东西转化成计算机能理解的东西。对比与论文写作的这个过程来说,位置编码就是作者写这篇论文的顺序,反复打磨论文这个过程就对应着这个n个编码器,第一遍的初稿相当于第一个编码器,可能效果不尽人意。把人能理解的东西编码成论文。到读者来说就是解码的过程,每一次读论文就是一次解码的过程,你必须多次解码才能对这个论文理解的更加透彻,还要时刻注意mask操作,写作时要时刻注意读者理解到什么地步,读者的阅读是按顺序进行的。q就是你感兴趣的地方,k就是论文中的关键点。 Transformer 是一种基于注意力机制(Attention...
基于深度学习的图像分类
使用ResNet18预训练模型 由于笔记本性能太差,所以在服务器上运行的,显卡配置为4090。经大量实验判断,初始学习率为0.01最后效果较差,所以初始学习率应设为0.001。全部代码代码已上传到:https://github.com/wp-a/-CIFAR10-.git 库函数导入 123456789import matplotlib.pyplot as pltimport torchimport torch.nn as nnimport torchvisionimport torchvision.transforms as transformsfrom sklearn.metrics import confusion_matrix, classification_reportfrom itertools import chainimport multiprocessingdevice = torch.device("cuda:0" if torch.cuda.is_available() else...
代码随想录--动态规划
代码随想录--动态规划
基础知识--排序算法
排序算法详解 排序算法是计算机科学中最基础也是最重要的算法之一。本文将详细介绍几种常见的排序算法,包括它们的实现原理、时间复杂度和适用场景。本文所有代码示例使用 C++ 实现,需要包含以下头文件: 123#include <vector>#include <algorithm>using namespace std; 1. 冒泡排序 (Bubble Sort) 冒泡排序是最简单的排序算法之一,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。 实现原理 时间复杂度:O(n²) 空间复杂度:O(1) 稳定性:稳定 实现代码 1234567891011121314151617void bubbleSort(vector<int>& arr) { int n = arr.size(); bool swapped; for(int i = 0; i < n-1; i++) { swapped = false; // 每一轮比较 ...
代码随想录--图论
代码随想录--图论
基础知识--图论
基础知识--图论
代码随想录--回溯算法
代码随想录--回溯算法
基础知识--回溯算法
回溯算法 回溯算法 是一种通过试错的方式寻找问题解的算法。它尝试逐步构建解决方案,如果在构建过程中的某一步发现当前的构建方案不可行,它会回溯(即取消最近一步的选择),然后尝试其他的可能性。这个过程就像是在迷宫中探索路径,当遇到死路时就退回上一个岔路口,选择另一条路继续前进。 核心思想 试探性选择: 在每一步,都面临多个选择,回溯算法会先选择其中一个进行尝试。 逐步构建: 它一步一步地构建可能的解。 可行性判断 (约束条件): 在每一步构建后,都会检查当前的部分解是否满足问题的约束条件。 回溯 (撤销选择): 如果发现当前部分解不可行,则撤销上一步的选择,回到之前的状态,并尝试其他的选择。 终止条件: 当找到一个完整的可行解,或者当所有可能的选择都尝试完毕且没有找到解时,算法终止。 基本步骤 定义问题的解空间: 确定问题的解可能存在的所有可能组合。例如,对于一个排列问题,解空间就是所有可能的排列。 确定约束条件: 定义问题解必须满足的条件。这些条件用于判断当前构建的部分解是否有效。 选择搜索策略 (通常是深度优先搜索 DFS): ...
基础知识--线性表
线性表 线性表是⼀对⼀的逻辑结构,线性表中除了表头元素每个元素有且仅有唯⼀⼀个前驱元素,除了表尾元素,每个结点都有唯⼀⼀个后继节点。 顺序存储(顺序表) 存取 顺序表随机存取,存取某个元素的时间复杂度为O(1)。 查找 平均时间复杂度O(n) 插入删除 平均时间复杂度O(n),删除插⼊元素需要移动⼤量元素。(如果是删除最后⼀个元素或者在最后⼀个节点后⾯插⼊⼀个新的节点,则复杂度为O(1),因为不需要移动元素) 链式存储(链表) 链表因其链状的结构,能方便地删除、插入数据,操作次数是 O(1)。但也因为这样,寻找、读取数据的效率不如数组高,在随机访问数据中的操作次数是 O(n)。 单链表 单链表的基本组成单元是节点 (Node)。 每个节点通常包含两个主要部分: 数据域 (Data): 用于存储实际的数据元素。 数据域可以是任何数据类型,例如整数、浮点数、字符、字符串,甚至更复杂的数据结构。 指针域 (Pointer) 或 下一个节点指针 (Next Pointer): 用于存储指向链表中下一个节点的地址(或引用)。 对于单链表,每个节点只有一个指针,指向它后面的节点。 ...





