在服务器上进行深度学习的入门教程

article/2025/11/6 3:22:30

1.远程登录

Windows用户推荐使用Xshell

主机那里填上服务器IP,下面填一下端口号,然后点击连接,之后会让你输入用户名密码,输入之后就可以进入啦

2.GPU状态

进入之后可能大家最想关注的就是GPU占用情况,可以使用一下两种命令来查看一下~

watch -n 1 nvidia-smi

或者

watch --color -n 1 gpustat --color

其中,--n是代表刷新时间,1就是每秒刷新一次;--color是加颜色好看一点QwQ,去掉也可以

按ctrl+z可以退出哦~

3.传输文件

如果显卡有空闲,我们就可以准备跑代码啦

不过首先需要把代码和数据集复制到服务器上。这里推荐使用Xftp,和Xshell一块下载就可以。

在Xshell中点击这个按钮就可以传输文件了,界面十分友好,直接把Windows的文件拖过去就行了

甚至可以像Windows一样操作Linux里的文件哦

要想运行python文件,除了坏境外(服务器上要用Anaconda不然人多容易乱掉),还要把文件的访问权限更改一下,如果是小白没有特殊需求的话可以直接

chmod 777 xxx.py

777就是把权限拉满。如果有不希望其他人访问这个文件等其他需求,可以查一下linux文件访问权限的相关知识随意修改。

嫌麻烦的话在Xftp中也是可以修改权限的

4.运行代码

在activate你自己的Anaconda环境并更改文件权限之后,使用

python xxx.py

即可运行代码。

不过我们可能需要并行运行多种参数的代码

在命令后面加上&即可让命令在后台执行。为了能看到训练日志,可以使用>将输出重定向到一个文件中(否则会直接打印到屏幕上)

运行的时候代码中要调的参数用argparse(比较常见的东西,如果你读别人的代码的话几乎都是用这个的)

比如要调整dropout参数和lr参数:

python train.py --dropout=0.6 --lr=0.005 > log_001.txt &

用jobs命令可以查看后台任务的运行状况(任务号、进程号、stopped、running等),在前台运行的程序用ctrl+z可以stop它并丢到后台,用bg [任务号] (不含方括号,介绍linux命令的文档都是这种格式哦)命令可以让stopped的任务继续在后台跑,用fg[任务号]命令可以让后台的任务来前台执行。

为了防止忘记上面调了那些参数,可以把命令写成shell脚本,即创建一个xxx.sh文件,把上面的这条命令放进去,然后赋予文件权限后用 ./xxx.sh 即可

还可以在y前面加上指令指定使用哪块GPU,比如

CUDA_VISIBLE_DEVICES=0 python train.py --dropout=0.6 --lr=0.005 > log_001.txt &

就是使用0号GPU

注意:对于TensorFlow用 户而言,程序中新建Session时一定要设置gpu_options.allow_growth为True。否则 TensorFlow 会占用掉你选中显卡的所有显存

有时候可能想要跑多个参数,可以把多个参数放到.sh文件中让它一个一个跑,然后就可以愉快地摸鱼去啦~

5.tmux

在正式运行代码之前,有必要介绍一下tmux。

tmux是Terminal MultipleXer的缩写,意思是“终端复用器”,为什么要介绍它呢?

要知道,我们的ssh连接在中断之后,其中的进程也会终止,也就是说我们跑一个代码要几天的话中间ssh连接断开了,这几天也就白跑了。

一种方式是在命令前面加上 nohup 

nohup python train.py --dropout=0.6 --lr=0.005 > log_001.txt &

不过这样还不够方便,因为我希望实时知道每个代码运行到什么程度,比如创建多个窗口,让每个代码都在前台跑,我需要看的时候直接进入这个窗口就可以看到训练进度。而且当我们ssh连接断开时,这些窗口并不会关闭,代码还会继续跑!

这就是tmux的用处!

安装好tmux后,使用

tmux new -s xxx

创建一个名为xxx的会话(tmux session),之后就会进入一个tmux窗口,其左下角

代表当前窗口的名称编号等信息

按Ctrl+B,之后再按C即可创建一个新窗口

上面的三个窗口中,2:bash有一个星号*, 代表当前的窗口是2

