整理Ubuntu深度学习服务器初始化操作

news2024/12/22 19:52:18

前言

这两年总是换服务器,每次配置都挺麻烦的要搜一堆东西,干脆直接整理一下供自己以后参考。

版本说明

Ubuntu 20.04 桌面版

系统配置

配置SSH

安装ssh

sudo apt update
sudo apt install openssh-server

检查ssh状态

sudo systemctl status ssh
  • 如需使用VNC远程桌面可以参考这篇教程进行配置

开机自动挂载磁盘

Ubuntu 开机自动挂载硬盘 - CSDN

创建新用户

创建名为dl的用户并设置密码:

sudo useradd -m -s /bin/bash dl
sudo passwd dl

添加管理员权限:

sudo vim /etc/sudoers

添加该行:为dl添加管理员权限并且使用sudo不需要输入密码

dl      ALL=(ALL) NOPASSWD:ALL
  • 如果sudo还是需要密码,则有可能是被用户组设置覆盖了,为了防止这种问题的出现建议将该行插入到文件末尾。

安装screen

sudo apt install screen

修改screen基本设置

Conda环境配置

安装MiniConda

在MiniConda下载页找到对应版本的安装脚本下载链接,使用wget下载。

wget https://repo.anaconda.com/miniconda/Miniconda3-py38_4.12.0-Linux-x86_64.sh

执行安装

sh Miniconda3-py38_4.12.0-Linux-x86_64.sh
  • 建议安装到公用目录下/opt/miniconda3

初始化Conda

运行以下命令初始化Conda:

/opt/miniconda3/bin/conda init

初始化结果:

dl@server:~$ /opt/miniconda3/bin/conda init
no change     /opt/miniconda3/condabin/conda
no change     /opt/miniconda3/bin/conda
no change     /opt/miniconda3/bin/conda-env
no change     /opt/miniconda3/bin/activate
no change     /opt/miniconda3/bin/deactivate
no change     /opt/miniconda3/etc/profile.d/conda.sh
no change     /opt/miniconda3/etc/fish/conf.d/conda.fish
no change     /opt/miniconda3/shell/condabin/Conda.psm1
no change     /opt/miniconda3/shell/condabin/conda-hook.ps1
no change     /opt/miniconda3/lib/python3.8/site-packages/xontrib/conda.xsh
no change     /opt/miniconda3/etc/profile.d/conda.csh
modified      /home/dl/.bashrc

==> For changes to take effect, close and re-open your current shell. <==

可以发现初始化程序修改了~/.bashrc,添加了如下几行:

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/opt/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/opt/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/opt/miniconda3/etc/profile.d/conda.sh"
    else
        export PATH="/opt/miniconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

重启bash或输入source ~/.bashrc重载配置,按道理这时应该能看到(base)
运行conda -h检查是否安装成功。

创建python虚拟环境

/opt/miniconda3/envs下创建名为dl版本为python3.8虚拟环境。

conda create -p /opt/miniconda3/envs/dl python=3.8

直接运行一般会报错:

Preparing transaction: failed

CondaError: Unable to create prefix directory '/opt/miniconda3/envs/dl'.
Check that you have sufficient permissions.

因为/opt下的权限是这样的(通过ls -alh /opt/miniconda3/envs/查看),缺少w权限

drwxr-xr-x root root

添加其他用户组w权限

sudo chmod -R o+w /opt/miniconda3/envs/

再次运行环境安装命令,出现下述结果即安装成功:

(base) dl@server:~$ conda create -p /opt/miniconda3/envs/dl python=3.8
...
...
...
#
# To activate this environment, use
#
#     $ conda activate /opt/miniconda3/envs/dl
#
# To deactivate an active environment, use
#
#     $ conda deactivate

通过conda activate dl启动环境。

  • 为啥要装在/opt下呢?因为这样的话新用户只需要/opt/miniconda3/bin/conda init即可使用其他用户已安装的虚拟环境。

常用设置

为了避免每次使用都需要手动启动环境,将该命令其写入~/.bashrc,顺便也将一些常用的别名写进去。
~/.bashrc末尾添加:

# 自定义
conda activate dl
alias ll='ls -alFh'
alias smi='nvidia-smi'
alias py='python'

安装PyTorch

在pytorch官网选择所需的版本的conda安装命令:
在这里插入图片描述

conda install pytorch torchvision torchaudio pytorch-cuda=11.6 -c pytorch -c nvidia

一个简单的python例子测试是否安装成功:

import torch
x = torch.zeros([2,3]).cuda()
print(x @ x.T)

