云服务器训练神经网络

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

一、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文件。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

楠~~~~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值