按Ctrl+B,之后再按相应数字键即可切换到相应窗口(Linux中尽量不要按108键盘右面的键盘区数字可能会有问题)

如果一次开9个以上窗口,就需要其他的方式切换了,不过开这么多窗口毕竟就不够方便了,也可以再新建一个会话

使用Ctrl+B,再按D可以退出当前会话,或者输入tmux detach也可以退出(注意,用Ctrl+D会删除当前窗口,删掉就回不来了,不要搞混哦。只有一个窗口的时候会删掉会话)

查看已有的session列表:

tmux ls

重新连接某个会话:

tmux attach -t xxx
上下分屏:Ctrl + B 再按 "
左右分屏:Ctrl + B 再按 %
切换分屏:Ctrl + B 再按 o

将以下配置文件(文件名:.tmux.conf)添加到自己的目录下,并将tmux退出再重进,即可使用鼠标:

# mouse mode on
set-option -g mouse on

还可以添加如下文件(.vimrc)让vim也更加好用:

set nu
syntax on
set hlsearch
set tabstop=4
set showmatch
set ruler
set mouse=a
set laststatus=2set statusline=%f         " Path to the file
set statusline+=\ -\      " Separator
set statusline+=FileType: " Label
set statusline+=%y        " Filetype of the file
set statusline+=\ \ \     " Separator
set statusline+=%4l/%L    " Current line


http://chatgpt.dhexx.cn/article/Cy6YPPKw.shtml

相关文章

深度学习基础入门

课程简介 本课程共分为三个部分:基础理论、深度神经网络基本结构以及网络优化与实践。本课程采用了理论结合实践的讲解方式,方便读者边学边练,理解巩固。在解释相关概念时,作者尽力使用简单、直观、可实现的公式语言描述,尽量避免使用图形、比喻和白话等容易使初学者误入…

深度学习教程(5) | 深度学习的实用层面(吴恩达·完整版)

作者:韩信子ShowMeAI教程地址:https://www.showmeai.tech/tutorials/35本文地址:https://www.showmeai.tech/article-detail/216声明:版权所有,转载请联系平台与作者并注明出处收藏ShowMeAI查看更多精彩内容 本系列为吴…

深度学习教程 | 吴恩达专项课程 · 全套笔记解读

作者:韩信子ShowMeAI教程地址:https://www.showmeai.tech/tutorials/35声明:版权所有,转载请联系平台与作者并注明出处收藏ShowMeAI查看更多精彩内容 引言 本篇内容是ShowMeAI组织的「深度学习教程 | 吴恩达专项课程 全套笔记解…

深度学习教程(1) | 深度学习概论(吴恩达·完整版)

作者:韩信子ShowMeAI教程地址:https://www.showmeai.tech/tutorials/35本文地址:https://www.showmeai.tech/article-detail/212声明:版权所有,转载请联系平台与作者并注明出处收藏ShowMeAI查看更多精彩内容 本系列为吴…

【零基础深度学习教程第一课:深度学习基础】

深度学习基础 目录 *深度学习基础*《第一节 深度学习简介》一、深度学习与机器学习区别二、神经网络简介2.1 单神经元网络2.2 多神经元网络 《第二节 神经网络基础》一、数据矩阵化1.1 惯例符号1.2 表示方法 二、激活函数与损失函数2.1 激活函数2.2 损失函数2.2.1 损失函数的定…

深度学习基础快速入门

目录 一、前言 二、MRI成像方向相关 三、相关技术文档 四、环境搭建相关 五、深度学习常用的函数 5.1numpy的使用 numpy.ones numpy.transpose numpy.delete 5.2matplot散点图绘制 5.3torch的使用 六,深度学习知识方面 6.1梯度 6.2loss函数 七、卷积神…

【深度学习基础】《深度学习》李宏毅

目录 Lecture I: Introduction of Deep Learning 1. 深度学习的步骤 2. 全连接前馈神经网络(Fully Connect Feedforward Network) 2.1 神经元 2.2. 激励函数 2.3 Softmax layer 2.4 网络结构 2.5 应用举例(数字识别) 3. …

深度学习基础知识教程

