自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 秃姐学AI系列之:样式迁移 + 代码实现

损失函数由内容损失风格损失和全变分损失3部分组成。风格迁移常用的损失函数由3部分组成:内容损失使合成图像与内容图像在内容特征上接近;风格损失令合成图像与风格图像在风格特征上接近;全变分损失则有助于减少合成图像中的噪点。我们可以通过预训练的卷积神经网络来抽取图像的特征,并通过最小化损失函数来不断更新合成图像来作为模型参数。我们使用格拉姆矩阵表达风格层输出的风格。

2024-11-14 21:56:01 931

原创 秃姐学AI系列之:GRU——门控循环单元 | LSTM——长短期记忆网络

关于RNN的两个改进网络:GRU和LSTM

2024-11-07 17:35:39 1366

原创 秃姐学AI系列之:FCN + 代码实现

FCN详解

2024-10-23 19:58:58 755

原创 秃姐学AI系列之:语义分割 + 数据集 | 转置卷积 + 代码

语义分割详解,以及用于语义分割的一个小处理

2024-10-22 22:36:36 901

原创 代码随想录算法day43 | 图论part01 | 图论理论基础,深搜理论基础,98. 所有可达路径,广搜理论基础

以上知识点 大家先有个印象,图论是非常庞大的知识体系,上面的内容还不足以概括图论内容,仅仅是理论基础而已。在图论章节会深入讲解 深度优先搜索(DFS)、广度优先搜索(BFS)、并查集、拓扑排序、最小生成树系列、最短路算法系列等等。当然广搜还有很多细节需要注意的地方,后面会针对广搜的题目还做针对性的讲解。因为在理论篇讲太多细节,可能会让刚学广搜的朋友越看越懵,所以细节方面针对具体题目在做讲解。本篇我们重点讲解了广搜的使用场景,广搜的过程以及广搜的代码框架。

2024-10-15 12:24:04 964

原创 代码随想录算法day42 | 单调栈part02 | 42. 接雨水,84.柱状图中最大的矩形

力扣题目链接(opens new window)接雨水问题在面试中还是常见题目的,有必要好好讲一讲。深度讲解如下三种方法:本题暴力解法也是也是使用双指针。首先要明确,要按照行来计算,还是按照列来计算。按照行来计算如图: 按照列来计算如图: 一些同学在实现的时候,很容易一会按照行来计算一会按照列来计算,这样就会越写越乱。个人倾向于按照列来计算,比较容易理解,接下来看一下按照列如何计算。首先,如果按照列来计算的话,宽度一定是1了,我们再把每一列的雨水的高度求出来就可以了。可以看出每一列雨水的高度,取决于该列左侧

2024-10-14 17:56:55 997

原创 秃姐学AI系列之:SSD代码实现

现在,我们就可以按如下方式定义完整的模型TinySSD了。# setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的# 若不存在会创建并赋值# 即赋值语句self.blk_i=get_blk(i)# getattr(self,'blk_%d'%i)即访问self.blk_i我们创建一个模型实例,然后使用它对一个256×256像素的小批量图像X执行前向传播。如本节前面部分所示,第一个模块输出特征图的形状为32×32。

2024-10-12 00:00:35 1020

原创 代码随想录算法day41 | 单调栈part01 | 739. 每日温度,496.下一个更大元素 I,503.下一个更大元素II

题目说如果不存在对应位置就输出 -1 ,所以result数组如果某位置没有被赋值,那么就应该是是 -1,所以就。

2024-10-09 13:31:07 806

原创 代码随想录算法day40 | 动态规划算法part13 | 647. 回文子串,516.最长回文子序列

