自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张洁的笔记

日常学习记录,水滴石穿

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

原创 mobilenet v1,v2,v3的理解

mobilenet的特点在于inference的速度非常快。拿ssd为例,如果mobilenet作为backbone的速度大概是vgg作为backnobe的3倍,因此它是可以在移动端落地的网络。但是凡事都有两面性,在相同的数据集下,比如今年公开的open image 数据集下,很多类别在100-200个epoch后,mobilenet的map通常要比vgg低20个点左右。接下来就详细说一下mob...

2019-06-09 17:14:26 10277 2

原创 CIELAB色差计算

CIE色差计算就是在之前Lab颜色空间进行的。色差一般指的是由于位置不同或者放大率不同所造成的颜色差异。而在图像处理领域,尤其是针对色彩的处理中,很重要的一点就是消除色差。那么接下来我们就讨论CIE色差公式的改进过程,每次改进的意义,以及公式的具体解释。...

2018-06-23 15:50:43 37009 14

原创 LSTM与RNN的比较

参考博客:[译] 理解 LSTM 网络之前提到了RNN,也提到了RNN在处理long term memory的时候存在缺陷,因此LSTM应运而生。LSTM是一种变种的RNN,它的精髓在于引入了细胞状态这样一个概念,不同于RNN只考虑最近的状态,LSTM的细胞状态会决定哪些状态应该被留下来,哪些状态应该被遗忘。下面来看一些RNN和LSTM内部结构的不同:RNNLSTM...

2018-04-14 17:11:12 54160 3

原创 faster RCNN/YOLO/SSD算法的比较

只要是做过物体检测(object detection)的人,都会对这三种算法比较熟悉,起码听说过。那么这三种算法各自有什么特点呢?为什么他们不能相互取代?接下来我们将慢慢分析。在介绍具体算法之前,先来看下常用的数据集pascal voc包含20类 其中,voc 07:9,963 张图片中包含了24,640个已标记物体 voc 12:测试数据集没有公开,在训练和验证数据集中的1154...

2018-03-24 21:44:03 57397 8

原创 数据增强(data augmentation)

数据增强(data augmentation)数据增强主要用来防止过拟合,用于dataset较小的时候。 之前对神经网络有过了解的人都知道,虽然一个两层网络在理论上可以拟合所有的分布,但是并不容易学习得到。因此在实际中,我们通常会增加神经网络的深度和广度,从而让神经网络的学习能力增强,便于拟合训练数据的分布情况。在卷积神经网络中,有人实验得到,深度比广度更重要。然而随着神经网络的加深,需...

2018-03-22 19:53:46 47070 8

原创 李沐——大模型时代下做科研的四个思路

比如作者团队的MixGen,因为在视觉领域数据增强非常有用,但在多模态中却很少有人用,因此作者吧图片-文本对用mixgen拓展,具体的方法为,图片就是两张图片mixup,文本是把两句话连接。个人认为分析类文章和综述文章都需要有个人比较新颖的观点,需要阅读大量文章做积累,数据集的构建,也需要综合考虑多种因素,但是这个方向是耗费资源最少的。而目前的思路可以是:找一个基础模型,设计一个特殊的模块,这个模块可以是为了特定任务也可以是通用任务,然后微调后对比实验效果与不微调的区别。2)调用已训练好的模型做应用。

2024-04-09 16:26:48 257

原创 Encoder、Decoder和Encoder-Decoder

首先LLM有3种架构:Encoder-only、Decoder-only、encode-decode。

2023-11-28 14:16:27 1211 1

原创 CLIP浅谈

CLIP是OpenAI在2021年2月发表的一篇文章,它的主要贡献有以下2点:1)将图像分类问题映射为了多模态问题,也就是说他的图片标签不再是一个单词类别,而是一段文字描述,例如:“A photo of {label}”;2)利用4亿的训练数据,将待分类的图片映射为了zero-shot问题,对于新来的数据,只需要把标签记录下来,就可以直接分类,而不需要重新训练。

2023-11-20 15:09:24 462

原创 Bert浅谈

首先,bert的创新点在于利用了双向transformer,这就跟openai的gpt有区别,gpt是采用单向的transformer,而作者认为双向transformer更能够融合上下文的信息。这里双向和单向的区别在于,单向只跟当前位置之前的tocken相连,双向与当前位置之后的tocken也有连接。跟ELMo相比的优势在于,transformer对特征的提取能力比lstm要强得多。

2023-11-17 15:43:36 735

原创 Word2Vec浅谈

word2vec是Google团队在2013年发表的一篇paper,当时一经问世直接将NLP领域带到了一个新的高度,在2018年bert被提出之前,word2vec一直是NLP算法工程师追捧的预训练词向量模型。Word2Vec是轻量级的神经网络,其模型仅仅包括输入层、隐藏层和输出层,模型框架根据输入输出的不同,主要包括CBOW和Skip-gram模型。就是多几个输入的one-hot向量的问题。首先,输入层是一个one-hot向量,具体细节请看前面的博客。,再经过一个矩阵,把低维向量映射回高维,得到输出层。

2023-11-14 11:09:26 308

