- 博客(68)
- 收藏
- 关注
原创 【论文笔记】Long Tail Learning via Logit Adjustment
重温了基于标签频率的逻辑调整,并将这种logit adjustment应用在训练前还是还是训练中。这种调整是支持原始的logit和主类之间的相对边界。
2023-03-01 14:44:27 1157
原创 【论文笔记】Distribution Alignment: A Unified Framework for Long-tail Visual Recognition
we develop an adaptive calibration function that enables us to adjust the classification scores for each data point. We then introduce a generalized re-weight method in the two-stage learning to balance the class prior, which provides a flexible and unifie
2023-03-01 11:56:55 282
原创 【论文笔记】Decoupling Representation and Classifier for Long-Tailed Recognition
现状:Existing solutions usually involve class-balancing strategies, e.g. by loss re-weighting, data re-sampling, or transfer learning from head- to tail-classes, but most of them adhere to the scheme of jointly learning representations and classifiers.
2023-02-28 17:17:09 488
原创 【论文阅读】Revisiting Long-tailed Image Classification: Survey and Benchmarks with New Evaluation Metrics
【基于当前许多真实世界场景中的数据分布都呈现长尾分布,因此,许多关于长尾分布的图像分类的成果被许多人所关注】【然而,他们通常评估一个平衡测试集或多个独立测试集的性能,都需要这些测试集具有与训练数据不同的分布。【当前测试数据可能存在相似的分布,现存评估测量无法客观反映出模型的泛化性能】
2023-02-20 16:14:19 591 1
原创 【论文阅读】Automated detection of Alzheimer disease using MRI images and deep neural networks- A review
Early detection of Alzheimer’s disease is crucial for deploying interventions and slowing the disease progression. The purpose of this survey is to provide an overview of recent research on deep learning models for Alzheimer’s disease diagnosis.The first
2023-02-08 00:47:26 162 1
原创 论文笔记 “General Multi-label Image Classification with Transformers”
摘要多标签图像分类是一个预测一张图中若干目标、属性以及其他实体所对应的标签语义。本文提出Classification Transformer (C-Trans) 网络来实现通用的多标签图像分类任务。这个网络利用Transformer来探索视觉特征和标签之间的复杂依赖关系。主要流程是,首先利用Transformer对图像进行特征编码,从而预测出三个东西,一个是目标标签集合,另一个是给定的masked 标签,以及卷积网络中所得到的视觉特征。在这三个东西中最重要的是对训练目标进行标签的mask。这个mask是以
2023-02-01 01:16:26 924 2
原创 带自己学paddle(五)
项目一 手写数字识别上文回顾,目前已经揭晓了l2正则化以及如何画图,这一章主要是为了重构代码,代码断点重续、增加动态图转静态图的操作,这两块将合并起来一起写,不多说,先上代码network.pyfrom paddle.nn.layer import Conv2D,MaxPool2D,Linearimport paddle.nn.functional as Fclass MNIST(paddle.nn.Layer): def __init__(self): super(MNIST,self).
2022-04-19 13:48:59 1740
原创 带自己学paddle(四)
项目一 手写数字识别上文回顾,目前已经揭晓了SGD以及GPU的配置方式,现在将介绍如何把画图函数以及正则化整进去l2 norm#各种优化算法均可以加入正则化项,避免过拟合,参数regularization_coeff调节正则化项的权重opt_norm=paddle.optimizer.Adam(learning_rate=1e-3,weight_decay=paddle.regularizer.L2Decay(coeff=1e-5),parameters=model.parameters())画
2022-04-17 23:26:41 603
原创 带自己学paddle (三)
项目一 手写数字识别上文回顾,目前已经揭晓了CNN、DataLoader、Dataset、SGD、CrossEntropy、Square_error_cost的使用方式,最后还有一点点首尾工作就完成了第一阶段初识框架1、优化器SGD随机梯度下降算法,每次训练少量数据,抽样偏差导致的参数收敛过程中震荡。opt=paddle.optimizer.SGD(learning_rate=0.01,parameters=model.parameters())Momentum给梯度下降的过程加入一定的“惯
2022-04-05 12:35:01 4043
原创 带自己学paddle(二)
项目一 手写数字识别上文回顾,利用单层神经网络回归数字,那必然是不行的,因此这一章节是提高模型的结构复杂度,来尝试提高准确率1、模型架构CNN网络架构登场,其实之前我一直都用pytorch,但是总想尝试新玩意,所以就玩玩paddle,看看他有什么区别import paddlefrom paddle.nn import Conv2D,MaxPool2D,Linearimport paddle.nn.functional as F class MNIST(paddle.nn.Layer): d
2022-04-04 08:56:25 670 1
原创 带自己学paddle系列(一)
项目一 手写数字识别做个小项目的目的是熟悉paddle基本框架以及如何导入数据所涉及到的paddle api1、模型架构Linear层的导入from paddle.nn import Linearclass Regressor(paddle.nn.Layer): def __init__(self): super(Regressor,self).__init__() self.fc=Linear(in_features=13,out_features=1) def forward(
2022-04-02 00:54:19 1311
原创 在加载theano框架时遇到的gcc加载问题
当在import theano 的时候,会报这个的错误:cc1.exe: sorry, unimplemented: 64-bit mode not compiled in不要怀疑,一定时你mingW没有安装好,我再找了一下午之后,终于再这个网页找到了答案思路https://stackoverflow.com/questions/33850090/compilation-issue-when-running-theano我的安装姿势是这样的:下载链接:https://udomain.dl.sour
2021-10-20 17:08:42 527
原创 Export to ONNX Record
First of all, we need weights belongs to our export model, for example resnet.pththen we load this weight and model structure by this code
2021-07-07 11:18:54 223
原创 YOLOV5代码解析(小白系列一)
yolov5 代码脚本解析1. train.py因为本人太菜了,所以此处就通过一行行debug,然后先记录整个运行逻辑,然后后面再一点点增补每个trick的原理。def main(opt): setlogging(RANK) if RANK in [-1,0]: print(colorstr('train: ')+', '.join(f'{k}={v}' for k,v in vars(opt).items())) check_git_status() check_requiremen
2021-07-02 17:31:18 7675 7
原创 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums = [1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4] 也是正确的答案之一辅助法:class Solution(object): def exchange(self, nums): """ :type nums: List[int] :rtype: List[int]
2021-06-26 20:26:09 78
原创 剑指 Offer 28. 对称的二叉树
题目请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ 2 2/ \ / 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1/ 2 2\ 3 3示例1:输入:root=[1,2,2,3,4,4,3]输出:true示例2:输入:root=[1,2,2,null,3,null,3]输出:false思
2021-06-25 23:44:32 116
原创 剑指 Offer 27. 二叉树的镜像
题目请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入:4/ 2 7/ \ / 1 3 6 9镜像输出: 4/ 7 2/ \ / 9 6 3 1示例1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]思路:其实和互换变量一样,通过中间变量存储左子树的变量才能做镜像# Definition for a binary tree node.# class TreeNode(o
2021-06-23 22:32:52 71 2
原创 剑指 Offer 26. 树的子结构
题目输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A:3/ 4 5/ 1 2给定的树 B:4/1示例1:输入:A = [1,2,3], B = [3,1]输出:false思路:1.B为空,默认是A的子树2.A为空,或者A的根节点和B的根节点不同,False (递归头–出口)3.写判断循环函数,判断两棵树的左节点和右节点作为跟节点时是否符合1、2的情况
2021-06-23 21:43:27 60
原创 剑指 Offer 16. 数值的整数次方
题目实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。示例1:输入:x = 2.00000, n = 10输出:1024.00000示例2:输入:x = 2.10000, n = 3输出:9.26100思路:1.将幂次n转换为二进制2.当遇到是小数形式的时候,先进行逆置转换3.判断n是奇数还是偶数,即二进制最后一位是否为1,如果是,则xres, 否则只需要x=x,然后n右移4.返回res因为这里直接累乘,会爆,所以
2021-06-22 22:16:29 63
原创 剑指 Offer 25. 合并两个排序的链表
题目输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4这就是思路就是建立一个中间变量来存储两个链表对应位置较小的数字;因为题目表示要返回一个链表,所以连起来的思路就是搭建一个伪链表头,然后一个移动节点指向它,然后通过遍历两个链表,把较小的数字存储在这个移动节点,最后返回表头python:# Definition for singl
2021-06-22 20:37:59 75
原创 剑指 Offer 15. 二进制中1的个数
题目请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。示例1输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’。示例2输入:00000000000000000000000010000000输出:1解释:输入的二进制串 00
2021-06-20 09:26:28 85
原创 剑指 Offer 13. 机器人的运动范围
题目地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?示例1:输入:m = 2, n = 3, k = 1输出:3示例2:输入:m =
2021-06-19 10:05:12 62
原创 剑指 Offer 12. 矩阵中的路径
题目给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。例如,在下面的 3×4 的矩阵中包含单词 “ABCCED”(单词中的字母已标出)。示例1:输入:board = [[“A”,“B”,“C”,“E”],[“S”,“F”,“C”,“S”],[“A”,“D
2021-06-19 08:23:18 87
原创 剑指 Offer 11. 旋转数组的最小数字
题目把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例1:输入:[3,4,5,1,2]输出:1示例2:输入:[2,2,2,0,1]输出:0这里的思路是找出旋转点,旋转点就是最小值,而且整体数组是一个递增排序的数组。那么此处采用二分法来找python 版本class Solution(object): de
2021-06-14 11:01:29 127 1
原创 剑指 Offer 10- II. 青蛙跳台阶问题
题目一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例:输入:n = 7输出:21示例:输入:n = 0输出:1示例:输入:n = 2输出:2这题本质还是斐波那契数列,初始值为n=0===>1n=1===>1n=2===>2 (1,1,或2)那么我们就知道 所以循环起点应该是从1开始,因为1+2
2021-06-13 09:57:45 65
原创 剑指 Offer 10- I. 斐波那契数列
题目写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例1:输入:n = 2输出:1递归法:python版本class
2021-06-12 20:38:43 58
原创 剑指 Offer 09. 用两个栈实现队列
题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]输入:[“CQueue”,“deleteHead”,“appendTail”,“appendTa
2021-06-11 21:11:45 65
原创 剑指 Offer 07. 重建二叉树
题目输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。给出:前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回:3/ 9 20/ 15 7其实就是【3,9,20,null,null,15,7】递归法:记录所有节点的索引,用字典或者unordered_map存储找到根节点-》分开左右子树-》递归遍历,返回节点递归出口,左边界大于右边界pyt
2021-06-11 00:43:23 97 3
原创 剑指 Offer 06. 从尾到头打印链表
题目输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。如:输入:head = [1,3,2]输出:[2,3,1]c++的三种解法:1、递归因为它的数据结构是以结构体作为定义链表结构,所以解法是,head->next。。。。head=None,说明head到底了,然后再将指针指向的数推回新创建的vector/** * Definition for singly-linked list. * struct ListNode { * int val; *
2021-06-09 21:55:29 71
原创 剑指 Offer 05. 替换空格
题目请实现一个函数,把字符串 s 中的每个空格替换成"%20"。例子:输入:s = “We are happy.”输出:“We%20are%20happy.”这说实在用python做是最简单,不过为了追求多样性解法,我还是探索了一下c++的数组迁移的思路python 解法:class Solution(object): def replaceSpace(self, s): """ :type s: str :rtype: str
2021-06-08 23:51:05 69
原创 剑指offer 4.二维数组中的查找
题目在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 target = 5,返回 true。给
2021-06-07 22:03:02 118
原创 剑指offer03: 数组重复的数字
题目找出数组中重复的数字在一个长度为n 的数组nums里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。输入:[2 , 3., 1, 0 ,2,5,3]输出:2 或 3哈希表解法建立哈希表,把重复元素返回,时间复杂度为o(n)c++版本:#include<unordered_map>#include<iostream>using namesapce std;c
2021-06-06 16:34:45 61
原创 Cascade rcnn在linux环境下运行的调试记录(pytorch版本)
这个cascade RCNN的调试是真的折磨人,对于新手的我,查了各种各样奇奇怪怪的资料,终于调通了。以此记录,如果能帮助到大家,那就更好了。调试步骤第一步 下载工程第二步 观察setup.py第三步 配置环境报错记录第一步 下载工程我的工程目录是这样的此处我们默认大家可以正确导入数据集,因为此处主要记录的是如何生成nms里面调用的_C库。第二步 观察setup.py用命令行进入 到 lib文件夹那么我们此时,先别急着运行什么,我们先打开setup.py,看看里面的头文件结构是什么从这
2021-04-08 10:10:41 1241 7
原创 leedcode-哈希表篇(7)
242. 有效的字母异位词题目给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例1:输入: s = "anagram", t = "nagaram"输出: true示例2:输入: s = "rat", t = "car"输出: false我的思路是从两方面入手,判断两个字符串长度是否一样,通过ascii码来判断,同时利用ascii码之和判断在长度一样的情况下,字母是否一样,可以筛选掉一部分字母不同的情况;另外考虑到有可能在长度一样,字母不同而恰好asc
2021-03-08 09:31:22 72
原创 leedcode-哈希表篇(6)
350.两个数组的交集2题目给定两个数组,编写一个函数来计算它们的交集。示例1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]这道题我也是一次过不看答案就做出来了,不过方法有点暴力,创建了两个字典,存储两个数组的词频,然后遍历nums1映射的字典,找出它的key值是否在nums2中,并比对nums2映射的字典中该key对应的value,选出最小的
2021-03-07 15:59:15 62
原创 leedcode-哈希表篇(5)
349.两个数组的交集题目给定 两个数组,编写一个函数来计算它们的交集。示例1:输入:nums1=[1,2,2,1], nums2=[2,2]输出:[2]示例2:输入:nums1=[4,9,5],nums2=[9,4,9,8,4]输出:[9,4]这道题我也是一次过就做出来了,太开心了。思路是nums2作为目标数组,nums1作为查询数组,将nums1存入集合,去除重复元素,那么剩下再用num2去遍历,这样就可以找到交集元素。class Solution(object): d
2021-03-06 21:16:04 87
原创 leedcode-哈希表篇(4)
594. 最长和谐子序列题目和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。现在,给你一个整数数组 nums ,请你在所有可能的子序列中找到最长的和谐子序列的长度。数组的子序列是一个由数组派生出来的序列,它可以通过删除一些元素或不删除元素、且不改变其余元素的顺序而得到。class Solution(object): def longestConsecutive(self, nums): """ :type nums: List[int]
2021-03-06 10:36:08 75
原创 leedcode-哈希表篇(3)
594. 最长和谐子序列题目和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。现在,给你一个整数数组 nums ,请你在所有可能的子序列中找到最长的和谐子序列的长度。数组的子序列是一个由数组派生出来的序列,它可以通过删除一些元素或不删除元素、且不改变其余元素的顺序而得到。示例输入:nums=[1,3,2,2,5,2,3,7]输出:5解释:最长和谐子序列是[3,2,2,2,3]这道题我一开始的思路是做一个字典,把不重复的元素存进去,然后将keys相差1的key取出来,然后
2021-03-04 09:41:20 146 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人