力扣题目链接(opens new window)两层 for 循环,遍历区间起始位置和终止位置,然后还需要一层遍历判断这个区间是不是回文。所以时间复杂度:O(n^3)动规五部曲:如果大家做了很多这种子序列相关的题目,在定义dp数组的时候 很自然就会想题目求什么,我们就如何定义dp数组。绝大多数题目确实是这样,不过本题如果我们定义,dp[i] 为下标 i 结尾的字符串有 dp[i] 个回文串的话,我们会发现很难找到递归关系。dp[i] 和 dp[i-1] ,dp[i + 1] 看上去都没啥关系。所以我们要看回

2024-09-25 14:06:38 928

原创 秃姐学AI系列之:Pytorch的多GPU炼丹

无敌全的关于Pytorch上进行并行处理的原理+代码示例!

2024-09-24 17:15:04 1234 1

原创 代码随想录 | 编辑距离问题总结

word2[j - 1]),此时就需要编辑了,如何编辑呢?操作一:word1增加一个元素,使其word1[i - 1]与word2[j - 1]相同,那么就是以下标i-2为结尾的word1 与 i-1为结尾的word2的最近编辑距离 加上一个增加元素的操作。即操作二:word2添加一个元素,使其word1[i - 1]与word2[j - 1]相同,那么就是以下标i-1为结尾的word1 与 j-2为结尾的word2的最近编辑距离 加上一个增加元素的操作。即。

2024-09-24 14:44:04 644

原创 代码随想录算法day39 | 动态规划算法part12 | 115.不同的子序列,583. 两个字符串的删除操作,72. 编辑距离

相对于,本题有难度了,感受一下本题和392.判断子序列的区别。给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE" 是 "ABCDE" 的一个子序列,而 "AEC" 不是)题目数据保证答案符合 32 位带符号整数范围。这道题目如果不是子序列,而是要求连续序列的,那就可以考虑用KMP。相对于之前的392.判断字序列。

2024-09-24 14:31:06 1027

原创 秃姐学AI系列之:并行计算 & 分布式计算

并行计算——Parallel Computing:又称 平行计算,是指一种能够让多条指令同时进行的计算模式,可分为时间并行和空间并行。时间并行:即利用多条流水线同时作业空间并行:是指使用多个处理器执行并发计算,以降低解决复杂问题所需要的时间。并行计算是指同时使用多种计算资源解决计算问题的过程。为执行并行计算,计算资源应包括一台配有多处理机(并行处理)的计算机、一个与网络相连的计算机专有编号,或者两者结合使用。并行计算主要目的在于三个方面:将工作分离成离散部分,有助于同时解决;

2024-09-23 16:10:45 1736

原创 代码随想录算法day38 | 动态规划算法part11 | 1143.最长公共子序列,1035.不相交的线,53. 最大子序和,392.判断子序列

看到代码大家也可以发现其实就是求两个字符串的最长公共子序列,但如果没有做过1143.最长公共子序列,本题其实还有很有难度的。大家会发现一个正确的刷题顺序对算法学习是非常重要的!这道题目用贪心也很巧妙,但有一点绕,需要仔细想一想。动规的解法还是很直接的。这道题目算是编辑距离的入门题目(毕竟这里只是涉及到减法),也是动态规划解决的经典题型。这一类题都是题目读上去感觉很复杂,模拟一下也发现很复杂,用动规分析完了也感觉很复杂,但是最终代码却很简短。

2024-09-23 16:00:03 870

原创 秃姐学AI系列之:目标检测的常用算法

R-CNN是最早、也是最有名的一类基于锚框和CNN的目标检测算法——对图像选取若干预测锚框,使用卷积神经网络对每个预测锚框执行前向传播以抽取其特征,然后再用这些特征来预测提议区域的类别和边界框。Fast R-CNN 对 R-CNN 的一个主要改进:只对整个图像做卷积神经网络的前向传播。它还引入了兴趣区域汇聚层(RoI Pooling),从而为具有不同形状的兴趣区域抽取相同形状的特征。

2024-09-22 21:16:12 860

原创 秃姐学AI系列之:目标检测(物体检测) + 边缘框代码实现 | 锚框 + 代码实现