原创 百川大模型微调

这里要注意,github里的命令要将template改为baichuan2,lora_target改为W_pack。仿照格式,增加自己的数据集。

2023-11-10 14:17:59 692 1

原创 one-hot浅谈

如果在文本分类或者图片标签分类的过程中有3类,猫,狗,羊,最简单的标签我们可以让猫是0,狗是1,羊是2,但这就有一个问题,如果算距离的话,猫和狗的距离是1,但猫和羊的距离是2,不符合类别之前相互独立的特点。因此我们就可以用一个矩阵来表示:猫用[1,0,0]表示,狗用[0,1,0]表示,羊用[0,0,1]表示;这样相互之间的距离都相等。如果预测的向量[0.8,0.1,0.1]那我们就可以认为是猫。

2023-11-09 15:47:35 74

原创 ChatGLM-中英对话大模型-6B试用说明

【代码】ChatGLM-中英对话大模型-6B试用说明。

2023-09-22 15:44:59 200

原创 facebook OPT试用

可能是试用的模型比较小,跟chatgpt的长篇大论的问答比,还是稍微弱了点。本次试用是在colab环境下完成的。其次,试用模型350m。

2023-03-30 19:20:31 702 1

原创 对于自动驾驶的当前基本认知

对于自动驾驶的当前认知

2023-03-13 16:25:35 130

原创 YOLO系列概述(yolov1至yolov7)

yolov2之后就到了yolov3,当时fpn的诞生,又进一步解决了小目标问题,由于对于小目标来说经过多层卷机之后feature可能就不见了或者很小了,那么就考虑到,浅层的特征范围还比较大,如果能把浅层特征和深层特征concat到一起,就既有了表层特征又有了语义特征,因为fpn的加入 yolov3取得了较好的性能。首先在backbone中,我们可以看到,其实作者改进的E-ELAN只是将原来4倍通道提高到了8倍,所以这也印证了我们之前说的,高通道有更强的特征表达能力。,c是class的类别数量。

2022-11-16 17:32:05 8977 1

原创 PyTorch中collate_fn的应用

对于分类没有问题,每张图片只对应一个类别,但是对于检测来说,每张图片对应的目标数量不一致,就会导致在组batch时,尺寸不一致的问题。这时候我们就要用到自定义的collate_fn。参考yolov3对于collate_fn的设计,只需要在bbox中增加一维来标注bbox属于第几张图片即可,这样返回images是四维,bboxes是两维。在目标检测中,我们经常会用到Dataset这个类,它主要是由三个函数构成。

2022-11-14 19:58:07 717

原创 VIT attention实现(paddle2.2)

# ViT Online Class# Author: Dr. Zhu# Project: PaddleViT (https://github.com/BR-IDL/PaddleViT)# 2021.11import paddleimport paddle.nn as nnpaddle.set_device('cpu')class Attention(nn.Layer): # TODO: 补全时,删除pass def __init__(self, embed_dim, nu

2021-11-30 19:44:57 1913

原创 VIT中PatchEmbedding和Mlp的实现(paddle2.2版本)

在PatchEmbedding中,我们设置patch的大小为77,输出通道数为16,因此原始2242243的图片会首先变成323216,这里暂且忽略batchsize,之后将3232拉平,变成1024*16在Mlp中,其实就是两层全连接层,该mlp一般接在attention层后面。首先将16的通道膨胀4倍到64,然后再缩小4倍,最终保持通道数不变。# ViT Online Class# Author: Dr. Zhu# Project: PaddleViT (https://github.com/B

2021-11-30 16:12:09 2928 1

原创 resnet18 paddle2.2实现

resnet的特点在于残差结构,可以有效的防止梯度消失。对x+f(x)求导,可以得到1+f’(x),所以梯度是常数。从工程实现上,可以得到的启示包括,目前的网络设计的基本卷积结构都是由一个卷积层+bn层+激活函数 构成的小模块。其他参数都是调优的结果。本文resnet18的实现是基于paddle2.2的版本import paddleimport paddle.nn as nn#paddle.set_device('cpu')class Identity(nn.Layer): def __i

2021-11-24 18:30:14 2424

原创 deeplabv3p 阅读笔记

摘要Spatial pyramid pooling module or encode-decoder structureare used in deep neural networks for semantic segmentation task. Theformer networks are able to encode multi-scale contextual information byprobing the incoming features with filters or pooli

2021-11-22 17:00:51 2647

原创 YoloX 阅读笔记

YoloX 阅读笔记摘要IntroductionYOLOX主干网FPNhead摘要We switch the YOLO detector to an anchor-free manner and conduct other advanced detection techniques, i.e., a decoupled head and the leading label assignment strategy SimOTA to achieve state-of-the-art results ac

2021-11-16 17:04:04 2155

原创 监控场景下基于图卷积神经网络的行人属性识别算法

本文是Pedestrian Attribute Recognition with Graph Convolutional Network in Surveillance Scenarios的译文。摘要监控场景下的行人属性识别是要预测一系列的属性标签,由于图像质量问题,外表的变化,以及不平衡的标签让他成为了一项很有挑战性的工作。在本文中,我们把它当成是多标签分类并且提出了一种新的基于图卷积神经的方法。模型由两部分组成,我们首先用CNN提取行人属性,这是图像处理中的通常做法。然后我们将属性通过词嵌入的方法构

