如何在云服务器上训练(train)神经网络?

目录:

  • 如何在云服务器上训练(train)神经网络?
    • 一、linux常用命令
    • 二、WinScp连接云服务器
    • 三、搭建云服务器虚拟环境(ubuntu为例)
    • 四、在云服务器上开始训练网络
    • 五、如何让部署在云服务器上的项目一直运行
    • 六、报错:Unable to allocate xxx GiB for an array with shape (xxxx, xxxx)
      • 方法1、在Ubuntu服务器上添加swap交换文件
        • 1).首先来了解一下什么是Swap
        • 2).检查系统的交换信息
        • 3).检查硬盘驱动器分区上的可用空间
        • 4).创建swap文件
        • 5).启用交换文件
        • 6).永久保留交换文件

一、linux常用命令

linux命令 作用
cd / 切换到根目录
pwd 查看当前目录路径
ls -a 查看根目录
rm -rf 删除文件夹
sudo mkdir 文件夹名称 创建文件夹

二、WinScp连接云服务器

文件协议:SFTP
主机名:实例公网IP
用户名:root
密码:root密码,(如果忘记,可以通过 sudo passwd root 修改)
保存登录即可。

  • 报错Permission denied,please try again:
    当使用Winscp连接云服务器时,我们发现错误,被拒绝,是因为ssh的权限问题,需要修改权限,进入到/etc/ssh文件夹下,用root用户修改文件sshd_config,(引用链接:https://www.cnblogs.com/xuliangxing/p/7428737.html
  • 解决办法:
    切换到root用户:sudo -i
    如果忘记root密码 可以更改:sudo passwd root
    用root用户修改文件:cd /etc/ssh , vim sshd_config
    将PermitRootLogin no / without-password改为PermitRootLogin yes(需要解开注释)
    重启sshd服务:sudo service ssh restart

三、搭建云服务器虚拟环境(ubuntu为例)

借鉴文章,总结如下:

  • 安装python3.6

  • 检测pip3是否存在:

    pip3 -V
    

    如果不存在,安装:

    sudo apt install python3-pip
    

    检查安装:

    pip3 list
    
  • 安装虚拟环境virtualenv

    sudo apt install python3-virtualenv
    //或者
    pip3 install virtualenvwrapper
    

    对比:virtualenv不是很友好,我们可以安装virtualwrapper。virtualwrapper它是一个简单方便管理Python虚拟环境的工具。

  • 查看virtualwrapper存放路径,记为 road1

    whereis virtualenvwrapper.sh
    
  • 接着配置virtualwrapper的环境变量,存储即将创建的虚拟环境

    vim ~/.bashrc
    

    shift+g直接跳到底部,点击键盘的i键进入插入模式:

    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
    #虚拟环境存储的路径为:
    export WORKON_HOME=$HOME/.virtualenvs
    source road1 #此处是你的安装位置
    #注:HOME代表的路径可以通过命令echo $HOME查找

  • 激活我们的配置

    source ~/.bashrc
    
  • 创建虚拟环境

    mkvirtualenv -p python3.6 虚拟环境名称
    
  • 虚拟环境操作常用linux命令:

    常见命令 作用
    workon / lsvirtualenv 查看现有虚拟环境
    workon 虚拟环境名称 使用虚拟环境
    workon +tab tab 使用虚拟环境
    deactivate 退出虚拟环境
    rmvirtualenv 删除虚拟环境(需要先退出虚拟环境)
    mkdir 创建文件夹
    rm -f 文件路径或名称 删除文件夹
    d 删除虚拟环境(需要先退出虚拟环境)

四、在云服务器上开始训练网络

步骤如下:

  1. 上传windows本地文件到linux云服务器
    如果本地是windows,好像不支持scp命令上传,可以采用WinSCP的图形界面上传(第二点中介绍如何使用WinSCP连接远程服务器)。
  2. 在服务器,如何解压文件、解压文件以zip压缩包为例:
    压缩
    zip -r archive_name.zip filename (-r是压缩文件)
    解压
    unzip archive_name.zip (解压文件在当前文件下)
    unzip archive_name.zip -d new_dir (解压文件可以将文件解压缩至一个你指定的的目录,使用-d参数)
    :tar格式、tar.gz格式、tar.bz2格式。 原文链接
  3. 运行.py文件:
    python py文件名
    报错:当报错显示找不到中国文件时,看文件名称是否被一对 ‘ ’ 包括,若是需要修改(去掉引号),继续运行即可。

    安装brain2:
    pip install brian2 -i https://mirrors.aliyun.com/pypi/simple/
    测试安装是否成功:
    import brian2
    brian2.test()

五、如何让部署在云服务器上的项目一直运行

参考文章
使用screen命令: (原文 http://lnmp.ailinux.net/screen)

  1. screen简介:
    Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
  2. screen特点——会话恢复
    只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。这一点和图形界面下的VNC很相似。
  3. 使用screen
    1)安装:

    yum install screen //CentOS 系列系统
    sudo apt-get install screen //Ubuntu 系列系统
    

    2)创建 screen 窗口:

    screen -S  name //name是开辟的新进程的名字
    

    注意:执行 screen -S name 之后系统会跳进一个新窗口,这个窗口就是我们创建的新进程(它来执行我们的命令)。在这个新窗口中可以运行要运行的项目即可。
    3)退出保存
    CTRL+a+d ,退出开辟的新窗口,但是窗口里面的程序会一直运行。
    4)查看

    screen -ls
    

    如果只有一个 screen 进程,命令行输入 screen -r -d 即可进入;
    如果有多个screen, 我们可以通过它的 PID 进入,screen PID;
    screen -r -d PID 进入之后直接CTRL+C,即可终止里面运行的程序。

