2024-06-23 Mac OS 运行程序出现 `zsh: segmentation fault` Mac OS 运行程序出现 `zsh: segmentation fault` 在终端跑程序的时候报错zsh: segmentation fault python main.py --epochs 2 --mask_ratio 0.2在 Unix-like系统(包括macOS)中, OpenMP 库默认并行执行带有 #pragma omp parallel 的代码块,可能和 PyTorch 中 c 相关的源码有关。export KMP_DUPLICATE_LIB_OK=TRUE:这个环境变量告诉OpenMP忽略由于动态库加载时可能出现的重复库问题。在使用多个动态库时,如果这些库中包含了OpenMP的实现,可能会出现冲突。设置这个变量为TRUE可以防止OpenMP在初始化时因为检测到多个版本的OpenMP实现而报错。export OMP_NUM_THREADS=1:这个环境变量设置OpenMP在并行区域时使用的最大线程数。将其设置为1意味着即使代码中有并行指令,OpenMP也不会创建额外的线程,只会使用一个线程来执行任务。这通常用于调试并行程序,因为在单线程模式下,程序的行为更可预测,也更容易跟踪。当你在终端中执行这些命令时,它们仅对当前终端会话有效。一旦你... 2024-06-23 2024年06月23日 0 阅读 0 评论
2024-03-07 `QFileSystemModel::mkdir()` 在UI界面文件创建踩坑 `QFileSystemModel::mkdir()` 在UI界面文件创建踩坑 修复 QFileSystemModel::mkdir() 中的崩溃问题 🔧在使用 Qt5 的 QFileSystemModel 替换Qt4中的 QDirmodel 中的文件创建方法时遇到问题。初步检查 🕵️♂️在点击创建文件后,如果不输入新建文件名并点击确认,崩溃就不会发生。因此,首先排除了下面右键菜单代码的问题void MainWindow::showLocalTreeViewMenu(const QPoint &pos) { QMenu* menu=new QMenu(this); menu->addAction(QString(tr("新建文件夹")),this,SLOT(mkdir())); menu->addAction(QString(tr("删除")),this,SLOT(rm())); menu->addAction(QString(tr("刷新")),this,SLOT(localDirRefresh())); menu->exe... 2024-03-07 2024年03月07日 0 阅读 0 评论
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-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 评论
2022-08-14 pytorch 踩坑记录 pytorch 踩坑记录 我在使用 pytorch 过程中遇到的问题记录自己使用 pytorch 进行深度学习过程中遇到的一些问题和解决办法 ㊙ 这些解决方法未必是最佳方案1️⃣使用 DataParallel 时,GPU 显存负载不均衡使用单机多显卡时,可能每张显卡的显存大小不是一致的。而 DataParallel 默认是根据显卡的数量对 batchsize 进行均分,每张显卡都会被分配到一样大小的显存消耗。修改 torch > nn > Parallel > scatter_gather.py 的 scatter_map 函数如下 def scatter_map(obj): if isinstance(obj, torch.Tensor): # 获得 batchsize 的数量 batch_size = obj.shape[0] # 将 2/3 的 batchsize 传入第一个 gpu, 剩下的分给第二个 num1 = 2*batch_size//3 return... 2022-08-14 2022年08月14日 0 阅读 0 评论