【指导】科研工作团队协作避坑指南
本文站在第三方的角度审视我在2022年的团队科研经历,一来是自省,二来是帮助更多同学更好的开始自己的科研生活。
科研工作是围绕一个科学问题展开的探索,只要是探索就有成功,有失败。而人工智能的科研探索,永远是以失败为主旋律。再详尽的计划,再强大的开发能力,都无法保证实验不出现问题。和数学条理清晰的证明不一样,人工智能深度学习的黑盒性质,使科研工作的展开注定磕磕绊绊。
:star:对科研成果的要求不同会议或期刊的收录倾向不同,例如CVPR喜欢新应用,NeurlPS喜欢理论的突破,AAAI相对就比较杂食,但对于一篇好文章的要求无非如下:
研究点新颖,要做到读者听上去就想要复现一下。
背景资料详实,需要找老前辈讨论。
论证的严谨,参考文献充足且逻辑自洽。
实验完备且充分,多角度多任务多场景(多数据集、多网络适配、多应用)
文章的行文规范且流畅,体现一个团队的积累。
:star:研究的三个板块对于一个课题组,如何进行人员的组织是一定要考虑的问题。任何一个错误的分工,或者一个模糊不清的角色定位都会造成课题推进的困难。接下来我们从三个主要的板块,展开讨论,科研团队中的大家如何扮演好自己的角 ...
【指导】Mendeley文献管理工具教程
:star:为什么需要文献管理工具?作为一名热爱学术的研究生,每天要阅读许多篇论文,每篇论文要经历繁琐的检索、下载、阅读的过程;在读了许多文献之后,想去回顾一下以前读过的文章,却发现面对着电脑中各种文献的文件夹,怎么也找不到想要找的文章了。这时候就需要一个文献管理工具,管理你的成千上百的文献,让你在写论文时很顺手地找到想要的文献。
:star:为什么选用Mendeley?:star:Mendeley的下载Mendeley有两个版本,官方页面上的是Mendeley Manager,但是异常难用。这里建议使用Mendeley Desktop配置本地论文仓库,也可以通过设置云端同步实现跨平台。
:star:Mendeley的基本使用:stars:使用界面
:stars:【重点】配置本地仓库
:stars:配置云端同步注:不推荐使用云端同步,第一Mendeley的空间有限,第二没有必要。如有需要,可以尝试Mendeley的第三方云端仓库同步。
:stars:Mendeley汉化可以直接下载绿色网传中文版,暂时没找到汉化补丁。
:star:Mendeley常用功能:stars:【重点】查询 ...
【星光03】GPU多卡排队/抢占/贪心脚本,实验室必备
经常有小伙伴和我抱怨说拿不到计算资源,于是这不就来了吗。这是一个后台GPU排队脚本,主要是为了解决实验室中的显卡使用/占用问题。
✨阅前须知
Talk is cheap, show me the code. 废话少说,直接给我代码!脚本代码跳转链接:脚本在这里
说给小白白的一些话:
本文只针对Nvidia显卡,依赖nvidia-smi查看显卡状态的命令。
本文提出的方法使用的是python作为终端脚本的启动器,默认python即可。
本文的方法是多显卡的贪心脚本,一个空窗期内有几张显卡就会用几张,小心使用。
本文方法无法实现显卡累加的操作,如果你想要那种闲下一张卡就抢过来的脚本,可以试试在本文的基础上进行修改。
✨预备知识对理解GPU多卡排队脚本有帮助的内容:
在服务器上训练人工智能模型的时候往往是启动一个后台任务,启动后台任务的方法如下: 12#!/bin/bashnohup 【命令】 &
对于使用GPU的后台任务,如果没有好好的退出,会一直占用GPU资源。所以需要执行如下命令退出: 123456# 执行以下命令在全部线程中寻找你的后台线程:ps -ef ...
论文咋水
论文和自己的笔记不一样,和我成天写的博客类似,都是要提供最多的相关信息,便于读者理解。
只要有给小白讲明白这个点的想法,就不愁没得写
而且大概率会超页数。超了删,好删;少了加,就难喽
至少比你低一两个年级的同学能看懂或者不是很了解天体物理的量子物理教授能看懂
水论文小技巧1:谷歌翻译,中英或者英法互译,来回译上几轮,字数就多了
水论文小技巧2:分析文章观点展开逻辑,力求每一个观点的逻辑展开流程一致。之后只要多一环逻辑,全文每一块都可以多这一环
水论文小技巧3:大量公式,表格,图片
水论文小技巧4:观点前置,最后重复观点,强调重点
GNN Recap
A Gentle Introduction to Graph Neural Networks
为什么使用GNN,因为相关性是一个网络。
邻接矩阵是GNN要得到的东西,但是相关性的邻接矩阵不就是相关性矩阵吗
所以可以直接计算相关性矩阵来实现,但是这种做法是十分耗时的。
而且也只能是起到attention的作用,增强了某些信息。
通过增加空白节点作为胶水的形式,融合模态。
思考:预训练编码器(信源编码),然后通过任意DNN预测模态间特征的邻接矩阵(融合指导),使用GNN预测每一个特征上的附加信息(信道编码)。
注:附加信息量与初始信息量的比例,等于多个模态编码后的码长之比。
【AI】目标检测任务的评估指标:AP、mAP
史上最易懂AP、mAP计算解析
【星光05】全局计时器
这是一个记录时间节点和代码运行顺序的计时器,可以在代码任意位置调用记录运行时间,保存到本地 .csv 文件。
✨代码部分创建 timer.py 文件,创建 GlobalTimer 类。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960import time as tfrom typing import Dict, Listimport pandas as pdclass GlobalTimer: """ 全局计时器,跨文件实现代码的时间节点记录。 """ __time_dict: Dict[str, List[float or None]] = {} # 时间存储字典 time_slice_count: int = 0 # 时间切片计数 def __init__(self): pas ...
【星光04】Mmdetection3dlab 使用指南
MMDetection3D 是一个基于 PyTorch 的目标检测开源工具箱, 下一代面向3D检测的平台对安装 MMDetection3D有问题的同学可以看:【星光02】MMDetection3D 目标检测框架的 Docker 环境制作和改良
✨本文结合官方文档,梳理了基于 mmdet3d 开发人工智能模型的基本流程,整理相关的代码和小工具。如遇任何问题,可以查阅官方文档,MMDetection3D 的官方文档还是写得很好的(就是有一些多模态的代码跑不通,本文会注释部分问题命令)
一、数据预处理官方对数据集预处理的文档:3D 目标检测 KITTI 数据集,流程如下:
解压所有 Kitti 数据集,并将文件按如下方式组织:
12345678910111213mmdetection3d├── data| ├── kitti| | ├── ImageSets| | ├── testing| │ │ ├── calib| │ │ ├── image_2| │ │ ├── velodyne| | ├── training| ...
【开发框架】Mmdetection3dlab Docker 环境改良和制作
✨本文提供了一套完整的基于Docker的目标检测研究环境搭建思路,对官方教程进行了一定的修改和补充。同时随文提供SSH和Jupyter server实践,均为可用状态,提供了可靠资料给小伙伴们探索。
注:官方docker适合运行框架内的模型,本文的修改的docker适合对模型进行修改和创新,对使用者的要求略高。
全流程12345678910111. 下载需要的资源 1. 下载 Kitti 数据集 2. 下载 MMDetection3D 代码 3. 下载需要的模型参数2. 制作开发环境 1. 按说明将预训练模型参数和数据放到相应路径下 2. 编辑 Dockerfile 3. 制作 Docker 镜像 4. 创建 Docker 容器3. 开始使用x. 框架解析
官方文档:MMDetection3D
一. 下载需要的资源1. 下载 Kitti 数据集官方网址:3D Object Detection Evaluation 2017。参见博文:KITTI数据集下载及解析,内附百度云盘链接。
2. 下载 MMDetection3D 代码
官方代码仓库:https:/ ...
【Python】生成某个文件夹的目录树
1. 使用背景一些情况下我们想要生成某个工程文件夹的文件目录,写在文档里面逐一说明每个文件的功能,这是如果能自动生成文件树就是一件很方便的事。
2. 代码在如下代码中,只需要给定path目录就可以。
123456789101112131415161718from pathlib import Pathtree_str = ''def generate_tree(pathname, n=0): global tree_str if pathname.is_file(): tree_str += ' |' * n + '-' * 4 + pathname.name + '\n' elif pathname.is_dir(): tree_str += ' |' * n + '-' * 4 + \ str(pathname.relative_to(pathname.parent)) + ' ...
【方法】使用Powershell重启关键程序
参考:https://www.coder.work/article/6671779
1234tasklist | findstr cmdStart-Process cmd.exe -WindowStyle HiddenStop-Process -Id 11172; Stop-Process -Id 11172; Start-Process cmd.exe -WindowStyle Hidden
; :同一行写多句| :管道,前一个的输出到后一个的输入
使用 Whl 安装 Pytorch 施工中~
whl 大法好!
1pip install torch==1.11.0+cu115 torchvision==0.12.0+cu115 -f https://download.pytorch.org/whl/torch_stable.html
jupyter notebook 中的ipykernel内核是jupyter notebook的python,尽量还是使用系统环境中的默认内核。
12345>>> torch.save(bn.state_dict(), 'bn.pt')>>> bn_state_dict = torch.load('bn.pt')>>> new_bn = torch.nn.BatchNorm1d(3, track_running_stats=True)>>> new_bn.load_state_dict(bn_state_dict)<All keys matched successfully>
https://www.w3cschoo ...
【Python星光】pandas 中 Merge 函数的参数 How 超详细解释
:four_leaf_clover:碎碎念:four_leaf_clover:Hello米娜桑,这里是英国留学中的杨丝儿。我的博客的关键词集中在算法、机器人、人工智能、数学等等,点个关注吧,持续高质量输出中。:cherry_blossom:唠嗑QQ群:兔叽的魔术工房 (942848525):star:B站账号:杨丝儿今天也在科学修仙(UP主跨站求个关注)
在pandas中如果我们想将两个表格按照某一主键合并,我们需要用到merge函数。
1pd.merge(dataframe_1,dataframe_2,how="inner")
参数how有四个选项,分别是:inner、outer、left、right。
inner是merge函数的默认参数,意思是将dataframe_1和dataframe_2两表中主键一致的行保留下来,然后合并列。
outer是相对于inner来说的,outer不会仅仅保留主键一致的行,还会将不一致的部分填充Nan然后保留下来。
然后是left和right,首先为什么是left和right,left指代的是输入的时候左边的表格即data ...
【学习计划】信息论 Information Theory 施工中~
学习目标:理解信息论,可以使用通俗易懂的语言说明信息论是什么,有什么作用,以及在哪里用。同时在学习的过程中与之前的相关思想建立连接。
信息论书籍:Information Theory, Inference, and Learning Algorithms
640页,主要是前两部分
作者配套课程:Course on Information Theory, Pattern Recognition, and Neural Networks - VideoLectures - VideoLectures.NET
共16节课,约20小时
推荐计划4天,每天吃透4节课的内容
第五天进行复习
作者资料:Inference Group: Home,David MacKay, born 22 April 1967, died 14 April 2016,卡文迪寻实验室机器学习和信息论方向专家。
:four_leaf_clover:碎碎念:four_leaf_clover:Hello米娜桑,这里是英国留学中的杨丝儿。专注人工智能的情感研究,喜爱物理仿真和可解释性方向,ACGN爱好者。持续高 ...
【数学】多元高斯分布的熵
作者: 引线小白-本文永久链接:http://www.limoncc.com/概率论/2017-01-10-多元高斯分布的熵/知识共享许可协议: 本博客采用署名-非商业-禁止演绎4.0国际许可证
一、若干引理1、引理1.01、连续随机向量函数考虑一般情况,我们有随机向量 $\displaystyle \bm{x}\sim f(\bm{x})$。现在有函数 $\displaystyle \bm{y}=\bm{g}(\bm{x}):\mathbb{R}^k\mapsto\mathbb{R}^d$。即有:$$\begin{aligned}\bm{y}=\bm{g}(\bm{x})\end{aligned}$$若上述方程有唯一解:$$\begin{aligned}\bm{x}=\bm{h}(\bm{y})\end{aligned}$$则称函数 $\displaystyle \bm{x}=\bm{h}(\bm{y})$是 $\displaystyle \bm{y}=\bm{g}(\bm{x})$的反函数。同时我们有雅可比行列式:$$\begin{ ...