2022-05-14 科研学习流水账3 科研学习流水账3 跑了 Yolov5 项目的代码对视频进行目标检测,在服务器上使用 Yolov5 自带的数据集跑了一遍模型训练。用 VS code 编辑器连接到服务器对 Yolov5 的代码进行调试,目前还没调试完。问题分析目前看到了 yolov5 源码的 train.py 文件的 Optimizer 部分,对于前面已经看过的代码部分印象不深。比如 intersect_dicts(csd, model.state_dict(), exclude=exclude)、以及 Freeze 这部分的内容的代码。总结下,我认为这是因为我对 yolov5 源码的理解还不全面,需要尽快把整个代码 debug 模式下理解一遍,不懂的地方结合相关部分的理论知识来理解。下一步干嘛首选是继续读完 yolov5 的代码,对 yolov5 关键部分的流程熟悉后,去找 yolov系统相关的论文项目去跑代码和理解突破点。 2022-05-14 2022年05月14日 0 阅读 0 评论
2022-04-01 科研学习流水账2 科研学习流水账2 阅读了论文 Towards Open World Object Detection习并调试了基于 AlexNet 的网络的模型训练代码以及使用自己训练模型对相应类型图片进行预测的代码。调试了 ResNet 的代码,最后由于本地计算机 GPU 算力太低,运行失败,下次实验会在服务器上运行。问题分析1、调试代码的过程中发现,在使用 VS Code 作为编辑器进行 debug 时,代码中如果有使用 Python 的 os.getcwd() 方法获取当前目录,要注意此时的当前目录并非所运行的 Python 文件所在的目录,而是项目的主目录。2、在连接到服务器后,遇到在终端输入 conda 显示 命令找不到 的 Error。最后发现是因为未激活conda 的 base 虚拟环境,而服务器环境中激活 base 虚拟环境的命令是 source activate,而不是 conda activate。3、以后每天如果有遇到问题和进展应该及时记录下来。下一步计划开始调试 2D 目标检测的代码。理解目标检测的整个流程,熟悉 yolov5 的使用。论文方面,继续了解开放世界目标检测这个方向的相关内容。 2022-04-01 2022年04月01日 0 阅读 0 评论
2022-03-08 科研学习流水账1 科研学习流水账1 查看 RTM3D 的代码,调通了项目代码所需要的环境,在这个项目的 Github 上解决了一个 Issues,跑通了项目的 demo 文件。作为初学者还需继续努力啊 2022-03-08 2022年03月08日 0 阅读 0 评论
2020-04-16 handy 库 handy 库 handy 库的事件驱动原理handy 的事件驱动模型是基于 Reactor 模式实现的,主要包括以下几个组件:EventBase:事件循环基类,负责事件循环和事件分发。Channel:事件通道类,负责事件的注册、删除和分发。Poller:事件分发器类,负责事件的分发和处理。TimerQueue:定时器队列类,负责定时器的管理和触发。在 handy 中,每个 EventBase 对象都有一个 Poller 对象和一个 TimerQueue 对象,用于处理事件和定时器。当一个事件发生时,Channel 对象会将事件添加到 EventBase 对象的事件队列中,然后 EventBase 对象会调用 Poller 对象的 poll 函数等待事件的发生。当事件发生时,Poller 对象会将事件分发给对应的 Channel 对象进行处理。同时,EventBase 对象还会定期检查 TimerQueue 对象中的定时器,如果有定时器到期,就会触发定时器回调函数。总的来说,handy 的事件驱动模型是基于 Reactor 模式实现的,通过 EventBase、Channel、Poller 和 ... 2020-04-16 2020年04月16日 0 阅读 0 评论
2020-04-10 TCP 学习笔记 TCP 学习笔记 TCP in handy libserver#include <handy/handy.h> using namespace std; using namespace handy; int main(int argc, const char *argv[]) { Logger::getLogger().setLogLevel(Logger::LTRACE); EventBase base; Signal::signal(SIGINT, [&] { base.exit(); }); // 启动服务端, 绑定地址 host 和对应的端口 port。 保持监听 20 TcpServerPtr echo = TcpServer::startServer(&base, "", 2099); exitif(echo == NULL, "start tcp server failed"); // 服务端正常运行后,实现 tcp 链接回调函数 echo->... 2020-04-10 2020年04月10日 0 阅读 0 评论
2019-04-01 链表实践代码 链表实践代码 数据结构之链表创建链表元素类创建链表类为链表类创建方法函数1.创建链表元素类链表是由一个个元素链接而成的。所以第一步,我们先创建一个链表元素类,来表示我们的链表上的元素。接着我们通过 __init__ 方法给它定义两个属性,self.value和self.next 。class Element(object): def __init__(self, value): self.value = value self.next = None2.创建链表类一个链表在最初被创建的时候,它至少需要一个元素。链表是由元素链接而成,它的第一个元素,我们称它为头部元素。所以我们在__init__方法里给链表类定义了一个属性,self.head = headclass LinkedList(object): def __init__(self, head=None): self.head = head3.为链表类创建函数方法append方法get_position方法insert方法delete方法我们将为链表类创建以上四个方法。app... 2019-04-01 2019年04月01日 0 阅读 1 评论