TypechoJoeTheme

鱼一的博客 ◡̈

yuyi

知不可乎骤得,托遗响于悲风
网站页面
标签搜索

最新文章

2023-03-07

Xcode中lldb调试问题

Xcode中lldb调试问题
函数重载不同(lldb) expression -- msg.rfind(' ')error: expression failed to parse:error: :1:5: no matching member function for call to 'rfind'msg.rfind(' ')note: candidate function not viable: requires 2 arguments, but 1 was provided代码中使用的代码int pos = msg.rfind(" ") +1; size_t rfind(char ch, size_t pos = npos) const;上面代码传入了第二个默认参数函数 size_t rfind(char ch, size_t pos = npos) const; 是 C++ 标准库中 std::string 类的一个成员函数。这个函数用于查找指定字符 ch 在字符串中最后一次出现的位置,从字符串的一个指定位置 pos 开始向字符串开始方向搜索。下面详细解释这个函数的各个部分:函数组...
2023-03-07
2023年03月07日
0 阅读
0 评论
2023-03-05

科研流水账38

科研流水账38
阅读了 Channel Augmented Joint Learning for Visible-Infrared Recognition论文主要有下面两个创新点。提出了一种针对可见红外识别图片的通道交换增强,可以整合到现有预处理方法的增强操作中。设计了一个通道混合学习方案来同时处理类内和不同模态之间的变化。辆重识别任务。并通过联合学习策略优化了通道增强图像。代码工作:修改之前pven项目的代码,实现多机分布式训练。修改pven 局部特征部分的代码,实现四个分支合一。下载调试这周阅读论文的代码。问题分析多机分布总卡在使用多机分布式初始化模型上,使用之前一些简单样例模型结构可以正常运行,替换成pven模型后就会一直卡住。于是就觉得是模型有问题,一点点把模型拆解找错误原因,发现有时候就改一下卷积核大小,就可能导致卡住的问题。感觉不能理解这种情况,然后就去源码里面想搞清楚这里的模型初始化到底是卡在了那一步。最后发现卡在了self.reducer = dist.Reducer(...)的前面,这里Reducer是用来实现反向传播梯度同步用的,里面需要传入模型的参数作为变量之一。所以就觉得...
2023-03-05
2023年03月05日
0 阅读
0 评论
2023-02-26

科研流水账37

科研流水账37
阅读了论文 Multi-Spectral Vehicle Re-Identification: A Challenge论文为多模态重识别构建了两个数据集。RGBN300,其中捕获300个车的50125张RGB及近红外摄像图片。RGBNT100,其中捕获了100个车的17250张RGB、近红外、热红外摄像图片。同时设计了一个异质协作感知的多光谱卷积网络模型来完成在多光谱成像条件下的车辆重识别任务。代码工作:在vhicleID数据集上跑了模型,效果还是差点。在调试multi-modal-vehicle-reid的代码,分别在两个其两个数据集上训练。学习分布式训练的实现方法,尝试修改之前pven项目的代码。问题分析多模态的代码最开始在RGBNT100上跑,效果差3、4个点,后面仔细根据论文方法,对比代码,发现代码没有实现三种光谱的损失函数。使用相同版本的不同cudatoolkit,多机分布会报错。修改为相同的 cudatoolkit 版本即可。在pven上使用多机分布式时,文件名重复的问题。单个机器会运行两遍训练前相关配置的流程,因此写入记录文件时,下面这行代码运行了两次。  writ...
2023-02-26
2023年02月26日
0 阅读
0 评论
2023-02-24

c++变量初始化

c++变量初始化
在C++中,全局变量和静态变量(包括静态局部变量和静态全局变量)的初始化行为需要更精确地区分和理解。这里是详细说明:全局变量和静态全局变量的初始化全局变量和静态全局变量在程序启动时,即进入main函数之前被初始化。这种初始化是按照它们定义的顺序进行的,但这个顺序只在同一个编译单元(通常是一个源文件)内是确定的。跨编译单元的初始化顺序是未定义的。这意味着,如果一个全局变量依赖于另一个编译单元中全局变量的值,那么这种依赖关系是危险的,因为你不能保证两者的初始化顺序。静态局部变量的初始化静态局部变量则是在它们首次用到时才初始化,这一点是正确的。这通常指的是第一次执行到包含该静态局部变量的代码块时。C++11标准确保了这种初始化是线程安全的。动态初始化和静态初始化静态初始化:对于某些情况,编译器可以在编译时期完成初始化(如直接用常量初始化的静态存储期变量)。动态初始化:如果变量的初始化依赖于运行时计算的结果,则其初始化为动态初始化,发生在程序启动阶段(对于非局部静态存储期变量)或者首次使用该变量时(对于局部静态变量)。示例#include <iostream> int gl...
2023-02-24
2023年02月24日
0 阅读
0 评论
2023-02-19

科研流水账36

