1.tmux
通常我们在连接远程服务器训练模型时,如果直接使用终端,一旦本地的vscode关闭(比如我们需要关闭电脑,信号断更等等),则训练就会直接终止。因此对于时间较长的模型训练,我们常常采用tmux来进行训练,相当于在远程服务器上开启了一个终端(只要服务器不断,训练就会一直进行)因此使用tmux的好处就在于,即使我们关闭了本地电脑,程序仍然能在远程运行。
一下是tmux的最常用语法:
tmux new -s xxx //表示新建一个名叫xxx的tmux远程终端
tmux ls //查看当前远程服务器上有几个tmux终端
tmux attach -t xxx //进入到xxx tmux终端中,相当于重新查看任务的执行情况,常常再退出vscode
//重新进入时使用
tmux kill session -t xxx //表示删除名叫xxx的终端
exit //表示退出tmux远程终端,回到本地终端
2.github
github可以理解为一个代码仓库,在上面我们既可以保存自己的项目文件,也可以学习其他人优秀的开源代码。
很多时候,我们希望把相关代码复制下来,在自己电脑上的vscode运行。
1.直接用命令行进行操作,一般有两种方式
1)用https协议进行,一般针对公共对外开放的仓库
我们可以直接用git clone +https...(这段代码从github上具体项目的下载code那里点开复制)
但如果想往仓库里写东西是得知道github账号的,一般对于他人开源的账号不可取
2)采用ssh keys(密钥对)的方式
一般针对私人的仓库,我们用ssh生成一对公私钥匙对,我们把公钥复制放在我们自己的github账号中,我们自己的本地电脑(或远程服务器)保存着私钥,这样相当于在我们的电脑和私人仓库间建立了直接联系,通过密钥对,我们可以不用进行身份验证,安全私密的更改上传下拉代码。
相关在远程服务器或本地电脑生成公私钥匙对的方法:
切记:记得把公钥复制到自己的github账号上!
这样我们也可以用git clone+ssh的指令(从github具体项目的下载code那里点开复制
因此:一般ssh针对私人仓库;https针对从公共仓库便捷拉取代码。
但很多时候,由于我们是连的远程服务器,如果它没有翻墙的话,利用https可能无法直接从github上下载代码(只能采用镜像等方式),因此我们还有最为直接的方法。
2.直接下载项目的压缩包,在把项目文件解压复制粘贴或拖动利用vscode传给远程服务器。(一般是在工作区新建好文件夹后,再把项目文件复制进来)
当然,有的时候项目很大,我们只需要其中一些文件,我们可以点开那个想要从github上下载的文件,复制其地址,粘贴到downgit中,就可以实现下载。
3.关于github项目的版本和分支
对于一个工程项目,往往需要不断更新代码,特别是多人合作情况下,每个人对于源代码更新的方向也不同,这个时候我们就会在主分支的基础上建立许多其它分支(也都是利用git语法实现的)相
相当于每个分支都可以认为是一个独立的项目,在修改中不断提交,每次提交都会历史记录。
比如在原来版本的基础上,一个人在做A工作,也就是在不断更新A分支;一个人在做B工作,就是不断在更新B分支,但优化到一定程度时,就可以利用git把A,B分支整合到main主干上,并打上标签tag,也就是版本号,这样就形成了稳定的版本,供大家使用。(因此可以理解为每个版本都是main的历史更新中的版本,只不过由于结合了其它分支的优化比较稳定被打上tag保存了下来)
因此,在复现别人工作时,特别是项目文件存在版本更新的情况下,我们一定要看readme中作者用的是哪个版本跑的程序,那我们要选择相应版本进行下载。如果使用git clone,就在常规语法前加入一部分:
git clone -b 2.20.3 --depth=1 https://github.com/geoserver/geoserver.git
//要增加 -b 2.20.3 其中2.20.3就是要下载的版本号