概述
如何在云服务器上训练(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 删除虚拟环境(需要先退出虚拟环境)
四、在云服务器上开始训练网络
步骤如下:
- 上传windows本地文件到linux云服务器
如果本地是windows,好像不支持scp命令上传,可以采用WinSCP的图形界面上传(第二点中介绍如何使用WinSCP连接远程服务器)。 - 在服务器,如何解压文件、解压文件以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格式。 原文链接 - 运行.py文件:
python py文件名
报错:当报错显示找不到中国文件时,看文件名称是否被一对 ‘ ’ 包括,若是需要修改(去掉引号),继续运行即可。安装brain2:
pip install brian2 -i https://mirrors.aliyun.com/pypi/simple/
测试安装是否成功:
import brian2
brian2.test()
五、如何让部署在云服务器上的项目一直运行
参考文章
使用screen命令: (原文 http://lnmp.ailinux.net/screen)
- screen简介:
Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。 - screen特点——会话恢复
只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。这一点和图形界面下的VNC很相似。 - 使用screen
1)安装:
2)创建 screen 窗口:yum install screen //CentOS 系列系统 sudo apt-get install screen //Ubuntu 系列系统
注意:执行 screen -S name 之后系统会跳进一个新窗口,这个窗口就是我们创建的新进程(它来执行我们的命令)。在这个新窗口中可以运行要运行的项目即可。screen -S name //name是开辟的新进程的名字
3)退出保存
CTRL+a+d ,退出开辟的新窗口,但是窗口里面的程序会一直运行。
4)查看
如果只有一个 screen 进程,命令行输入 screen -r -d 即可进入;screen -ls
如果有多个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文件。
最后
以上就是眼睛大发带为你收集整理的云服务器训练神经网络如何在云服务器上训练(train)神经网络?的全部内容,希望文章能够帮你解决云服务器训练神经网络如何在云服务器上训练(train)神经网络?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复