- 博客(108)
- 收藏
- 关注
原创 用CHATGPT生成C++面试题及答案
使用纯虚函数可以定义一种接口规范,强制派生类实现特定的方法,同时避免在基类中实现虚函数的功能。另外,纯虚函数还可以用作接口类,即只包含纯虚函数的类,它们的主要作用是规定了一组接口,派生类必须实现这些接口以达到多态性的目的。答:纯虚函数是在基类中定义的没有实现的虚函数,它的语法形式是在函数定义后面加上 = 0。纯虚函数没有实际的函数体,它只是为了占用虚函数表中的一个位置,以便让派生类重写这个函数。继承是面向对象编程中的一种重要特性,指的是子类可以继承父类的属性和方法。C++中通过类的访问控制符实现封装。
2023-03-14 14:34:20
1398
原创 读论文:Learning to Compare: Relation Network for Few-Shot Learning
我们提出了一个概念上简单、灵活且通用的少镜头学习框架,其中分类器必须学习识别每个只给出少量示例的新类。我们的方法称为关系网络(RN),从头到尾进行训练。在元学习过程中,它学习学习一个深度距离度量来比较插曲中的少量图像,每个图像都被设计用来模拟少数镜头设置。经过训练后,RN能够通过计算查询图像与每个新类的少数示例之间的关系分数来对新类的图像进行分类,而无需进一步更新网络。除了在少镜头学习上提供更好的性能外,我们的框架很容易扩展到零镜头学习。
2022-12-20 10:56:03
475
原创 Yolov5算法解读
yolov5于2020年由glenn-jocher首次提出,直至今日yolov5仍然在不断进行升级迭代。Yolov5有YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四个版本。文件中,这几个模型的结构基本一样,不同的是和这两个参数。yolov5主要分为输入端,backbone,Neck,和head(prediction)。backbone是New CSP-Darknet53。Neck层为SPFF和New CSP-PAN。Head层为Yolov3 head。
2022-11-28 15:01:05
10393
2
原创 mAP,PR-curve解释及计算等
通过不断调整置信度阈值(就是当这个值越高,我们就越相信它判断得正确)来使我们R有不同的取值,然后再算在这个R下P的值,形成一个PR曲线图。对于yolov5来说NMS的置信度值就是这个值。: 指的是当IOU阈值分别取(0.5:0.05: 0.95)时,所有得出来的mAP取平均值。mean Average Precision,每个类的AP值的平均数。算出P-R曲线下面的面积,就是我们的AP值。:指的是当IOU阈值=0.5时,mAP是多少。IOU越大,则说明预测的位置越准确。预测正确的/所有应该预测正确的。...
2022-08-31 06:12:14
616
原创 bug记录:Yolov5使用注意力机制CBAM报错untimeerror: adaptive_avg_pool2d_backward_cuda does not have a deterministi
改了几天,我发现用pycharm就不报错,可能是池化层的反向传播出现了问题。所以我尝试把torch.use_deterministic_algorithms(False)加到train.py里面,结果就成功了。加到train.py 的335行scaler.scale(loss).backward()前面。...
2022-08-15 06:22:14
1366
7
原创 读论文:(YOLOv1)You Only Look Once:Unified, Real-Time Object Detection
我们提出了一种新的目标检测方法YOLO。先前的目标检测工作重新利用分类器来执行检测。相反,我们将对象检测框架为一个。
2022-07-19 06:53:45
243
原创 读论文-基于循环gan特征增强的夜间车辆检测 Feature Enhancement Based on CycleGAN forNighttime Vehicle Detection
现有的夜间车辆检测方法主要是通过检测前灯或尾灯来检测车辆。然而,复杂的道路照明环境对这些特性产生了不利的影响。本文提出了一种具有特征平移增强(feature translate enhancement, FTE)模块和目标检测(OD)模块的级联检测网络框架FteGanOd。首先,基于CycleGAN构建FTE模块,提出多尺度特征融合,增强夜间车辆特征检测;通过融合不同的卷积层,将黑夜和白天的特征结合起来,生成增强特征(EF)图。其次,在现有目标检测网络的基础上,改进OD模块,与FTE模块级联,检测EF地图上
2022-07-13 20:18:47
1541
原创 二阶边缘检测 - Laplacian of Guassian 高斯拉普拉斯算子
目录一、拉普拉斯算子二、高斯拉普拉斯算子三、一阶、二阶导数的区别拉普拉斯算子相当于对像素进行二阶导数。 一阶求导 (1) (2) 二阶求导
2022-07-12 03:55:59
884
原创 边缘检测算法-Canny算子
目录 主要目标:主要步骤:1. 使用高斯平滑2. 使用Sobel算子。3. 使用非极大值抑制算法。4. 用滞后阈值连接边缘点。Canny算子的三个主要目标:1. 减少噪声响应 通过最优平滑处理(高斯)来实现2. 正确性 通过非极大值抑制(相当于峰值检测)处理来实现。非极大值抑制反悔的只是边缘数据顶脊处的那些点,而抑制其他所有点。这样可以细化边缘,输出正确位置上边缘点连成的细线。3. 单个边缘点对于亮度变化的定位 因为并非只有一条边缘被检测到,所以要
2022-07-12 00:01:53
1233
原创 霍夫变换讲解
在图像中找形状Hough transform霍夫变换是一种找直线的方法,设一个点为(x, y),过这个点的直线可以用 y = mx + c 来表示。那么c = -mx + y。把(c, m)看作一个点,一条直线是由(c, m)来决定的。如果我们这条线上有很多点,那么我们在画出(c,m)所代表的点时,一定会有很多次。就是说我们对这条直线上的点,预设一个m值,就可以算出一个c值。如果这些点都在一条直线上,当我们设到真正的m值的时候,这些点都会得到同一个c值。因为这些点的m,c是一样的。
2022-05-29 21:16:10
526
原创 随机森林的理解
一个样本容量为N的样本,有放回的抽取N次,每次抽取1个,最终形成了N个样本。这选择好了的N个样本用来训练一个决策树,作为决策树根节点处的样本。这用了(a.)bagging的思想。 当每个样本有M个属性时,在决策树(c.)的每个节点需要分裂时,随机从这M个属性中选取出m个属性 (b.),满足条件m << M。然后从这m个属性中采用某种策略(比如说信息增益)来选择1个属性作为该节点的分裂属性。 决策树形成过程中每个节点都要按照步骤2来分裂(很容易理解,如果下一次该节点选出来的那一个属性是刚刚其父
2022-05-20 23:17:19
101
原创 bag of visual words(BoVW)视觉词袋 个人理解
过程:1.收集要编入索引并可搜索的图像语料库。2.从每幅图像中提取局部特征。3.通过特征学习一个大的codebook(词典)。(可以用k-means方法)4.向量量化特征,并为每个图像构建BoVW典型(representations)。5.用BoVW典型构造一个倒转索引。...
2022-05-18 18:41:04
250
原创 不会的查一查
1.torch.optim.Adam(parameters, lr)什么含义已知parameters代表每个神经网络的参数矩阵,lr代表学习率2.pytorch 常用的 loss functionnn.L1Lossnn.MSELoss()nn.BCELoss()nn.CrossEntropyLoss该函数用于多分类,不需要加softmax层BCELoss是二分类使用的交叉熵,用之前需要在该层前面加上Sigmoid函数。pytorch 常用的 loss function
2022-04-24 00:32:46
1379
原创 deep learning实验笔记
enumerate()支持迭代的对象枚举对象生成包含一个计数的对(从start开始,它默认为0)和一个由iterable参数生成的值。Enumerate对于获取索引列表很有用:unique()获取数组中不重复的元素。map()df[5] = df[4].map(mapping)把df[4]中的值当作键key,得到一列值value存在df[5]中。torch.rand()返回服从均匀分布的初始化后的tenosr,外形是其参数sizeU = torch.r
2022-04-16 07:32:18
111
原创 边缘检测方法 -- 一阶边缘检测
一阶边缘检测垂直边缘:水平边缘:垂直和水平边缘:...
2022-02-17 06:22:17
2381
原创 中心极限定理
中心极限定理指出了大量随机变量近似服从正态分布的条件。import numpy as npimport matplotlib.pyplot as pltN = 1000x1 = np.zeros(N)print(x1.shape)for n in range(N): x1[n] = np.sum(np.random.rand(12,1)) - np.sum(np.random.rand(12,1)) fig, ax = plt.subplots(figsize=(5,5)) #
2022-01-19 21:03:54
651
原创 频率派和贝叶斯派
频率派:他们认为世界是确定的。他们直接为事件本身建模,也就是说事件在多次重复实验中趋于一个稳定的值p,那么这个值就是该事件的概率。是未知的常量, x是随机分布的变量。MLE(极大似然估计,Maximum likelihood estimation):估计使p最大的贝叶斯派:他们认为世界是确定的。他们直接为事件本身建模,也就是说事件在多次重复实验中趋于一个稳定的值p,那么这个值就是该事件的概率。是随机的变量,贝叶斯定理:MAP(最大后验估计,Maximum A post..
2022-01-19 20:36:23
796
原创 Fisher线性判别分析Fisher Linear Distrimination
Fisher线性判别分析是一种线性分类方法,它的主要思想是:是类内的方差小,类均值之间相差比较大。(类间大,类内小)以两个类的分类为例:将两个类由在x1,x2上投影到向量u 上,这样由二维转到了一维,然后将两类从两团点的中间分开。如果要使类间相差大的话,那么每个类的平均数之间也会相差大,设分别为加号点和减号点的平均值,那么投影后,他们距离的平方,也就是尽可能大。如果要使类内方差小的话,那么两个类投影到直线(向量)上后,他们的点分别为所以他们的和也要尽可能小因此把大的作为分子,小的
2022-01-17 23:59:09
1577
原创 高斯分布的性质(含代码)
多元高斯分布:一元高斯分布:(将多元高斯分布中的D取值1)其中代表的是平均值,是方差的平方,也可以用来表示,是一个对称正定矩阵。--------------------------------------------------------------------------------------------------------------------------------一.不同的平均值对二元高斯分布的影响:平均值不同时,高斯分布的中心不一样。二. 不同...
2022-01-17 06:03:22
1877
原创 ROC 曲线讲解 (Receiver Operarating Curve)
概念在信号检测理论中,接收者操作特征曲线(receiver operating characteristic curve,或者叫ROC曲线)是一种坐标图式的分析工具,在同一模型中设置最佳阈值。by WikipediaROC曲线的画法如下图所示,每个点表示不同阈值下 TP(横坐标) FP(纵坐标)的值,TP,FP的定义如下 实际值 ture 真的 false 假的 预测值 ture 真的 TP (true positive)
2022-01-15 22:08:54
2420
原创 PCA主成分分析(降维)过程推导
主成分分析的作用是降维。当数据量有多个维度时,有些维度对于数据的贡献大,有些维度对数据的贡献小。通过主成分分析,找到重要的维度,能大大减少计算量。PCA的中心思想:一个中心:原始特征空间的重构。两个基本点:最大投影方差,最小重构距离。--------------------------------------------------------------------------------------------------------------------------------...
2021-12-22 08:11:36
11876
2
原创 Python的一些函数用法
np.square(X)把矩阵中每个元素都平方,返回这个矩阵np.linalg.eig()@ 是矩阵乘法的计算 ——————————————————————————————————dot()的使用dot()返回的是两个数组的点积(dot product)1.如果处理的是一维数组,则得到的是两数组的內积In : d = np.arange(0,9)Out: array([0, 1, 2, 3, 4, 5, 6, 7, 8])In :...
2021-11-15 00:45:37
1268
原创 偏差(bias)和方差(variance)
偏差:偏差指的是由模型训练得到的结果与真实值之间的差。如果偏差太大,我们就要缩小它,也就是缩小与真实值之间的差异,这样训练的效果会更好。方差:方差指的是由模型训练得到的结果之间的差异。...
2021-11-14 23:43:32
4776
2
原创 [python]文件和异常
import json#处理ZeroDivisionError异常try: print(5/0)except ZeroDivisionError: print("You can't divide by zero!")#Example 1print("Give me two numbers, and I'll divide them.")print("Enter 'q' to quit.")while True: first_number = input("\nIn.
2021-05-19 15:20:08
33
原创 [python]文件读写操作
#读取文件with open('pi_digits.txt') as file_object: lines1 = file_object.read() # 读取所有 lines = file_object.readlines() #逐行读取print(f"lines1:{lines1}")pi_string = ''for line in lines: pi_string += line.strip()print(f"{pi_string[:52]}")pri.
2021-05-19 10:07:59
54
原创 [python] 类
class Dog: def __init__(self, name, age): self.name = name self.age = age def sit(self): print(f"{self.name} is now sitting.") def roll_over(self): print(f"{self.name} rolled over!")my_dog = Dog('willie', 6.
2021-05-18 16:12:16
26
原创 [python]函数相关
#example 1def great_user(name): print(f"Hello, {name}")great_user("wang")def favorite_book(title): print(f"My favorite bool is {title}")favorite_book("Alice in Wonderland")#example 2def describe_pet(pet_type , pet_name): print(f"I ha.
2021-05-17 15:20:30
67
原创 [python]while 语句
#example1unconfirmed_users = ['alice', 'brian', 'candace']confirmed_users = []while unconfirmed_users: current_user = unconfirmed_users.pop() print(f"Verifying User:{current_user.title()}") confirmed_users.append(current_user)print("\nT.
2021-05-17 10:32:13
47
原创 [python]字典
#初始化字典alien_0 = {'color':'green','points':5}#访问字典中的值print(alien_0['color'])print(alien_0['points'])#添加键值对alien_0['x_position'] = 0alien_0['y_position'] = 25print(alien_0)#定义一个空字典alien_0 = {}alien_0['color'] = 'green'alien_0['points'] = 5print.
2021-05-13 17:49:45
36
原创 [python]if语句
cars = ['audi','bmw','subaru','toyota']for car in cars: if car == 'bmw': print(car.upper()) else: print(car.title())#检查多个条件age_0 = 22age_1 = 18#andprint(age_0 >=21 and age_1>=21)#orprint(age_0 >=21 or age_1>=21)#检查特定的值是不是在已知列.
2021-05-13 16:09:29
47
原创 [python] 元组tuple
#python把不能修改的值称为不可变的,不可变的列表称为元组#定义元组dimensions = (200, 50)print(dimensions[0])#遍历元组中的所有数for dimension in dimensions: print(dimension)#虽然不能改变元组的值,但是可以重新赋值给元组变量dimensions = ['cars','jewelry']print(dimensions)...
2021-05-13 14:46:19
24
原创 python:和list有关的操作
first_name = "ada"last_name = "lovelace"full_name = f"{first_name} {last_name}"print(full_name)print(f"Hello, {full_name.title()}")message = f"Hello, {full_name.title()}"print(message)print("\tPython")full_name2 = "{} {}".format(first_name.title.
2021-05-13 14:30:04
70
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人