- 博客(22)
- 收藏
- 关注
原创 优化器算法介绍
目前,深度学习领域中常用的优化器有以下几种:随机梯度下降 (Stochastic Gradient Descent, SGD): SGD是最基本的优化器,它每次只使用一个样本来更行参数。虽然SGD可以更快的收敛,但它对学习率的选择更加敏感。带动量的随机梯度下降(Momentum SGD) : 为了解决SGD容易陷入局部最小值的问题,带动量的SGD被提出。它在更新参数时不仅考虑了当前的梯度,还考虑了前一次的更新方向,从而使得参数更加平滑。
2024-11-22 11:41:43
817
1
原创 一文读懂std::move()
对于第五个hello并没有答应出来,是由于std::string调用了移动赋值函数,该函数以右值引用为输入。将str2内的原始指针赋值给了类指正变量,只涉及了指针操作,不需要拷贝,所以速度快,同时将原始指针指向了空指针,所以打印出来的str2为空。std::move本身并不能移动任何东西,它唯一的功能是将一个左值强制转化为右值引用,继而可以通过右值引用使用该值,以用于移动语义。右值引用,用以引用一个右值,可以延长右值的声明周期。左值引用的声明符号为&,右值引用的声明符号为&&为了更形象说明这个问题。
2024-09-27 15:58:07
466
原创 glog, gflags, gtest三件套
glog是google的一个c++开源日志系统,轻巧灵活,入门简单,而且功能也比较完善。gflags是google开源的用于处理命令行参数的项目。
2024-09-25 17:35:48
385
原创 numpy的基础知识
np.where 是 NumPy 库中的一个非常有用的函数,它返回数组中满足给定条件的元素的索引。将具有相同行数的两个或者更多数组拼接成一个更宽的数组。将具有相同列数的两个或者更多数组拼接成一个更高的数组。np.argsort (a, axis=-1)是numpy库中的一个函数,返回数组中满足给定条件的元素的索引。可以根据这些索引来得到一个新的有序数组。如果两个数组的形状不同,它将应用广播规则。广播机制允许 NumPy 在执行数组运算时自动处理不同形状的数组,使得数组之间的算术运算成为可能。
2024-09-20 17:16:06
378
原创 目标检测的评价指标
目标检测任务是给你一张图像,给出图中含待检测类别的位置和类别。评价模型的好坏主要有三个方面:类别,位置,检测速度。分类的精度如何定位的精度如何运行的精度如何精度,召回率,PR曲线,AP, mAPIoUfps。
2024-09-18 17:45:20
792
原创 算法题 - 差分数组
对于数组a, 定义其差分数组为dia0i0ai−ai−1i≥1\right.dia0i0ai−ai−1i≥1性质1: 从左到右累加d中的元素,可以得到数组a.性质2: 如下两个操作是等价的。把a的子数组a[i], a[i+1],⋯\cdots⋯, a[j]都加上x.把d[i]增加x, 把d[j + 1]减少x.
2024-09-17 00:06:26
729
原创 staticmethod装饰器
静态方法的一个主要用途是当你需要执行一些功能,而这些功能与类的任何实例或类本身无关时,可以使用静态方法。这样,你就可以把这些方法组织在类中,从而与类相关的功能保持在一起,而不必创建类的实例。,而和类相关,也就是说,它不会自动接收特殊的第一参数(如实例本身即‘self’, 或类本身cls), 可以通过类直接调用,也可以通过类的实例调用。主要用法一些通用的,与类实例无关的功能相关,使得与特定类相关的功能能够在逻辑上归类于一处。
2024-09-11 15:42:36
161
原创 python基础
zip()函数时一个内建函数,可以用来将多个可迭代对象中对应的元素打包成一个个元组,然后返回由这些元组组成的zip对象,用于生成列表,元组,集合等类型的数据结构。
2024-09-11 11:58:02
178
原创 相机模型 - 坐标系转换
世界坐标系O−Xw−Yw-> 相机坐标系O−Xc−Yc-> 图像坐标系O−Xi−Yi-> 像素坐标系O−U−V像素坐标系O−U−V-> 图像坐标系O−Xi−Yi-> 相机坐标系O−Xc−Yc-> 世界坐标系O−Xw−Yw。
2024-09-03 21:53:31
2402
原创 pytorch基础操作
stack对输入tensor的shape要求为各个维度都要完全一致;cat对输入tensor的shape要求为除了要拼接的维度不一致,其他维度必须要一致。torch.stack和torch cat都是pytorch中用于张量拼接的两个不同函数。stack翻译为堆叠,cat堆叠为连接。假设我们有两个2d 矩阵,stack会新增一维将2d矩阵叠在一起,即形成3d矩阵。cat则会形成一个更大的2d矩阵。torch.meshgrid用于grids。
2024-08-30 18:16:09
332
原创 (BN) Batch Normalization以及 (SyncBatchNorm) Synchronized Batch Normalization的介绍
Batch Normalization 是由2015年提出,从标题就知道Batch Normalization通过减少内部协变量偏移,以提高深度学习网络训练速度和稳定性。内部协变量偏移是指在训练过程中,网络各层的输入数据的分布会随着前一层参数的更新而改变,数值上的波动会比较大,从而需要更小的学习率和仔细的参数初始化。实际上比较常见的是方案一BN放在activation之前,也是原文中推荐的做法。主要原因是Question 1: 什么是过饱和,会产生什么后果?
2024-08-14 19:11:53
1248
原创 剑指 Offer 56 - II. 数组中数字出现的次数 II
题目在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。示例 1:输入:nums = [3,4,3,3] \quad 输出:4示例 2:输入:nums = [9,1,7,9,7,9,7] \quad 输出:1限制:1 <= nums.length <= 10000 \quad 1 <= nums[i] < 2^31解法一: 哈希表用哈希表来保存数字出现的次数,时间复杂度 O(n), 空间复
2020-11-17 11:22:19
118
原创 剑指 Offer 32-I. 从上到下打印二叉树
题目从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回:[3,9,20,15,7]解法:BFS# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x#
2020-11-16 09:17:57
112
原创 剑指offer 55-I.二叉树的深度
题目输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7解法一:递归 or DFS# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):#
2020-11-16 09:05:11
125
原创 剑指offer 49. 丑数
题目详解我们把只包含因子2, 3 和 5的数称作为丑数(Ugly Number)。 求按从小到大的顺序的第n个丑数输入:n = 10输出:12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。暴力解法最简单的思路是暴力了!!!把所有在范围内的丑数都列举出来,然后去重+排序。然而妥妥的超出时间限制。class Solution(object): def nthUglyNumber(self, n): Set = set()
2020-11-12 11:16:55
137
原创 机器学习常见问题
判别式模型和生成式模型的区别判别方法:由数据直接学习决策函数Y=f(X), 或者由条件分布概率P(Y|X)作为预测模型,即判别模型。生成方法:由数据学习联合概率密度分布函数P(X, Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型。常见的判别模型有:K近邻,SVM, 决策树,感知机,线性判别分析(LDA), Logistic 回归, boosting, 条件随机场常见的生成模型有:朴素贝叶斯,隐马尔可夫模型,高斯混合模型什么时候使用归一化/标准化对输出结果范围有要求,用归一化
2020-11-05 21:48:17
245
原创 RCNN系列总结
各类方法主要的创新点RCNN解决的是用CNN网络进行特征提取Fast-RCNN实现了卷积网络的权重共享,使用RoI pooling来保持多尺度输入Faster-RCNN提出了RPN,实现了端到端训练R-CNN这是基于一篇CVPR2014的文章,由于Alex-Net和VGG等深度网络在分类任务的成功应用,大家发现,深度神经网络自主提取的特征要比传统的手工方式提取的特征更加丰富,于是开始尝试在检测任务中使用深度网络来提取特征。其中R-CNN (Regions with CNN feature) 就
2020-11-03 18:53:04
1052
2
原创 Leetcode 329. 矩阵中最长上升路径
题目给一个矩阵,找到它最长上升路径的长度。对于每一个点,它可以上下左右移动,但是不能斜对角移动。Example:Input: nums = [ [9,9,4], [6,6,8], [2,1,1]] Output: 4 Explanation: The longest increasing path is [1, 2, 6, 9].解题思路最直观的方法是,以矩阵中的每一个点作为起点,对每一个点用dfs搜索,然后求取最大值。直接上代码class Solution: de
2020-11-03 10:19:39
500
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人