物体检测识别图片里的多个物体的类别和位置位置通常用边缘框表示从两角表示法转换为中心宽度表示法,而反之亦然。输入参数boxes可以是长度为4的张量,也可以是形状为(n,4)的二维张量,其中n是边界框的数量。"""从(左上,右下)转换到(中间,宽度,高度)"""cx = (x1 + x2) / 2 # 中间就是左上右下的x轴取平均w = x2 - x1 # 一减就可以"""从(中间,宽度,高度)转换到(左上,右下)"""

2024-09-19 21:38:54 1026

原创 代码随想录算法day37 | 动态规划算法part10 | 300.最长递增子序列,674. 最长连续递增序列,718. 最长重复子数组

本题中,正确定义dp数组的含义十分重要。dp[i]表示 i 之前包括 i 的以 nums[i] 结尾的最长递增子序列的长度为什么一定表示 “以nums[i]结尾的最长递增子序” ,因为我们在做递增比较的时候,如果比较 nums[j] 和 nums[i] 的大小,那么两个递增子序列一定分别以 nums[j] 为结尾和 nums[i] 为结尾, 要不然这个比较就没有意义了,不是尾部元素的比较那么 如何算递增呢。

2024-09-19 14:01:42 1204

原创 代码随想录算法day36 | 动态规划算法part09 | 188.买卖股票的最佳时机IV,309.最佳买卖股票时机含冷冻期,714.买卖股票的最佳时机含手续费

本题是的进阶版给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入:k = 2, prices = [2,4,1]输出:2 解释:在第 1 天 (股票价格 = 2) 的时候买入,在第 2 天 (股票价格 = 4) 的时候卖出,这笔交易所能获得利润 = 4-2 = 2。

2024-09-18 14:42:14 803

原创 代码随想录算法day35 | 动态规划算法part08 | 121. 买卖股票的最佳时机,122.买卖股票的最佳时机II,123.买卖股票的最佳时机III

如果dp[1]取dp[0] - prices[i],今天买入股票,那么dp[2] = max(dp[2], dp[1] + prices[i]);所以 dp[4][4] 已经包含了 dp[4][2] 的情况。那么第 i 天持有股票即 dp[i][0],如果是第 i 天买入股票,所得现金就是昨天不持有股票的所得现金 减去今天的股票价格 即:dp[i - 1][1] - prices[i]。那么 dp[i][1] 究竟选 dp[i-1][0] - prices[i],还是dp[i - 1][1]呢?

2024-09-17 22:34:02 1145

原创 代码随想录算法day34 | 动态规划算法part07 | 198.打家劫舍,213.打家劫舍II,337.打家劫舍III

打家劫舍是DP解决的经典题目,这道题也是打家劫舍入门级题目,后面我们还会变种方式来打劫的。成环之后还是难了一些的, 不少题解没有把“考虑房间”和“偷房间”说清楚。这就导致大家会有这样的困惑:情况三怎么就包含了情况一了呢?本文图中最后一间房不能偷啊,偷了一定不是最优结果。所以我在本文重点强调了情况一二三是“考虑”的范围,而具体房间偷与不偷交给递推公式去抉择。这样大家就不难理解情况二和情况三包含了情况一了。这道题是树形DP的入门题目,通过这道题目大家应该也了解了,所谓树形DP就是在树上进行递归公式的推导。

2024-09-14 18:32:33 1165

原创 代码随想录 | 背包问题总结

这篇背包问题总结篇是对背包问题的高度概括,讲最关键的两部:递推公式和遍历顺序,结合力扣上的题目全都抽象出来了。而且每一个点,我都给出了对应的力扣题目。关于多重背包,力扣上还没有多重背包的题目,也不是面试考察的重点。本篇总结出来的内容都掌握的话,可以说对背包问题理解的就很深刻了,用来对付面试中的背包问题绰绰有余!背包问题总结:这个图是代码随想录知识星球 (opens new window)海螺人 (opens new window),所画结的非常好,分享给大家。

