实验记录 | 将 NTU120-CSub 数据集规模减半 由于 NTU120 数据集规模较大,实验耗时较长,因此我将数据规模缩减至原来的一半,同时保持样本的分布不变。我采用了简单的数组切割方法,确保了各类别样本和划分前一样的均匀分布。
Notion + Python + scholarly = 超强文献管理助手 我结合了Notion Integration 和 scholarly 两种工具,实现 Python 自动化脚本获取文章在谷歌学术的引用量等信息,高效自动更新 Notion-based 文献数据库。文章提供的 Notion +Python 实现自动化工作流的简单示例,可以轻松适配到 Notion 中需要批量数据更新的任何场景。
Python获取谷歌学术的文献引用量等信息 | scholarly & SerpAPI 文献管理工具往往无法实时更新文章的引用量信息。我通过 scholarly 和 Google Scholar API 两种方法,实现Python自动化脚本获取文章在谷歌学术上的引用量等信息,从而高效地更新自己的文献数据库。
HiRT | 异步控制策略,告别VLA时延问题 HiRT 通过异步处理的策略,将 VLM 作为低频慢思考过程,将轻量的动作策略模型作为高频快响应过程 ,以此解决 VLA 驱动带来的控制时延问题。这是本菜看的第一篇具身智能相关的论文,理解总结不当处欢迎批评指正!
神经网络训练不起来怎么办(零)| General Guidance 模型性能不理想时,如何判断 Model Bias, Optimization, Overfitting 等问题,并以此着手优化模型。在这个分析过程中,我们可以对Function Set,模型弹性有直观的理解。
实验记录 | 点云处理 | K-NN算法3种实现的性能比较 本菜在复现点云文章过程,遇到了三种 KNN 的实现方式:knn、knn_point、knn_cuda,故在此一并对比总结,最后对三种实现方案进行了性能比较。
神经网络训练不起来怎么办(五)| Batch Normalization 当 input feature 在不同 dimension 上差距很大的时候,会产生一个非常崎岖的误差平面。这种崎岖多变的误差平面容易导致训练陷入困境。Batch Normalization 则是通过直接改变 input feature 的分布,得到一张均匀、光滑的 error surface,使得训练变得容易。
实验记录 | PointMLP | Grouping layer + Geometric Affine 图像卷积的经典思想:将周围的像素信息加权到中心像素点上,以实现降采样和特征的聚合。点云亦是如此:先通过采样选取中心点,然后找到中心点周围的邻域点,最后将邻域点的信息聚合到中心点上。这样便实现了 “降采样,聚合特征” 的效果。上代码!
CS231n | 02-Image Classification with Linear Classifiers 因为本菜之前学过深度学习和计算机视觉的课程,虽然这节课大部分还是老生常谈的东西,但是细品又有新东西:KNN算法思想永垂不朽,线性分类矩阵又为何是图像收集器?本文带您循序渐进,逐步揭晓。如有理解不妥之处,欢迎批评指正~
Bug | CUDA | cuDNN error: CUDNN_STATUS_INTERNAL_ERROR 如果我指定了 “CUDA:5” 进行调试,程序就会出现如下的报错;但如果我用 “CUDA:0” 运行程序,就能够正常运行,不发生程序报错。本质是 CUDA_VISIBLE_DEVICES 无效设置导致的。
CS231n | 01-Introduction 因为本菜之前学过深度学习和计算机视觉的课程,所以感觉这节课大部分还是老生常谈的东西。在这里记录本节课的关键内容,最后谈谈本节课带给我的一些思考。如有理解不妥之处,欢迎批评指正~
conda | 00-批量显示各环境的torch版本 做科研的时候我们都需要配置各种各样的虚拟环境,如果你的服务器已经有很多虚拟环境了,我想告诉你:不用配置!不用配置!不用配置!秘诀就是在所有环境中找到一个最匹配的环境,直接复制来用。即便你已经对conda的环境配置驾轻就熟,这种方法依然能够节省你大量的时间。
CS231n | 00-计算机视觉的进化史 在这个由0和1编织的数字世界里,计算机视觉的发展史就是一部关于如何让机器学会‘看’的史诗。我结合CS231n课程内容以及互联网资源大致梳理了其发展脉络。从1959年猫的视觉神经实验,到深度学习在21世纪的爆发,计算机视觉的旅程充满了智慧的闪光和意外的曲折。
Bug | 避免因条件判断顺序导致的容器访问错误:if(x <= max_heap.top() || max_heap.empty()) if (表达式1 || 表达式2 || 表达式3......) 由于逻辑运算符的短路特性,各个条件表达式的顺序并不是严格平行的,应该严谨地考虑实际的逻辑顺序。
Bug | priority_queue.size()无符号整型进行减法运算引发的惨案 使用优先队列(priority_queue)来实现大根堆和小根堆。在维护两个堆平衡的过程中,需要使用 priority_queue.size() 来判断两个堆的大小。因为 .size() 返回的是无符号类型,直接进行减法运算会导致错误。
洛谷 | P2085 最小函数值 通过优先队列(`priority_queue`)找到并输出一组二次函数中的最小函数值。每次从堆中取出当前的最小值,输出后将对应函数的`x`值递增,计算新的函数值,并将更新后的函数重新压入堆中。这个过程重复`res_num`次,确保每次输出的都是当前可能的最小函数值。简单来说,若F(1)取到最小函数值,那么F(2)大概率也会很小,也必须压入堆中。
Bug | pointnet2_ops_lib,furthest_point_sample 最远点采样结果不一致 pointnet2_ops_lib 的furthest_point_sample 最远点采样函数,最后得到的采样结果总是和标准的 FPS 函数不一致。发现是核心代码的 mag 变量导致。
实验记录 | pointnet2_ops_lib 最远点采样的差异分析 关于最远点采样 FPS 的实现,本文总结了广为流传的farthest_point_sample 函数和 pointnet2_ops_lib 工具包中 furthest_point_sample 函数实现上的差异,并且给出了造成这种差异的原因分析和解决方案。
Bug | 运行单元格需要安装ipykernel包或需要进行更新 使用新配的虚拟环境运行 jupyter notebook 单元格,运行单元格出现错误“运行单元格需要安装ipykernel包或需要进行更新”的报错信息,尝试了常规的解决办法都行不通,卸载重装后解决。