- 博客(109)
- 收藏
- 关注
原创 YOLO 模型 runs 目录下 detect 任务结果文件的深度分析
metrics/mAP50(B):B 类别的平均精度均值(IoU 阈值为 0.5 时 ),综合评估模型对 B 类目标的检测性能,考量不同召回率下的精确率。metrics/precision(B):B 类别的精确率,指预测为 B 类的结果中真正属于 B 类的比例,衡量分类的准确性。我的理解是训练时第i个epoch中第一个批量的检测结果,当我batch_size=16时,下边的图片刚好囊括了16个小图片。train/box_loss:训练时每个epoch的box_loss,衡量了预测框与真实框的吻合度。
2025-04-05 16:20:37
476
原创 softmax求概率跟用片段值除总和求概率的不同点
这是一种简单的归一化操作,对于一组数值x1x2⋯xnx1x2⋯xn,其计算方式是将每个数值xix_ixi除以这组数值的总和∑j1nxj∑j1nxj,得到对应的归一化值yiy_iyi,公式如下:例如,对于数值组235[2, 3, 5]235,总和为2351023510,归一化后的结果为2103105100.20.30.5102103105。
2025-03-21 16:41:37
639
原创 机械革命蛟龙16pro玩游戏闪屏
我查过原因,好像是AMD显卡对游戏用了可变刷新率就出bug了,可能是那个游戏不适合用可变刷新率技术。1.桌面右键鼠标,出现如下标签,点击AMD Software:Adrenalin Edition。2.选择闪屏的游戏,把AMD FreeSync关了。
2025-03-19 18:08:39
230
原创 kaggle竞赛总结:classify-leaves
第四次用的是kaggle,摸索了一下大致了解了kaggle怎么读取数据集,处理文件输出,然后就开始跑了,后边epoch多了,有时候会停止print结果,后面我看到可以用save version把代码放到后台跑,然后查看log里面会有输出,那就省事多了,我一save version就关闭界面,让它自己慢慢跑,它完成了也会在邮箱通知我,体验不错,很推荐。),标签平滑策略,学习率寻优,余弦退火热重启(!结果:迭代60次,私榜分数:0.97138,公榜分数:0.97068(还没完全收敛,可以更高)
2025-03-08 11:25:59
621
原创 No module named ‘cv2‘
要使用cv2库,得安装两个库opencv-python和opencv-contrib-python,我之前只安装了第一个,然后没有生效。
2025-03-03 16:31:07
81
原创 torch.argmax用法
1.dim=None时,则返回扁平化输入的 argmax,就是将input展成一维,然后从中找出最大值所在索引,此时返回的Tensor只有一个值。功能:返回最大值所在的索引。根据dim的不同有不同的处理方式。2.dim有值时,返回该维最大值的缩印组成的tensor。
2025-03-03 09:52:10
162
原创 深度学习训练数据太大超内存
改进后:主要看dataloader,它可以让你在训练需要时才加载那一批量的数据,就是说一次只有一个批量的数据进入内存,内存就不会爆了。问题就在于X.append(transform_train(image))会将所有数据加载到内存,肯定会爆。我的训练集是两万多张3*224*224的图片。
2025-02-27 21:16:50
118
原创 Colab挂载Google Drive出错:MessageError: Error: credential propagation was unsuccessful
好像是凭证出了问题,我下载了Google Drive软件,然后卸载了就出现这个问题了。解决办法:挂载到另一个目录。
2025-02-25 18:43:15
115
原创 ResNet总结
随着我们设计越来越深的网络,深刻理解“新添加的层如何提升神经网络的性能”变得至关重要。更重要的是设计网络的能力,在这种网络中,添加层会使网络更具表现力,为了取得质的突破,我们需要一些数学基础知识。
2025-02-24 20:01:15
977
原创 colab文件中调用其他文件夹的内容
其中/content/gdrive/myDrive是固定的,指向你硬盘的开始目录,然后后续的目录就自己看情况填写,一般写到自己要执行文件的那个目录。如果不确定,可以用os.listdir()列出当前目录,然后os.chdir()选择自己想去的下一个目录,一步步摸索就能知道项目的路径了。我这里因为引用用的相对路径才这样做,可能用绝对路径就不用os变换目录了。
2025-02-24 10:10:33
195
原创 RuntimeError: “nll_loss_forward_reduce_cuda_kernel_2d_index“ not implemented for ‘Float‘
但是出了题目所示的错,查看资料才知道交叉熵loss函数接受两个参数,第一个是float,第二个是long!背景:深度学习训练时,我自己提取了输入跟输入进行训练,把一些字符串类别映射成了数字,
2025-01-18 21:00:44
342
原创 list转tensor很慢
大致内容是如果list里边含有np.array类型的数据,那么list转tensor就会非常慢,除非list先转成np.array,np.array再转成tensor。X是一个列表,但是循环里边得到的元素image是np.array,所以我的X是一个含np.array数据的list,难怪torch.tensor(X)这么慢,X=torch.tensor(np.array(X))写成这样就把问题解决了。
2025-01-18 19:21:03
212
原创 Bottleneck层模型介绍
对于瓶颈层,第一个1*1卷积层是通道信息融合,减少通道数量,第二个3*3卷积层是进行空间信息融合及压缩,第三个1*1卷积层是进行特征提取(通道数变多)对于无瓶颈层,第一个3*3卷积层应该是进行特征提取(通道数变多)、空间信息融合及压缩(卷积操作配合步幅),第二个3*3卷积层应该是进一步空间信息融合。3x3卷积层:用于提取空间特征,是瓶颈块中的核心部分,用于提取图像中的细节信息。第一个1x1卷积层:用于减少通道数,即降维,从而降低计算复杂度。第二个1x1卷积层:用于恢复通道数,即升维,以便与输入进行相加。
2025-01-17 20:42:05
137
原创 torch.reshape()的原理
reshape成(2,2,3)后,先分第0维,12个元素分成两半,[0,...,5]分给第0维的第一部分,[6,...,11]分给第0维的第二部分,然后以[0,...,5]为例,对于第一维分半,故[0,1,2]分给第一维第一部分,[3,4,5]分给第一维第二部分,然后看元素是否还剩3个,不剩3个说明想要reshape的形状不和,会报错。实践了下,看起来这样理解是没问题的,想要理解更深刻可以去看源码,我是因为源码内容好像有点多,然后懒得看了嘻嘻。我的想法是reshape是将输入的tensor。
2025-01-11 18:52:16
224
原创 解决torch.version.cuda=None以及torch.cuda.is_available()=False
然后就出现了上面的问题,看了下别人的博客,好像如果conda配置了清华镜像源,然后conda install安装的就是cpu版本的torch,不是gpu版本的,我也不知道是不是这个问题。先把安装的torch卸载了,然后用pip安装gpu版本的torch(我没用镜像源,我开了外网下好像),
2025-01-08 13:46:24
1016
原创 理解神经网络
整个神经网络是实现功能的工具,我放入图片可以得到类似的处理,我把我要处理的图片放进模型,然后根据得出的结果,调整输出,就可能可以得到能处理自己图片的模型(对于迁移学习还不是很了解,深入学了再补一下内容)首先ReLU的本质:使小于0的部分曲线消失,只保留大于0的部分,故我可以设法用多个ReLU做出多段曲线,然后叠加,就可以生成对应多段曲线:。二、那为什么有时候一开始会把输入层的信息先放大,即输入层n个特征,先放大数量到隐藏层①,其中隐藏层①有m个神经元(m>n):。隐藏层①有4个神经元。
2025-01-05 15:43:11
525
原创 pd.get_dummies()方法将数据变成了布尔值,想进一步把数据转成0/1
但是我的dataFrame是只有float类型的列跟bool类型的列,为什么转不了我也不太清楚,我猜测是转的时候将True跟False识别成字符串了……很容易理解,apply处理的是整列,而我写的lambda针对的是某个值,不匹配,所以报错才会说ambiguous(对数据的处理模糊,不知道要处理谁)这会导致什么问题呢,比如说我想将这个dataFrame的类型转成torch.float32,会出错,如下:。早期的pd.get_dummies()方法是将数据变成0/1的,这时候没什么问题。
2025-01-03 15:56:27
385
原创 jupyter展示图片做法以及为什么会无法展示图片
]()展示图片时,我用了两种路径,一种是'/'分隔,神奇的是,这种路径你点击是能找到路径从而看见图片的,但是无法在jupyter展示。另一种路径是'\'分隔,虽然可能ctrl+click跳不到对应路径,但是他能显示图片,我没怎么学过markdown语法,所以可能认识不深。用markdown语法:!用<img src="路径">标签。
2025-01-02 19:48:05
436
原创 深度学习中的MSE与MAE
均方误差(MSE):是预测值与真实值之差的平方和的平均值,其数学表达式为,其中为样本数量,为第个样本的真实值,为第个样本的预测值。平均绝对误差(MAE):是预测值与真实值之差的绝对值的平均值,其数学表达式为。
2024-12-22 10:31:37
693
原创 model = nn.Sequential()
输出:)>28 * 2828×2828×283228 * 2832nn.ReLU()ReLU000ReLUnn.ReLU()32100 - 9101032dim = 11100 - 910所以这个网络有多少层?这个神经网络从结构上来看包含 4 个主要部分,可以大致认为有 4 层,不过严格来说,从传统意义上按照包含可学习参数的层来界定 “层数” 的话,nn.Linearnn.ReLUnn.Softmax。
2024-12-21 12:26:27
497
原创 深度学习中,用损失的均值或者总和反向传播的区别
sum和mean其实主要影响了“梯度的大小”,反向传播时,依据损失求梯度,如果是sum,则梯度会比mean大n倍,那么在学习率不变的情况下,步子会迈得很长,体现到图形上就是正确率提升不了。所以需要缩小学习率。
2024-12-20 17:05:58
253
原创 python中for循环的局部变量的作用域
问:为什么这个函数能拿到X与y,X与y不是for循环里边的变量吗?在 Python 中,for循环中的变量(像这里的X和y)确实是在循环内部定义的局部变量,但在。
2024-12-20 15:40:50
402
原创 Python中函数传递参数机制,以及原地操作x+=k与x=x+k的区别
可以看到,change_value函数使用了+=操作符直接在原对象上面进行操作,not_change_value使用了普通的赋值符号,实际上会创建一个新的局部变量data,然后更新这个data的值,最后再返回,可以看到,返回前后data和y的id也是对得上的。
2024-12-16 15:08:01
227
原创 pip安装d2l失败:error: subprocess-exited-with-error
可能是版本不兼容问题吧,我换个d2l版本下载就成功了。
2024-12-08 10:53:29
551
原创 Anaconda镜像源配置
有些包在anaconda是没有对应格式的,这时候只能用pip下载,虽然anaconda带了pip,但速度很慢,所以我们还得配置pip镜像源,保证下载得快,执行如下命令。1、根据如下类似路径在C盘的用户文件中找到.condarc。1.命令行配置,输入如下命令,添加镜像源。3、在命令行执行命令清除索引缓存。2.设置搜索时显示通道地址。
2024-12-08 10:24:19
768
原创 np.matmul和np.dot和@有什么区别与联系
,因为这两个函数/运算符主要设计用于矩阵乘法。运算符需要将数组转换为二维形式(例如,通过。可以直接处理一维数组的点积。注意:对于一维数组的点积,
2024-11-20 12:16:45
249
原创 IndexError: boolean index did not match indexed array along axis 1; size of axis is 3...
用y做布尔数组做选择时,其实是迭代y,y一维的话,那自然就相应的选择x的整行,y二维的话,那迭代也会迭代y的某行所有数据,此时会因为判断也要选择x某行对应位置的数据,这也就是为什么y的1轴元素个数为1,x的1轴元素个数为3会出错的原因:y遍历1轴第一个元素时如果bool=True,那x要保留1轴哪个元素?细节弄错了,切片选择用的数组应该是一维的,才能迭代判断,但我这里用的y是二维的,所以报错了。即y的1轴只有1个元素,尺寸为1,x的1轴有3个元素,尺寸为3,不匹配。切片选择,即x_=x[y==1]]
2024-11-18 21:12:27
548
原创 二维数组切片某一列后会降成一维数组,想保留二维数组的形式
首先举个例子:如下x[:0,5,1],x[0:5,2],y[0:5]均是一维数组,按道理来说,他们应该会描出五个三维点,但实则不然,出现这种情况看起来像是每个y值都匹配到了每对(x1,x2),不应该啊,(x,y,z)应该一一配对的呀,可能是实现了3d后带来的问题。有时候画图觉得很不对劲可能是这个原因,这时候要reshape一下,使其成二维的,3d好像就能正确处理三维点,这样就行了。
2024-11-18 12:26:47
90
原创 Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future
错因:在root()函数中,传入的参数是np.array(矢量),但lambda x:x+cos(x)中cos(x)接收的参数是一个标量,不匹配,所以要改成np.cos(x),这样接收的才是矢量。不过在目前,使用math的cos函数也是可以运行的,只是警告,但未来就会报错了。
2024-11-17 17:07:36
940
原创 python-learn
一个构造函数,所以第一个参数为self,可操作本身的属性、方法,第二个参数为父类窗口,这里设为None,表示自己就是最顶层窗口。
2024-11-02 10:39:45
140
原创 Caused by: jakarta.websocket.DeploymentException: ......that did not have a @PathParam annotation
通常情况下,在 WebSocket 的 URI 路径中,可以包含一些参数信息,这些参数信息可以通过。注解是不正确的,因为它是 Spring Framework 中用于处理 HTTP 请求参数的注解,而不是用于处理 WebSocket 连接的。是 Spring MVC 中用于从 URL 路径中提取参数值的注解,不适用于 Java WebSocket API。因此,要正确处理 WebSocket 连接中的路径参数,应该使用。因此,要正确处理 WebSocket 连接中的参数,应该使用。
2024-05-29 17:07:09
465
原创 Spring配置文件bean.xml中注入util和context命名空间
以util为例:在beans头位置,就是与xmlns同级的位置,添加命名空间:xmlns:util="http://www.springframework.org/schema/util"不过只配这个还是会有问题,报错:通配符的匹配很全面, 但无法找到元素 "util:list"的声明。
2024-05-14 21:34:38
340
1
原创 javaweb访问页面404
但是我碰到了种问题,用工件构建的输出目录,里边没有web.xml和jsp文件等,但我放置web部署文件的位置等也都找对了,这个也会导致访问404,不知道为什么工件没有将web.xml文件导出。原因:可能是放置web部署文件的位置没有找对,如下图,上边是放置部署文件web.xml的位置,下边是自己放web资源的位置。
2024-04-26 15:48:16
800
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人