安装其他必要的库

设置pip国内源

创建pip配置文件

mkdir ~/.pip
vim ~/.pip/pip.conf

写入中科大源(个人感觉速度最快)

[global]
index-url = https://pypi.mirrors.ustc.edu.cn/simple
[install]
trusted-host = https://pypi.mirrors.ustc.edu.cn

常用库

安装这几个,其他所需的库基本都根据依赖自动安装了。

pip install ipython
pip install scikit-learn
pip install matplotlib
pip install pyyaml

配置PyCharm远程调试

需要PyCharm专业版,社区版好像没这个功能。

配置远程Python解释器

进入设置 - Python解释器 - 显示所有 - 添加+,新建SSH解释器:
在这里插入图片描述
配置SSH信息:
在这里插入图片描述
配置文件映射:
在这里插入图片描述

在这里插入图片描述

其中SSH配置如下:
在这里插入图片描述
配置Python解释器位置工程文件映射路径,如图所示:
在这里插入图片描述

配置文件映射

配置完python解释器后在工具栏 - Tools - Deployment - Configuration 检查文件映射是否正常开启:
在这里插入图片描述
将文件映射开启后,在左侧的文件窗口中选中项目根目录,然后点击工具栏 - Tools - Deployment - Upload 将代码上传到服务器。
在这里插入图片描述
最后使用Pycharm随便运行一个文件,测试远程解释器是否能正确使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/53960.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

js将图片或者文件转成base64格式的两种方法

场景一&#xff0c;项目assets资源里面的图片本地图片&#xff0c;重点如下 需要了解 canvas的基本操作&#xff0c;canvas.toDataURL 方法 HTMLCanvasElement.toDataURL() 方法返回一个包含图片展示的 data URI 。可以使用 type 参数其类型&#xff0c;默认为 PNG 格式。图片…

session和cookie的区别

文章目录一概念理解1、无状态的HTTP协议&#xff1a;2、会话&#xff08;Session&#xff09;跟踪&#xff1a;二cookie1、会话Cookie和持久Cookie2、Cookie具有不可跨域名性三. Session1、两个问题&#xff1a;2、session的创建&#xff1a;3、禁用cookie&#xff1a;四. 总结…

GIS工具maptalks开发手册(二)01-02之GeoJSON转化为Geometry——渲染点

GIS工具maptalks开发手册(二)01-02之GeoJSON转化为Geometry——渲染点 效果 1、html官方版 <!DOCTYPE html> <html> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1"> <t…

c实现mp4解封装

文章目录前序MP4简介MP4的定义MP4的封装格式Box类型详解Box格式ftyp boxmvhd boxtkhd boxhdlr boxmdat boxstbl boxstsd boxstco boxstsc boxstsz boxstts boxstss boxdemuxer demo的实现(视频数据部分)总结&#xff1a;工具介绍源码参考前序 最近为了更加深入了解音视频demux…

nginx源码分析--基数树

typedef struct {ngx_radix_node_t *root;ngx_pool_t *pool;ngx_radix_node_t *free;char *start;size_t size; } ngx_radix_tree_t;预备知识 1.基数树也是一种二叉查找树,目前官方模块中仅geo模块使用了基数树.2.ngx_radix_tree_t基数树要求…

微服务框架 SpringCloud微服务架构 8 Gateway 网关 8.7 网关的cors 跨域配置

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构8 Gateway 网关8.7 网关的cors 跨域配置8.7.1 跨域问题处理8.7.2 案例8.7.…

深入讲解Netty那些事儿之从内核角度看IO模型(下)

接上文深入讲解Netty那些事儿之从内核角度看IO模型&#xff08;上&#xff09; epoll 通过上边对select,poll核心原理的介绍&#xff0c;我们看到select,poll的性能瓶颈主要体现在下面三个地方&#xff1a; 因为内核不会保存我们要监听的socket集合&#xff0c;所以在每次调用…

最全面的Spring教程(六)——WebSocket

前言 本文为 【SpringMVC教程】WebSocket 相关知识介绍&#xff0c;具体将对WebSocket进行简介&#xff0c;并通过实战案例对WebSocket的使用进行详尽介绍~ &#x1f4cc;博主主页&#xff1a;小新要变强 的主页 &#x1f449;Java全栈学习路线可参考&#xff1a;【Java全栈学…

SpringBoot接口 - 如何优雅的写Controller并统一异常处理?

内容目录 为什么要优雅的处理异常 实现案例ControllerAdvice异常统一处理Controller接口运行测试 进一步理解ControllerAdvice还可以怎么用&#xff1f;ControllerAdvice是如何起作用的&#xff08;原理&#xff09;&#xff1f; 示例源码 更多内容 SpringBoot接口如何对异…