科研流水账36
阅读了论文 Stage-Aware Feature Alignment Network for Real-Time Semantic Segmentation of Street Scenes论文主要有两个创新点。提出了 FEB,丰富Encoder阶段得到的特征图的空间和上下文信息,同时也有利于缓解街景语义分割多尺度目标的语义不对齐的问题。提出了SFA来聚集和对齐不同层级的特征图,空间细节和上下文信息得到有效的利用,提升了小目标物物体的语义分割性能。阅读了论文 Revisiting the Loss Weight Adjustment in Object Detection论文首次深入探索了损失权重在目标检测中的影响。通过大量实验和理论分析总结了关于优化损失权重的重要结论。根据实验结论,设计了自适应权重调节策略。代码工作:在6006 上对fast-reid 中的resnet50后两个阶段中插入 inception的高低频处理模块基础上使用uafm,使得性能比单独使用uafm提升了近1个多点。问题分析上周在PVEN上,不使用特征注意力情况下得到了82.46的实验结果,后面发现加了特...
2023-02-19
2023年02月19日
0 阅读
0 评论
2023-02-17

C++中的回调函数

C++中的回调函数
在C++中使用libevent这类C库时,确实需要注意如何正确地将回调函数与对象实例相关联。这是因为C++的成员函数与普通的C函数有所不同,主要因为成员函数隐含了一个指向对象实例的this指针,而C函数不包括这样的指针。这个区别导致在C库(如libevent)中不能直接使用非静态成员函数作为回调。解释一下为什么需要静态声明,并且为何回调不放在类内部:非静态成员函数的特点:非静态成员函数隐式地包含一个指向其所属对象的this指针作为其第一个参数。因此,成员函数的签名与C风格函数指针要求的签名不匹配。静态成员函数:静态成员函数不包含this指针,它的函数签名与普通的C函数相同。因此,可以用作兼容C库的回调函数。静态成员函数能够直接被调用,不需要对象实例,这使得它们适合用作需要C函数指针的场合。将对象实例传递给静态回调函数:虽然静态函数不能直接访问类的非静态成员,但你可以通过将对象实例作为回调的一个参数(通常是通过void*类型的参数传递)来间接访问这些成员。在Notify_cb的实现中,arg参数就是用来传递XThread对象的实例的,这使得回调函数能够访问类的实例和其成员。不在类内...
2023-02-17
2023年02月17日
0 阅读
0 评论
2023-02-12

科研流水账35

科研流水账35
阅读了论文 Squeeze-and-Excitation Networks论文利用的是通道间的相关性,先用GAP屏蔽掉空间上的分布信息能让后续计算更加准确。先将空间上所有点的信息都平均成了一个值,然后使用两个全连接利用通道相关性训练最终的通道重要性。代码工作:在6002和6005上同时对 pven进行实验。1.调高num_instance和batchsize,在veri776上仅对pven使用uafm,将性能调到82.462.直接使用之前的特征面积融合机制代替pven的面积注意力机制,性能下降到80。3.对修改后的仅用面积注意力机制的pven实验,性能达到82.2。4.对修改代码后的pven用特征面积融合注意力机制,性能下降到81.5.使用原本胡师兄的特征面积注意力机制,性能依然比只使用uafm和面积注意力机制低。6.修改特征注意力和面积注意力的权重占比,还在实验中。在6006 上对fast-reid 中的resnet50不同阶段中插入 inception的高低频处理模块1.在stage3和stage4后使用时,性能比只在stage4后使用更高。2.在stage2和stage3和...
2023-02-12
2023年02月12日
0 阅读
0 评论
2023-02-10

const 成员函数

const 成员函数
在C++中,const成员函数是指那些在其声明末尾加上const关键字的成员函数。这个const关键字告诉编译器,这个成员函数不会修改类的任何成员变量(除了那些被声明为mutable的变量)。这意味着,你可以在一个常量对象上调用这样的函数,同时也提供了对函数行为的一个重要保证:调用该函数不会改变对象的状态。示例考虑下面这个简单的类,它代表了一个几何中的点:class Point { private: double x, y; // 坐标 public: Point(double x, double y) : x(x), y(y) {} // const成员函数,不会修改任何成员变量 double getX() const { return x; } double getY() const { return y; } // 非const成员函数,可以修改成员变量 void setX(double newX) { x = newX; } void setY(double newY) { y = newY; } };...
2023-02-10
2023年02月10日
0 阅读
0 评论
2023-02-10

Pico4 开发试玩

Pico4 开发试玩
在 Pico4 上运行示例 demo开发环境准备demo 代码运行开发环境准备下载 Android Studio 并通过其安装 Android SDK、相应的 NDK 以进行 Pico4 设备上的原生 c++ 混合应用开发。注意问题 ⚠️:Android sdk、 Cmake、 JDK 等开发环境版本和项目代码中使用的版本对应。 Could not GET ‘https://dl.google.com/dl/android/maven2/com/android/tools/b***.pom 报错解决办法,取消 Android Studio 代理设置,在 gradle.property(global) 中注释掉代理设置代码,重启 Android Studio.demo 代码运行从 pico4 开发者官网下载原生开发的 Pico_openXR_SDK 文件,其中包含对应 pico4 版本的 helloXR 项目。使用 Android Studio 打开该项目,构建 gradle 运行环境。连接 pico4 物理设备到电脑,检测到设备后,点击运行。项目浅识一级目录文件及其作用├── ...
2023-02-10
2023年02月10日
0 阅读
0 评论

More Info for me 📱

IP信息

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月