2024-09-13 16:58:05 873

原创 代码随想录算法day33 | 动态规划算法part06 | 322. 零钱兑换,279.完全平方数,139.单词拆分,关于多重背包

细心的同学看网上的题解,可能看一篇是遍历背包的for循环放外面,看一篇又是遍历背包的for循环放里面,看多了都看晕了,到底两个for循环应该是什么先后关系。这也是学习动态规划的苦恼所在,有的时候递推公式很简单,难在遍历顺序上!但最终又可以稀里糊涂的把题目过了,也不知道为什么这样可以过,反正就是过了。本题是要求最少硬币数量,硬币是组合数还是排列数都无所谓!所以两个for循环先后顺序怎样都可以!

2024-09-13 16:32:24 1197

原创 秃姐学AI系列之:实战Kaggle比赛:狗的品种识别(ImageNet Dogs)

在这里,我们选择预训练的ResNet-34模型,我们只需重复使用此模型的输出层(即提取的特征)的输入。然后,我们可以用一个可以训练的小型自定义输出网络替换原始输出层,例如堆叠两个完全连接的图层。因此,我们可以使用 微调中讨论的方法在完整ImageNet数据集上选择预训练的模型,然后使用该模型提取图像特征,以便将其输入到定制的小规模输出网络中。在计算损失之前,我们首先获取预训练模型的输出层的输入,即提取的特征。的处理一样,即从原始训练集中拆分验证集,然后将图像移动到按标签分组的子文件夹中。

2024-09-11 22:33:50 1157 1

原创 代码随想录算法day32 | 动态规划算法part05 | 完全背包,518. 零钱兑换 II, 377. 组合总和 Ⅳ,70. 爬楼梯 (进阶)

细心的同学可能发现,我说的都是对于纯完全背包问题,其for循环的先后循环是可以颠倒的!但如果题目稍稍有点变化,就会体现在遍历顺序上。如果问装满背包有几种方式的话?那么两个for循环的先后顺序就有很大区别了,而leetcode上的题目都是这种稍有变化的类型。这里又可以出一道面试题了,就是纯完全背包,要求先用二维dp数组实现,然后再用一维dp数组实现,最后再问,两个for循环的先后是否可以颠倒?为什么?这个简单的完全背包问题,估计就可以难住不少候选人了。本题的递推公式,其实我们在494.目标和。

2024-09-11 11:47:58 864

原创 秃姐学AI系列之:实战Kaggle比赛:图像分类(CIFAR-10)

模型直接用了一个ResNet-18return net# lr_period,lr_decay:学习率下降的一种方法# lr_period:每隔多少了epoch# lr_decay:下降多少(0.5:减半)lr_decay):# 调整lr 把decay值*lr# 多GPU训练# 为了展示 画图用的 正常训练不需要None))# 每个epoch之后更新一下lr。

2024-09-10 22:50:02 944

原创 秃姐学AI系列之:微调 + 代码实现

迁移学习将从源数据集中学到的知识迁移到目标数据集,微调是迁移学习的常见技巧。微调通过使用在大数据上得到的预训练好的模型来初始化模型权重来完成提升精度预训练模型质量很重要除输出层外,目标模型从源模型中复制所有模型设计及其参数,并根据目标数据集对这些参数进行微调。但是,目标模型的输出层需要从头开始训练。通常,微调参数使用较小的学习率,而从头开始训练输出层可以使用更大的学习率。微调通常速度更快、精度更高我们使用在ImageNet数据集上预训练的ResNet-18作为源模型。在这里,我们指定。

2024-09-10 21:12:18 1457

原创 代码随想录算法day31 | 动态规划算法part04 | 1049. 最后一块石头的重量 II,494. 目标和,474.一和零