【Pygame实战】代码版《舞动青春*炫舞》能否引领音舞游戏再一次爆发?“你还记得最浪漫的舞蹈游戏炫舞吗?”

导语 Hello&#xff0c;大家好呀&#xff01;我是木木子吖&#xff5e; 一个集美貌幽默风趣善良可爱并努力码代码的程序媛一枚。 听说关注我的人会一夜暴富发大财哦~ &#xff08;哇哇哇 这真的爱&#x1f60d;&#x1f60d;&#xff09; 所有文章完整的素材源码都在&#…

GIS工具maptalks开发手册(二)01-11——渲染文字及参数注释

GIS工具maptalks开发手册(二)01-11——渲染文字及参数注释 效果 代码 index.html <!DOCTYPE html> <html> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1"> <title>…

E. Gardener and Tree(拓扑排序)

Problem - 1593E - Codeforces 树是一个无定向的连接图&#xff0c;其中没有循环。这个问题是关于无根的树。一棵树的叶子是一个顶点&#xff0c;它最多与一个顶点相连。 园丁维塔利用n个顶点种了一棵树。他决定对这棵树进行修剪。为了做到这一点&#xff0c;他进行了一些操作…

云原生应用的最小特权原则

IDC 预计&#xff0c;从现在到 2024 年初&#xff0c;将开发和部署 5 亿个新应用程序——超过过去 40 年的总和。 Gartner 预测&#xff0c;到 2025 年&#xff0c;75% 的企业将运行某种容器化应用程序。 现代应用程序需要现代安全性。 公共云供应商非常积极地提升平台安全性&…

JAVA培训之连接查询之子查询

子查询就是嵌套查询&#xff0c;即SELECT语句中包含SELECT语句&#xff0c;如果一条语句中存在两个&#xff0c;或两个以上SELECT&#xff0c;那么就是子查询语句了。 子查询出现的位置&#xff1a; Where子句中&#xff0c;作为条件存在&#xff1b;from后&#xff0c;作为表…

Bootstrap学习(十一)

模态框使用&#xff1a; tab标签页组件 模态框使用&#xff1a; 有属性、方法、事件 fade显示时的渐变动画可加可不加&#xff0c;role是屏幕辅助设备用的 aria-lable屏幕辅助设备用的 静态的模态框是不展示的&#xff0c;需要调用展示方法才能展示 在中心内容放一个表单&…

Transformer Encoder-Decoer 结构回顾

有关于Transformer、BERT及其各种变体的详细介绍请参照笔者另一篇博客&#xff1a;最火的几个全网络预训练模型梳理整合&#xff08;BERT、ALBERT、XLNet详解&#xff09;。 本文基于对T5一文的理解&#xff0c;再重新回顾一下有关于auto-encoder、auto-regressive等常见概念&…

Elasticsearch 安装及启动【Windows】

一、下载 Elasticsearch 官网下载地址&#xff1a;https://www.elastic.co/cn/downloads/past-releases#elasticsearch 选择自己所需版本进行下载&#xff0c;这里以Elasticsearch 8.2.2 为例 点击 Download&#xff0c;选择 Windows 版本 二、使用步骤 1.安装 Elasticse…

大数据培训课程WordCount案例实操

WordCount案例实操 1&#xff0e;需求 在给定的文本文件中统计输出每一个单词出现的总次数 &#xff08;1&#xff09;输入数据 &#xff08;2&#xff09;期望输出数据 atguigu 2 banzhang 1 cls 2 hadoop 1 jiao 1 ss 2 xue 1 2&#xff0e;需求分析 …

如何看待越来越多人报名参加软考?

可以肯定的告诉你软考证书是有用的。 但是软考证书如果对于自己今后的职业生涯规划也有帮助&#xff0c;和你的职业发展和需求相匹配&#xff0c;那才能发挥软考证书最大的优势。 软考证书的用处体现在哪里&#xff1f; 1、证书认可度高 软考是一种简称&#xff0c;全称是计…

变分推断(Variational Inference)解析

一、什么是变分推断 假设在一个贝叶斯模型中&#xff0c;xxx为一组观测变量&#xff0c;zzz为一组隐变量&#xff08;参数也看做随机变量&#xff0c;包含在zzz中&#xff09;&#xff0c;则推断问题为计算后验概率密度P(z∣x)P(z|x)P(z∣x)。根据贝叶斯公式&#xff0c;有&am…