如何在服务器上使用 Tensorflow, Notebook

多数状况下咱们都是在本地使用 Anaconda 来安装 tensorflow, notebook 作深度学习, 数据分析.nginx

但有时仍是有须要在服务器上处理这些事, 好比 macbook 空间又双叕不够啦, 公司的数据不方便走外网啦, 数据导来导去很是麻烦啦, 还不如直接在服务器上跑 notebook 分析数据.web

好, 不废话了, 直接上跨域

1. 安装 conda

Anaconda 其实也是用的 conda 来安装 package, 因此咱们直接用conda 就好了. 下面就以 Ubuntu 环境下安装 conda:浏览器

# Install our public gpg key to trusted store

curl https://repo.anaconda.com/pkgs/misc/gpgkeys/anaconda.asc | gpg --dearmor > /tmp/conda.gpg

install -o root -g root -m 644 /tmp/conda.gpg /etc/apt/trusted.gpg.d/

# Add our debian repo

echo "deb [arch=amd64] https://repo.anaconda.com/pkgs/misc/debrepo/conda stable main" > /etc/apt/sources.list.d/conda.list

apt-get update

apt-get install conda

复制代码

2. 经常使用的 conda 命令

# 把 conda 加入环境变量, 你也能够在 ~/.bash_profile 里加入一行 export PATH
> source /opt/conda/etc/profile.d/conda.sh

# 验证 conda 命令是否正常
> conda -V
conda 4.5.11

# 更新一下 conda
> conda update conda

# 建立一个 conda 环境
conda create --name <env_name>

# 查看当前有哪些环境
conda info --envs

# 激活环境
conda activate <env_name>

# 在这个环境下安装库
conda install <packagename>

# 列出当前环境下安装的库
conda list

# 删除环境下的库
conda remove <packagename>

# 退出环境
conda deactivate
复制代码

3. conda 安装 tf, notebook

下面的例子建立了一个叫 tf 的 conda 环境, 而后安装 tf, notebook.bash

conda create --name tf
conda activate tf
conda install tensorflow jupyter notebook
复制代码

4. 启动 notebook

在这个环境下启动 notebook, 指定ip, port. 端口避开了经常使用的 8080.服务器

jupyter notebook --ip=127.0.0.1 --port=10082 --allow-root
复制代码

启动时留意一下 token, 一会访问 notebook 时要用到.websocket

启动notebook

5. 配置 nginx

经过 nginx 把 test.notebook.domain.com 的请求打到第4步的 notebook 的端口.dom

由于 notebook 还用了 websocket, nginx须要支持.curl

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

server {
  server_name test.notebook.domain.com;
  listen 80;

  location / {
    proxy_pass            http://127.0.0.1:10082;
    proxy_set_header      Host $host;
    proxy_http_version    1.1;
    proxy_set_header      Upgrade $http_upgrade;
    proxy_set_header      Connection $connection_upgrade;
  }
}
复制代码

6. 热启动 nginx

nginx -s reload
复制代码

7. 修改本地 hosts

nginx 里配置的域名 test.notebook.domain.com 不须要作域名解析, 咱们修改一下本地hosts 就好.socket

[云服务器ip] test.notebook.domain.com
复制代码

8. 访问 notebook

打开浏览器, 访问 test.notebook.domain.com 这时熟悉的 notebook 界面出来了.

访问notebook

9. 添加 notebook 配置

这时虽然能访问了, 但建立新的 notebook 脚本时会报错, 缘由是请求跨域了. 要解决这个问题虽然能够按跨域请求思路找办法, 但 jupyter 已经能够经过配置来解决, 还能去掉token.

touch ~/.jupyter/jupyter_notebook_config.py
复制代码

添加4行

c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.token = ''
c.NotebookApp.allow_origin = '*'
c.NotebookApp.disable_check_xsrf = True
复制代码

这里再从新启动 notebook 就能够正常建立了.

有兴趣的同窗能够把这些步骤作成 ansible playbook, 就不用每次都弄一遍了.

相关文章
相关标签/搜索