2020-12-03 15:58:03 1514

原创 leetcode 31.下一个排列(python3)44ms

题目描述:实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。示例 1:输入:nums = [1,2,3]输出:[1,3,2]示例2:输入:nums = [3,2,1]输出:[1,2,3]示例3:输入:nums = [1,1,5]输出:[1,5,1]示例4:输入:nums = [1]输出:[1]解题思路:c

2020-11-20 15:55:59 152

原创 leetcode 30 串联所有单词的子串(python3) 1768ms

题目描述:给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。示例1:输入:s = “barfoothefoobarman”,words = [“foo”,“bar”]输出:[0,9]解释:从索引 0 和 9 开始的子串分别是 “barfoo” 和 “foobar” 。输出的顺序不重要, [9,0] 也

2020-11-17 11:13:02 237

原创 计算机视觉简述

目录1. 为什么要做计算机视觉2. 什么是计算机视觉3. 难点和挑战4. 发展历程5. 行业大牛6. 两大类任务7. state of the art为什么要做计算机视觉如果我们把数据分为结构化数据和非结构化数据,我们可以看到,以图像为代表的非结构化数据以指数级的方式增加,为了能“读懂”海量的非结构化数据,计算机视觉技术尤为重要。在没有计算机视觉之前,我们只能把图像当作是黑盒,我们只能读到图像的文件名、尺寸、大小以及图片格式。对里面的内容我们一无所知。当计算机视觉有了初步的发展

2020-11-13 10:25:58 2090

原创 leetcode 29.两数相除(python3)68ms

题目描述:给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2示例 1:输入: dividend = 10, divisor = 3输出: 3解释: 10/3 = truncate(3.33333…) = tru

2020-09-28 16:12:44 503

原创 多目标跟踪算法解读

目录一、多目标跟踪背景介绍 1.问题定义 2.难点 3.应用场景二、相关方法 1.Model free 方法 2. Tracking by detection 方法 1)离线方法 2)在线方法三、基准多目标跟踪背景介绍问题定义多目标跟踪是将视频中每一帧的物体都赋予一个id,并且得到每个id的行为轨迹,如图1所示。从代码的层次考虑,其输入为视频序列,输出为物体的

2020-09-28 14:29:43 13882 18

原创 leetcode 28. 实现 strStr()(python3) 48ms

题目描述:实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:示例2:输入: haystack = “aaaaa”, needle = “bba”输出: -1说明:说明:当 needle 是空字符串时,我们应当返

2020-09-14 15:43:13 132

原创 leetcode 27 移除元素(python3) 40ms

题目描述:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。示例2:给定 nums = [0,1,2,2

2020-09-14 10:52:18 159

原创 leetcode 26. 删除排序数组中的重复项(python3) 52ms

题目描述:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, 并且原

2020-09-14 09:37:43 115

原创 leetcode 25. K 个一组翻转链表(python3)60ms

题目描述:给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->1->4->5说明:你的算法只能使用常数的额外空间。你不能只是单纯的改变节点内

2020-09-11 17:37:22 302

原创 leetcode 24. 两两交换链表中的节点 (python3) 44ms

题目描述:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.解题思路:# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.n

2020-09-08 16:14:23 127

原创 leetcode 23.合并K个排序链表(python3) 148ms

题目描述:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6解题思路:思路借鉴:https://leetcode-cn.com/problems/merge-k-sorted-lists/solution/leetcode-23-he-bing-kge-pai-xu-lian-bi

2020-08-14 16:42:32 201

原创 leetcode 22.括号生成(python3) 44ms

题目描述:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例:输入:n = 3输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]解题思路:class Solution: def genParenthesis(self, a: int, b: int) -> List[str]: output = [] if a == 0 and b =

2020-08-06 15:23:10 173

原创 leetcode 21. 合并两个有序链表(python3) 56ms

题目描述:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解题思路:# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val =

2020-08-04 14:31:55 181

原创 leetcode 20. 有效的括号(python3) 36 ms

题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例一:输入: “()”输出: true示例二:输入: “()[]{}”输出: true示例三:输入: “(]”输出: false示例四:输入: “([)]”输出: false示例五:输入: “{[]}”输出: true解题思路

2020-07-29 18:10:31 121

原创 leetcode 19. 删除链表的倒数第N个节点(python) 40ms

问题描述:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?解题思路:# Definition for singly-linked list.# class ListNode:# def __init__(self

2020-07-29 17:08:45 127

原创 leetcode 18. 四数之和(python3)1632ms

题目描述:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[[-1, 0, 0, 1],[-2, -1, 1, 2],[-2, 0, 0, 2]]

2020-07-29 12:02:19 146

原创 leetcode 17. 电话号码的字母组合(python3) 52ms

题目描述:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].解题思路:class Solution: def letterCombinations(self, digits: str) -> List[str]: output = []

2020-07-23 17:20:26 171

空空如也

空空如也

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

TA关注的人

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