六、报错:Unable to allocate xxx GiB for an array with shape (xxxx, xxxx)

解决方案参考本链接
主要是进行矩阵运算时涉及的矩阵太大了,导致分配的内存不够用。

方法1、在Ubuntu服务器上添加swap交换文件

提高服务器响应速度和防止应用程序内存不足错误的最简单方法之一是添加一些交换空间。
请注意:尽管swap区通常建议用于使用传统旋转硬盘驱动器的系统,但使用与SSD交换可能会导致随着时间的推移硬件退化问题。
参考文章链接:

1).首先来了解一下什么是Swap

Swap分区(也称交换分区)是硬盘上的一个区域,被指定为操作系统可以临时存储数据的地方,这些数据不能再保存在RAM中。 基本上,这使您能够增加服务器在工作“内存”中保留的信息量,但有一些注意事项,主要是当RAM中没有足够的空间容纳正在使用的应用程序数据时,将使用硬盘驱动器上的交换空间。
总的来说,当系统的RAM耗尽时,将交换空间作为回落空间可能是一个很好的安全网,可防止非SSD存储系统出现内存不足的情况。

2).检查系统的交换信息

在开始之前,我们可以检查系统是否已经有一些可用的交换空间,可能有多个交换文件或交换分区,但通常应该是足够的。我们可以通过如下的命令来查看系统是否有交换分区:

sudo swapon --show

如果没有任何结果或者没有任何显示,说明系统当前没有可用的交换空间。也可以使用free工具来验证当前确实没有可用的交换分区。

free -h

输出结果:
可以看到这里的”swap”行均为0,也就是说系统上没有交换处于活动状态。

3).检查硬盘驱动器分区上的可用空间

为swap分配空间的最常见方式是使用专门用于具体某个任务的单独分, 但是,改变分区方案并不是一定可行的,我们只是可以轻松地创建驻留在现有分区上的交换文件。

在开始之前,我们应该通过输入以下命令来检查当前磁盘的使用情况:

df -h

输出结果:

在这种情况下,/dev下的设备是我们的磁盘。在这个例子中我们有足够的空间(只使用了1.1G),当然,您的使用情况可能会有所不同。
尽管对于交换空间的适当大小有许多意见,但这取决于您的个人偏好和应用程序要求。 一般来说,相当于系统内存量的两倍或者两倍是一个很好的起点。 另一个很好的经验是,如果你只是把它用作RAM备用,那么swap分区的大小尽量不要超过4 GB。

4).创建swap文件

现在我们知道了可用的硬盘空间,那我们就可以在文件系统中创建一个交换文件,我们将在我们的根(/)目录下创建一个名为swapfile的文件。创建交换文件最好的方法是使用fallocate命令,这个命令能立即创建一个预分配大小的文件。由于本示例中的服务器RAM的大小为512MB,因此我们将在本教程中创建一个1 GB大小的文件,并适当加以调整,以满足您自己的服务器的需求:

sudo fallocate -l 1G /swapfile

创建完成之后,我们可以通过这个命令来验证是否保留了正确的交换空间:

ls -lh /swapfile
5).启用交换文件

现在我们有一个1 GB大小的文件,我们需要把它变成交换空间

首先,我们需要锁定文件的权限,以便只有拥有root权限的用户才能读取文件内容,这可以防止普通用户能够访问该文件,以免造成重大的安全隐患。

锁定文件的root权限:

sudo chmod 600 /swapfile

验证权限:

ls -lh /swapfile

接下来,我们可以通过以下命令将文件标记为交换空间:

sudo mkswap /swapfile

标记文件之后,我们可以启用该交换文件,让我们的系统开始使用它:

sudo swapon /swapfile

可以通过以下命令验证交换空间是否可用:

sudo swapon --show

这时,我们可以通过free再次查看我们的设置:

free -h
6).永久保留交换文件

我们最近的更改启用了当前会话的swap文件,但是,如果我们重新启动,服务器不会自动保留swap设置,我们可以通过将swap文件添加到/etc/fstab文件中来改变这一点。

备份/etc/fstab文件以防出错:

sudo cp /etc/fstab /etc/fstab.bak

将swap文件信息添加到/etc/fstab文件的末尾:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

这样就保留了swap文件。

