出发点:
本地电脑只有4个核心,8G内存,算法的参数选择比如网格搜索选取参数,训练速度慢且出现任务无法合并到worker的情况
解决方案:
1、购买云服务器(基于之前使用的阿里云平台)
选取按流量计费
2、在服务器上安装运行环境
2.1安装anaconda(包管理软件)
下载列表:
https://repo.continuum.io/archive/Anaconda3-2019.07-Linux-x86_64.sh
安装步骤:
安装命令:bash Anaconda3-2019.07-Linux-x86_64.sh
2.2安装jupter notebook
(1)conda安装 jupynotebook
安装命令:conda install jupyter
参考:https://blog.csdn.net/yimingsilence/article/details/80679564
(2)pip 安装jupynotbook
sudo pip install jupyter
安装 ipython
sudo apt-get -y install ipython ipython-notebook
参考:https://blog.csdn.net/u012743859/article/details/77869382
(3)设置密码
在Xshell执行命令:
$ jupyter notebook password
Enter password: yourcode #输入密码
Verify password: yourcodeagain #再次输入密码确认
#运行后结果
[NotebookPasswordApp] Wrote hashed password to /Users/you/.jupyter/jupyter_notebook_config.json #密码被保存的位置 ~/.jupyter/jupyter_notebook_config.json
参考:JupyterNotebook配置远程登录 https://blog.csdn.net/u014636245/article/details/83652126
2.3 配置notebook
(1)打开配置文件(使用vim操作:esc退出编辑模式,shift+G滚到最后一行,shit+i编辑,shit+:+wq保存退出):
cd ~/.jupyter
vim jupyter_notebook_config.py
(2) 添加配置文件内容:
# Set options for certfile, ip, password, and toggle off browser auto-opening
# 设置证书、ip、密码并关闭自动打开浏览器
# 设置证书地址
c.NotebookApp.certfile = u'/root/secret/mycert.pem'
c.NotebookApp.keyfile = u'/root/secret/mykey.key'
# Set ip to 'localhost' to bind on localhost for the private usage
# 用localhost域名来访问jupyter notebook
c.NotebookApp.ip = 'localhost'
c.NotebookApp.password=u'添加密码哈希值'
c.NotebookApp.open_browser = False
# 为了网络安全,设置一个不常用的端口
c.NotebookApp.port = 8888
密码哈希值的获取方法 :
在本地电脑运行jupter notebook ,并输入以下命令获取
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out [1]: 'sha1:XXXXXXX:-----------'
openssl着证书的获取方法:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mykey.key -out mycert.pem
并将在云服务器生成的文件 mykey.key mycert.pem 保存在指定文件夹下,并拷贝路径待上述配置文件内容中
3、本地电脑远程访问云服务器的notebook
(1)端口转发? (2)Xshell 配置 (3)参考【4】远程访问服务器Jupyter Notebook的两种方法
下述使用第二种方式:
选择文件-》属性-》隧道并按照如下方式设置:
Type选择Local(Outgoing),源主机Source Host写localhost,监听端口Listening Port填你设置的Port,目标主机Destination Host填localhost,目标端口Destination Port填你设置的端口Port。
3.1 在云服务器端操作开启允许外网连接notebook
先切换到指定目录(存在jupter格式的文件),再执行下述的命令
cd /root/O2OCode
jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root
3.2在本地浏览器打开:
输入网址http://云服务器ip地址:端口号
发现问题:采用隧道模式则应该是:https://localhost:端口号 才可以正确访问!
3.3 出现notebook 但是证书还没有验证故直接忽略安全保护
输入设置的密码,即可进入
4、执行算法
在notebook 执行,注意要打开notebook格式的文件运行才会出现编辑运行的选项
5、释放云服务器的实例
创建镜像保存
参考资料
【1】anaconda 安装 https://repo.continuum.io/archive/
【2】用SSL/TLS和XShell远程访问 Jupyter Notebook 的方法 https://blog.csdn.net/chr1991/article/details/92618832
【3】官网配置方法 Running a notebook server https://jupyter-notebook.readthedocs.io/en/latest/public_server.html#prerequisite-a-notebook-configuration-file
【4】远程访问服务器Jupyter Notebook的两种方法 https://www.jianshu.com/p/8fc3cd032d3c