本题就和416. 分割等和子集很像力扣题目链接(opens new window)有一堆石头,每块石头的重量都是正整数。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x

2024-09-10 16:39:16 1010

原创 秃姐学AI系列之:数据增广 + 代码实现

图像增广基于现有的训练数据生成随机图像,来提高模型的泛化能力。为了在预测过程中得到确切的结果,我们通常对训练样本只进行图像增广,而在预测过程中不使用带随机操作的图像增广。深度学习框架提供了许多不同的图像增广方法,这些方法可以被同时应用。常见的图片增广包括反转、切割、变色。

2024-09-09 23:24:42 821

原创 代码随想录算法day30 | 动态规划算法part03 | 01背包问题 二维 ,01背包问题 一维,416. 分割等和子集

背包问题 是动态规划里的经典类型题目,大家要细细品味。可能有的同学并没有注意到 初始化 和 遍历顺序的重要性,我们后面做力扣上背包面试题目的时候,大家就会感受出来了。在一维dp数组中,dp[j] 表示:容量为 j 的背包,所背的物品价值可以最大为 dp[j]。以上的讲解可以开发一道面试题目(毕竟力扣上没原题)。要求先实现一个纯二维的01背包,如果写出来了,然后再问为什么两个for循环的嵌套顺序这么写?反过来写行不行?再讲一讲初始化的逻辑。

2024-09-09 15:00:54 1192

原创 代码随想录算法day29 | 动态规划算法part02 | 62.不同路径,63. 不同路径 II

本题是62.不同路径的障碍版,整体思路大体一致。但就算是做过62.不同路径,在做本题也会有感觉遇到障碍无从下手。其实只要考虑到,遇到障碍dp[i][j]保持0就可以了。也有一些小细节,例如:初始化的部分,很容易忽略了障碍之后应该都是0的情况。

2024-09-04 18:47:16 1127

原创 秃姐学AI系列之:多GPU并行 + 代码实现

当一个模型能用单卡计算时,通常使用数据并行拓展到多卡上模型并行则用在超大模型上有多种方法可以在多个GPU上拆分深度网络的训练。拆分可以在层之间、跨层或跨数据上实现。前两者需要对数据传输过程进行严格编排,而最后一种则是最简单的策略。数据并行训练本身是不复杂的,它通过增加有效的小批量数据量的大小提高了训练效率。在数据并行中,数据需要跨多个GPU拆分,其中每个GPU执行自己的前向传播和反向传播,随后所有的梯度被聚合为一,之后聚合结果向所有的GPU广播。小批量数据量更大时,学习率也需要稍微提高一些。

2024-09-03 23:05:30 1213

原创 代码随想录算法day28 | 动态规划算法part01 | 理论基础、509. 斐波那契数、70. 爬楼梯、 746. 使用最小花费爬楼梯

然后再写代码,如果代码没通过就打印dp数组,看看是不是和自己预先推导的哪里不一样。如果打印出来和自己预先模拟推导是一样的,那么就是自己的递归公式、初始化或者遍历顺序有问题了。如果和自己预先模拟推导的不一样,那么就是代码实现细节有问题。

2024-09-03 11:18:14 1303

原创 代码随想录 | 贪心算法总结

这个图是代码随想录知识星球 (opens new window)海螺人 (opens new window)所画,总结的非常好,分享给大家。

2024-08-30 18:09:30 417

原创 代码随想录算法day27 | 贪心算法part05 | 56. 合并区间,738.单调递增的数字,968.监控二叉树

本题只要想清楚个例,例如 98,一旦出现 strNum[i - 1] > strNum[i] 的情况(非单调递增),首先想让 strNum[i - 1] 减一,strNum[i] 赋值9,这样这个整数就是 89。就可以很自然想到对应的贪心解法了。想到了贪心,还要考虑遍历顺序,只有从后向前遍历才能重复利用上次比较的结果。最后代码实现的时候,也需要一些技巧,例如用一个 flag 来标记从哪里开始赋值 9。本题的难点首先是要想到贪心的思路,然后就是遍历和状态推导。