云服务器训练神经网络相关推荐

  1. 配置云服务器训练神经网络模型

    本科计算机专业在读,大四写毕业设计需要使用云服务器训练yolo模型(自己的电脑mac无法使用gpu训练,而使用cpu太慢)所以选择通过云服务器的方式进行模型的训练,下面是从选择服务器到后期训练完成的全 ...

  2. 如何使用租用的云服务器实现神经网络训练过程(超详细教程,新手小白适用)

    超级感谢up主7_xun的B站教学视频:适合深度学习小白的CV实战--在AutoDL上租用云服务器跑YOLOv5的全过程 链接:https://www.bilibili.com/video/BV1jA ...

  3. screen命令(滴滴云服务器训练ssd)

    参考 创建 screen -S name 查看全部会话 screen -ls (detached) //链接未关闭 但窗口已关闭 (attached) //窗口未关闭 进入id为12865的scree ...

  4. 滴滴云服务器训练faster-rcnn

    滴滴会提供技术文档 https://dinone.kf5.com/hc/kb/article/1344589/ 我下载的代码是1.0分支的 https://github.com/jwyang/fast ...

  5. Pycharm远程连接云服务器训练模型教程

    作者介绍 王世豪,男,西安工程大学电子信息学院,2020级硕士研究生,张宏伟人工智能课题组. 研究方向:机器视觉与人工智能. 电子邮件:shauwang@foxmail.com 简述 受制于一些因素, ...

  6. 租用gpu训练神经网络(矩池云)

    租用gpu训练网络(矩池云) 前言 服务器环境搭建 1. 准备requirements.txt 文件 2.在矩池云租服务器 并链接到pycharm 3.配置环境 前言 我是用笔记本在家训练神经网络,因 ...

  7. 阿里云使用笔记(一):从零开始配置阿里云GPU服务器训练深度学习模型

    题 神经网络训练需要强大的GPU支持,自己搭建成本太高,并且有时候出差等原因,无法将庞大的机箱搬走.因此,就产生了将深度学习网络训练的任务搬到云端的想法.由于初次使用,遇到不少大坑,花了两天时间才完整 ...

  8. 微信公众号上部署自己训练的聊天机器人(腾讯云服务器+TensorFlow2.1+Django3.1)

    文章目录 前言 1. 模型介绍 1.1 Encoder-Decoder框架 1.2 Attention机制 1.3 代码实现 2. 安装依赖库 3. 模型部署 4. 测试 前言   哈哈,重头戏终于来 ...

  9. 7月31日云栖精选夜读 | 在浏览器上也能训练神经网络?TensorFlow.js带你玩游戏~...

    无论你是刚开始深度学习,亦或是个老练的老手,建立一个神经网络的训练环境有时都会很痛苦.让神经网络的训练像加载一个网页,然后点击几下,然后你就准备好马上进行推理,会不会是件很棒的事呢?(那必须棒) 在本 ...

最新文章

  1. 295. 数据流的中位数
  2. MYSQL 生成UUID() 即 ORACLE 中的guid()函数
  3. centos7不能安装mysql数据库_Centos7 上安装mysql遇上的问题:mysql无法正常启动-Go语言中文社区...
  4. 如果打回车来更新模板列中的TEXTBOX
  5. 机器学习之最大似然估计(MLE)和最大后验概率估计(MAP)
  6. this static 面向对象三大特点
  7. linux 喂狗时间,狗狗正确喂食时间表,喂狗最佳时间指南
  8. 惠普计算机笔记本打印机官网,HP2621打印机驱动
  9. 计算机三级数据库er图试题里,2019年3月计算机三级数据库考试基础试题及答案006...
  10. android自动运行服务,Android开机自启动服务的实现方法
  11. PySpark-Recipes : RDD对象的基本操作
  12. yalmip决策变量
  13. 台式计算机硬盘的尺寸通常为多少英寸,2.5寸硬盘尺寸大小怎么看
  14. excel 如何删除有颜色的行
  15. Excel表格中重要的数据如何隐藏不显示
  16. APP的启动流程梳理
  17. linux下打印图片不显示出来的,为什么打印机打印不了图片_解决打印机打印不了图片的方法-系统城...
  18. 指向类成员/函数的指针
  19. 白杨SEO:你愿意和我用五年做一件事吗?白杨流量汇,与流量实战派一起向前
  20. 读论文,第二天(2):Deep inertial poser: learning to reconstruct human pose from sparse inertial

热门文章

  1. 【深度学习】(问题记录)<对一个变量求梯度得到什么>-线性回归-小批量随机梯度下降
  2. 宝贝与iPad-新生代的玩具
  3. 《天外世界》游戏体验报告
  4. java中怎么编写围棋对弈,TPWEIQI : JAVA 网络围棋对弈系统
  5. dockers-系统学习
  6. h5移动端调试工具vConsole
  7. centos 7 ffmpeg 自动 剪辑 剪裁 视频 shell 懒人系列 -8
  8. beanstalkd队列简述
  9. 以下是两段c语言代码函数arith,计算机组成习题答案(清华大学).docx
  10. 设计模式—简单工厂模式