Как использовать Tensorflow, Блокнот на сервере

TensorFlow

В большинстве случаев мы используем Anaconda локально для установки tensorflow, блокнота для глубокого обучения и анализа данных.

Но иногда приходится обрабатывать эти вещи на сервере, например, места на MacBook не хватает, данные компании неудобно выводить во внешнюю сеть, а импортировать и экспортировать данные очень хлопотно. лучше запустить блокнот прямо на сервере для анализа данных.

ладно, без глупостей, пошли

1. Установите конду

Anaconda на самом деле использует conda для установки пакетов, поэтому мы можем просто использовать conda напрямую Давайте установим conda в среде Ubuntu:

# 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, ноутбук

В следующем примере создаетсяtfсреду conda, затем установите tf, ноутбук.

conda create --name tf
conda activate tf
conda install tensorflow jupyter notebook

4. Запустите блокнот

Запустите ноутбук в этой среде, укажите ip, порт. Порт избегает широко используемого 8080.

jupyter notebook --ip=127.0.0.1 --port=10082 --allow-root

Обратите внимание на токен при запуске, он понадобится вам позже при доступе к блокноту.

启动notebook

5. Настройте nginx

поставить через nginxtest.notebook.domain.comЗапрос идет к порту ноутбука на шаге 4.

Поскольку ноутбук также использует веб-сокет, nginx должен его поддерживать.

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. Изменить локальные хосты

Доменное имя настроено в nginxtest.notebook.domain.comНет необходимости делать разрешение доменного имени, мы просто модифицируем локальные хосты.

[云服务器ip] test.notebook.domain.com

8. Доступ к блокноту

открыть браузер, посетитьtest.notebook.domain.comВ это время выходит знакомый интерфейс ноутбука.

访问notebook

9. Добавьте конфигурацию ноутбука

Хотя в настоящее время к нему можно получить доступ, при создании нового сценария блокнота будет сообщено об ошибке, поскольку запрос является междоменным. Для решения этой проблемы, хотя можно найти способ по идее междоменного запроса, jupyter уже может решить ее через конфигурацию, а также можно удалить токен.

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

Здесь перезапустите блокнот, и его можно будет создать в обычном режиме.

Заинтересованные учащиеся могут превратить эти шаги в ansible playbook, чтобы им не приходилось делать это каждый раз.