2024-08-30 17:56:32 1051

原创 代码随想录算法day26 | 贪心算法part04 | 452. 用最少数量的箭引爆气球,435. 无重叠区间,763.划分字母区间

这道题目贪心的思路很简单也很直接,就是重复的一起射了,但本题我认为是有难度的。就算思路都想好了,模拟射气球的过程,很多同学真的要去模拟了,实时把气球从数组中移走,这么写的话就复杂了。而且寻找重复的气球,寻找重叠气球最小右边界,其实都有代码技巧。贪心题目有时候就是这样,看起来很简单,思路很直接,但是一写代码就感觉贼复杂无从下手。这里其实是需要代码功底的,那代码功底怎么练?多看多写多总结!这道题目leetcode标记为贪心算法,说实话,我没有感受到贪心,找不出局部最优推出全局最优的过程。就是用。

2024-08-29 17:13:26 807

原创 代码随想录算法day25 | 贪心算法part03 | 134. 加油站,135. 分发糖果,860.柠檬水找零,406.根据身高重建队列

对于本题首先给出了暴力解法,暴力解法模拟跑一圈的过程其实比较考验代码技巧的,要对while使用的很熟练。然后给出了两种贪心算法,对于第一种贪心方法,其实我认为就是一种直接从全局选取最优的模拟操作,思路还是很巧妙的,值得学习一下。对于第二种贪心方法,才真正体现出贪心的精髓,用局部最优可以推出全局最优,进而求得起始位置。这在leetcode上是一道困难的题目,其难点就在于贪心的策略,如果在考虑局部的时候想两边兼顾,就会顾此失彼。一次是从左到右遍历,只比较右边孩子评分比左边大的情况。

2024-08-28 12:48:37 900

原创 秃姐学AI系列之:残差网络 ResNet

假如你只想在卷积神经网络了解一个网络,那一定是ResNet!!!

2024-08-27 21:04:57 1452

原创 代码随想录算法day24 | 贪心算法part02 | 122.买卖股票的最佳时机II,55. 跳跃游戏,45.跳跃游戏II,1005.K次取反后最大化的数组和

股票问题其实是一个系列的,属于动态规划的范畴,因为目前在讲解贪心系列,所以股票问题会在之后的动态规划系列中详细讲解。有时候,贪心往往比动态规划更巧妙,更好用,所以别小看了贪心算法。本题中理解利润拆分是关键点!不要整块的去看,而是把整体利润拆为每天的利润。只收集每天的正利润,最后稳稳的就是最大利润了。这道题目关键点在于:不用拘泥于每次究竟跳几步,而是看覆盖范围,覆盖范围内一定是可以跳过来的,不用管是怎么跳的。大家可以看出思路想出来了,代码还是非常简单的。

2024-08-27 11:29:23 1125

原创 秃姐学AI系列之:批量归一化 + 代码实现

批归一化层完整讲解 + 代码实现

2024-08-26 22:52:27 2331

原创 秃姐学AI系列之:GoogLeNet + 代码实现

含并行连结的网络——GoogLeNet

2024-08-26 21:01:26 581

Advancing Vision Transformers with Group-Mix Attention

本篇论文提出了一种名为Group-Mix Attention的方法,以改进视觉Transformer的性能。该方法通过将注意力分组并混合不同组之间的信息,实现更高效和灵活的特征提取。具体而言,模型将注意力头分为多个组,每组独立计算注意力,然后在各组之间进行信息交换和融合,从而捕捉更丰富的图像特征。

2024-08-06

DyFusion:基于动态融合的交叉注意三维目标检测 论文解析

DyFusion: Cross-Attention 3D Object Detection with Dynamic Fusion原文论文

2024-08-02

空空如也

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

TA关注的人

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