В большинстве случаев мы используем 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
Обратите внимание на токен при запуске, он понадобится вам позже при доступе к блокноту.
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
В это время выходит знакомый интерфейс ноутбука.
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, чтобы им не приходилось делать это каждый раз.