本文主要分享一些深度学习入门的学习途径,同学们共同进步呀! 首先说下学习深度学习必备技能: Python、高等数学(现代、微积分)、英文文献阅读、查找资料(博客、论坛、Git) 个人认为如果以前…

mysql索引优化 - 多表关联查询优化

1 left join EXPLAIN SELECT * FROM class LEFT JOIN book ON class.card book.card; LEFT JOIN条件用于确定如何从右表搜索行, 左边一定都有, #所以右边是我们的关键点,一定需要建立索引 。 结论: 在优化关联查询时,…

Clickhouse一级索引优化方案

文章目录 Clickhouse的应用场景1、索引介绍1.1、主要索引1.2、二级索引1.2.1、数据跳过索引 2、一级索引优化2.1、CK的sql的优化方向2.2、验证过程结论: 2.3、如何修改排序键总结: 3、二级索引(跳数索引) 知识点查看Clickhouse的执…

Mysql详解——索引优化

本篇文章是对Mysql索引的创建以及优化进行一个介绍,关于索引的底层原理可以看我另一篇文章:Mysql详解——索引详解 文章目录 一、索引的创建和设计原则1. 索引的声明和使用1.1 索引的分类:1.2 索引的创建:在创建表时创建索引&…

MySQL SQL和索引优化总结

文章目录 一、SQL语句和索引的优化二、应用优化三、MySQL Server优化1. 自适应哈希索引2. redo log3. MySQL查询缓存4. 索引和数据缓存5. MySQL线程缓存6. 并发连接数量和超时时间 首先我们需要知道MySQL主要是从以下3个方面进行优化: SQL语句和索引应用优化&#…

mysql嵌套子查询索引_SQL 子查询,索引优化

场景 索引优化 单列索引 多列索引 索引覆盖 排序 场景 我用的数据库是mysql5.6,下面简单的介绍下场景 课程表 create table Course( c_id int PRIMARY KEY, name varchar(10) ) 数据100条 学生表: create table Student( id int PRIMARY KEY, name varchar(10) ) 数据70000条 …

索引如何优化

前言 索引的相信大家都听说过,但是真正会用的又有几人?平时工作中写SQL真的会考虑到这条SQL如何能够用上索引,如何能够提升执行效率? 此篇文章详细的讲述了索引优化的几个原则,只要在工作中能够随时应用到&#xff0c…

MySQL高级-索引优化(超详细)

性能分析 MySQL Query Optimizer Mysql中由专门负责优化SELECT语句的优化器,主要功能就是通过计算分析系统中收集到的统计信息,为客户端请求的Query提供他认为最优的执行计划(他认为最优的,但**不一定是DBA觉得最优的&#xff0…

mysql locate索引_MYSQL索引优化

1.查看sql的执行频率 MySQL 客户端连接成功后,通过 show [session|global] status 命令可以提供服务器状态信息。show [session|global] status 可以根据需要加上参数“session”或者“global”来显示 session 级(当前连接)的计结果和 global 级(自数据库上次启动至今)的统计结…

索引优化详解

一、EXPLAIN 做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划。 下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据 type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别 key列,使用到的索引名。如果…

索引优化原则

1、全值匹配 查询语句尽量使用全值匹配。 2、左前缀原则 如果一个索引是组合索引,索引了多列,要遵循左前缀原则,即查询从索引的左前缀开始,不能跳过索引中间的列。 3、不要在索引列上操作 操作包括:计算、函数、自动…

项目中常用的MySQL优化你知道多少?

项目中常用的MySQL优化 文章目录 项目中常用的MySQL优化前言一、mysql优化是什么?二、优化步骤1.EXPLAIN2.SQL语句中IN包含的值不应太多3.SELECT语句务必指明字段名称4.如果排序字段没有用到索引,就尽量少排序5.如果限制条件中其他字段没有索引&#xff…

一文带你你搞懂索引如何优化!!!

前言 索引的相信大家都听说过,但是真正会用的又有几人?平时工作中写SQL真的会考虑到这条SQL如何能够用上索引,如何能够提升执行效率?此篇文章详细的讲述了索引优化的几个原则,只要在工作中能够随时应用到,相…