Создание среды глубокого обучения на основе блокнота Ubuntu+Python+Tensorflow+Jupyter
[TOC]
предисловие
В настоящее время передовые знания, такие как искусственный интеллект и глубокое обучение, постепенно интегрируются в поле зрения каждого.Распознавание малых и больших проверочных кодов, а также беспилотные технологии неотделимы от глубокого обучения. Чтобы идти в ногу со временем, идти в ногу с тенденциями развития технологий и начинать изучать глубокое обучение, в первую очередь необходимо создать среду глубокого обучения. Существует также множество способов создания окружения, в основном представленных в этой статье, основанных наUbuntu+Python+Tensorflow+Jupyter ntebookчтобы настроить среду, чтобы начать свое путешествие по глубокому обучению. Эта статья в основном знакомит с содержанием следующих частей:
- Подготовка окружающей среды
- Удаленное подключение Xshell к Ubuntu
- Конфигурация сервера Jupyter Notebook и удаленный доступ
- Тестирование глубокого обучения в удаленных средах
Хорошо, без дальнейших церемоний, давайте встанем на правильный путь. (#`О')
1. Подготовка окружающей среды
Введение в окружающую среду
- Подготовьте два компьютера, один в качестве сервера и один в качестве клиента, и удаленно подключитесь к среде глубокого обучения сервера через клиент.
- Сервер: система Linux (Ubuntu), вы также можете использовать другие системы Linux в соответствии с вашими потребностями.
Введение в Убунту: Ubuntu (Youbangtuo, Youbantu, Ubuntu) — это операционная система GNU/Linux с открытым исходным кодом, основанная на настольных приложениях. Ubuntu основана на Debian GNU/Linux и поддерживает архитектуры x86, amd64 (т.е. x64) и ppc. команда (Canonical Ltd). Самая большая разница между системой Linux и системой Windows заключается в том, что она в основном использует команды оболочки терминала для выполнения ряда операций, поэтому она часто используется для создания сервера в реальных условиях, а система встроена в виртуальную машину VMware.
- Клиент: система Windows10
Все знакомы с этим, поэтому я не буду вводить его.
Знакомство с Анакондой: Anaconda относится к дистрибутиву Python с открытым исходным кодом, который включает более 180 научных пакетов, таких как conda, Python и их зависимости. Поэтому, когда мы загружаем Anaconda, нет необходимости загружать другие пакеты Python.Он объединяет большое количество крупных инструментов Python, включая блокнот Jupyter, главный герой этой статьи.
Об этом нечего сказать.Это в основном инструмент удаленного подключения.После его использования мы можем удаленно подключаться к системе Ubuntu через протокол ssh, и он часто используется в связке с инструментом удаленной передачи файлов Xftp.
загрузка программного обеспечения
Вот два способа загрузки: один из них — загрузка с официального веб-сайта. Если официальная загрузка идет относительно медленно, вы можете загрузить ее с сетевого диска ниже и загрузить по своему усмотрению.
Официальный сайт:
- Анаконда:www.anaconda.com/download/, на…
- Xshell:напишите shell.en.soft или nietzsche.com/?disgusting=BB-682. …
- Убунту:Уууху. Ubuntu.com/download/…
- VMware:www.vmware.com/, скачать с сервера
сетевой диск:
- Анаконда:disk.baidu.com/yes/1ke 8JD X5VO…пароль:bhfv, скачать на сервер
- Xshell:disk.baidu.com/yes/1KK go sf как поставить…пароль:fi0y, скачать на клиенте
- Убунту:Disk.Baidu.com/Yes/1ZWThis 1GG LE…пароль:50yw, скачать на сервер
- VMware:disk.baidu.com/yes/1-return 0H LJ GR…пароль:hjnq, скачать на сервер
Установите Ubuntu под VMware
Примечание. На серверном компьютере настроено следующее содержимое.
Установка Ubuntu под виртуальную машину VMware — это несложный шаг, который занимает некоторое время, но в этом нет ничего сложного. Принимая во внимание взаимосвязь между стоимостью времени и ценностью, которую она приносит каждому, блогер описал ее словами и пока не будет публиковать фотографии. Но вам не о чем беспокоиться, ключевые шаги все равно будут объяснены с картинками, вы можете собрать и установить в соответствии со следующим процессом ( ﹁ ﹁ ) ~→.
- После загрузки VMware и Ubuntu на сервер. Сначала откройте VMware, и вы обнаружите, что он попросит вас ввести ключ VMware. Следующее даст вам несколько действительных на данный момент ключей. Когда вы его используете, он может быть недействительным. Вы можете найти доступные ключи самостоятельно:
FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA
CV7T2-6WY5Q-48EWP-ZXY7X-QGUWD
ZY5H0-D3Y8K-M89EZ-AYPEG-MYUA8
ZC5XK-A6E0M-080XQ-04ZZG-YF08D
ZY5H0-D3Y8K-M89EZ-AYPEG-MYUA8
- После ввода секретного ключа мы попадаем на страницу VMware.На этот раз нам нужно использовать загруженный ранее файл образа Ubuntu.Создать новую виртуальную машину в VMware.Процесс выглядит следующим образом:

Выше описан весь процесс установки Ubuntu под VMware.Если у вас возникнут вопросы в процессе установки, свяжитесь с автором или оставьте сообщение ниже.
Установка Anaconda под Ubuntu
После установки Ubuntu под VMware, хотя Ubuntu поставляется с Python, его версия, как правило, 2.7, и многие часто используемые инструменты не интегрированы, поэтому нам также необходимо установить Anaconda (один трюк, чтобы решить тысячи проблем), если вы знакомы с Java, Anaconda существует как Maven. Согласно методу загрузки Anaconda, описанному выше, после загрузки Anaconda в Ubuntu перейдите в ее каталог (или операцию cd), затем откройте терминал и выполните следующую команду для установки:
bash Anaconda3-5.3.1-Linux-x86_64.sh # 不要盲目的复制粘贴,根据自己所下载的Anaconda版本执行
После выполнения будут некоторые проблемы, такие как согласие с соглашением.Мы можем просто по умолчанию использовать вариант по умолчанию (прямой ввод или да),Пока не появится отображение конфигурации переменной среды Anaconda (не будьте слишком бездумными с да), нам нужно добавить его в переменную окружения. После ряда операций мы закрываем терминал и снова открываем терминал, после чего выполняем терминал отдельносписок конда, питонЕсли интерфейс вашего терминала похож на следующий вывод, поздравляем, вы завершили установку anaconda.

Вот еще немного:И если ваш терминал выдает ошибку (not foundcondaкоманда и т. д.) или версия Python 2.7, это означает, что вы не добавили Anaconda в переменную среды в приведенной выше операции (да, это слишком много), поэтому вам нужно вручную настроить переменную среды Anaconda, операция следующее:
Откройте конфигурационный файл переменной окружения, отсюда мы видим разницу между операциями под Linux и Windows (Windows обычно настраивается через интерфейс, а под Linux большинство из них настраиваются через терминал и с помощью vim)
# 打开环境变量的配置文件,从这里我们就可以看出Linux和Windows下的操作的区别了
# windows一般是通过界面的形式进行设置,而Linux下则大多数通过终端并使用vim进行配置
sudo vim gedit /root/.bashrc
После открытия файла нам нужно добавить следующее содержимое в конец файла (вам нужно быть знакомым с работой vim), где XXX — это каталог bin вашей Anaconda, например, мой — **/home/lxj/ анаконда3/бин**
export PATH="XXX:$PATH" # XXX为你的Anaconda的bin目录,例如我的是/home/lxj/anaconda3/bin
Затем сохраните (Esc -> shift+: -> wq -> Enter), введите source ~/.bashrc в терминале для обновления, чтобы завершить настройку переменной среды Anaconda, и выполните его снова, если не произошло несчастного случая.Python, список condaПосле команды вы увидите список пакетов conda и вывод Python 3.7.
Дополнение: Вот дополнительное пояснение.Вышеуказанные операции редактируются с помощью Vim, который отличается от Блокнота под Windows, но редактирует файлы через определенные операции. Те, кто знаком с работой Vim, должны понимать настройку вышеуказанных переменных среды Anaconda.Однако, если вы друг, который относительно не знаком с Vim, вы можете застрять, поэтому вот краткое введение в некоторые операции vim:
После использования команды vim в терминале вы войдете в интерфейс vim.В настоящее время интерфейс не позволяет изменять какой-либо контент, разрешено только чтение. На этом этапе мы вводим i, чтобы войти в режим редактирования vim, и теперь мы можем изменить файл. После того, как изменение содержимого файла завершено, нам нужно выйти из режима редактирования vim.Обычно используемые выходы из vim следующие (сначала введите клавишу Esc):
- q!-> выйти без сохранения изменений файла
- wq -> сохранить изменения в файле и выйти
- wq!-> Иногда нам нужны привилегии суперпользователя для редактирования файлов, после использования этой команды мы можем принудительно изменить и выйти.
Для настройки вышеуказанных переменных окружения Anaconda достаточно знакомства с vim.Кстати, я представлю другие часто используемые команды для вашего ознакомления.
- Дважды щелкните d в режиме чтения -> удалить текущую строку
- Ctrl+b -> содержимое переместиться на одну страницу вперед
- ctrl+f -> содержимое переместить назад дедушка
- shift+g -> указатель мыши устанавливается в конец
Обычно используются некоторые из вышеперечисленных, другие операции необходимо изучить самостоятельно
Примечание. Все вышеперечисленное содержимое настроено на серверном компьютере.
На данный момент мы завершили создание среды, теперь мы расскажем, как использовать Xshell для удаленного подключения к Ubuntu.
2. Удаленное подключение Xshell к системе Ubuntu
Примечание. На клиентском компьютере настроены следующие параметры.
После установки Anaconda нам нужно использовать Xshell для удаленного подключения к нашей системе Ubuntu.На этом этапе наша цель должна быть передана клиенту.
Сначала скачайте Xshell по ссылке в вышеприведенной загрузке ПО, а затем сдуру установите Xshell на Windows (кстати, установите Xftp, который используется с Xshell, хотя в этой статье он не используется). В последующей операции будет несколько ямок, но не волнуйтесь, далее вам придется заполнить одну за другой подробно o(*≧▽≦)ツ┏━┓.
Яма 1: соединение не удалось
Мы дважды щелкаем, чтобы открыть Xshell, и нажимаемдокументИ создайте новый, а затем действуйте по следующему рисунку:
Кроме того, указанный выше атрибут хоста предназначен для заполнения IP-адреса Ubuntu, который можно получить, выполнив команду ifconfig (windows is ipconfig) в терминале Ubuntu.
После заполнения вышеуказанной информации введите свой пароль для входа в систему Ubuntu в появившемся интерфейсе. После выполнения вы обнаружите, что соединение не установлено. В это время нам нужно проверить, находится ли Ubuntu в том же сегменте сети, что и клиент. Вы можете установить Ubuntu в режим моста (щелкните правой кнопкой мыши виртуальную машину Ubuntu и установите ее, обычно используется для проводного подключения) или используйте режим Nat (для беспроводной связи), затем снова проверьте, может ли клиент (Windows10) пропинговать сервер (Ubuntu), и выполните следующее в cmd клиента:
ping XXX.XXX.XXX.XXX # XXX.XXX.XXX.XXX为服务端的ip
После вышеперечисленных операций вообще можно пропинговать, если не получится выполнить под терминалом Ubuntusudo wfw disableкоманда для отключения брандмауэра.
Яма 2: Ошибка подключения (ノへ ̄、)
Проделав вышеописанное, пытаемся переподключиться снова. Мы можем обнаружить, что соединение по-прежнему не удается, показывая такую информацию, как отказ в соединении. Это связано с тем, что Xshell подключается к Ubuntu через протокол ssh, но Ubuntu не включает службу ssh по умолчанию, поэтому нам нужно выполнить следующую команду в его терминале, чтобы включить службу ssh:
sudo service ssh restart
После этого снова пытаемся подключиться.
Яма 3: Ошибка подключения (ノへ ̄,) (ノへ ̄,)
Вообще говоря, в настоящее время соединение по-прежнему не удается, потому что Ubuntu не устанавливает службу ssh по умолчанию.На данный момент нам нужно установить службу ssh в Ubuntu и выполнить следующую команду для установки:
sudo apt-get install openssh-server
После его установки снова подключим Убунут. Если он не может быть установлен, вам необходимо выполнитьapt-get updateВыполните обновление.Если появляется сообщение об ошибке, связанное с невозможностью получения блокировки до обновления, выполните следующую команду, чтобы отключить процесс apt и выполнить обновление снова:
# 查看apt相关进程
ps aux |grep apt
# 然后把apt进程杀掉
kill -9 进程号
# 重新更新apt-get
apt-get update
После того, как вы наступите на вышеуказанные ямы, соединение должно пройти успешно. Действительно, в это время вы будете успешно подключены к Ubuntu, а затем Xshell откроет терминал, который является терминалом в Ubuntu, то есть мы можем использовать этот терминал для управления Ubuntu и выполнения на нем операций Shell.ヽ(✿゚▽゚)ノ
3. Настройка и удаленный доступ к серверу ноутбуков Jupyter.
Поскольку мы уже устанавливали Anaconda, Ubuntu на данный момент уже интегрирована.ipythonа такжеjupyter-notebook(Анаконда настолько сильна). В связи с этим мы будем удаленно подключаться к Ubuntu через Xshell, чтобы построить сервер ноутбуков Jupyter и получить к нему удаленный доступ.
- Запустите ipython или python в терминале и выполните следующую команду
from IPython.lib import passwd
passwd()
После выполнения вышеуказанной команды она отобразится в терминалеУстановка пароля, для удобства здесь ставим пароль: 123, затем вводим и подтверждаем для завершения установки пароля.
Примечание. Пароль здесь представлен в виде зашифрованного текста, который не будет отображаться после его ввода, и вам необходимо запомнить пароль, который вы ввели в это время, потому что нам нужно будет использовать этот пароль для входа в систему при удаленном доступе. сервер ноутбуков Jupyter позже.
После ввода пароля мы увидим длинную строку, представляющую собой зашифрованную форму вышеуказанного пароля.Нам необходимо ее скопировать и использовать в настройках файла ipython_notebook_config.py позже.Результаты операции следующие Как показано на фигура:

- Затем для облегчения записи приведенной выше зашифрованной строки пароля открываем здесь еще один терминал (в этом тоже удобство Xshell), а затем используем следующую команду для создания имени сервера, например здесь задаем имя кому: ХХХ
ipython profile create XXX
После того, как указанное выше имя сервера будет создано, в терминал будут выведены два py-файла (ipython_config.py, ipython_kernel_config.py), затем используйте следующую команду cd для ввода **.ipythonдорожкакомпакт-диск ./.ipython**. Конкретная схема работы выглядит следующим образом:

- Введите **.ipythonиспользовать после каталогаКоманда ls** отобразит два файла py, созданные выше, но нам нужно создать дополнительный файл конфигурации py и настроить его.Здесь мы используем vim для работы.Что касается использования vim, приведенный выше Anaconda Процесс настройки среды имеет был представлен, и друзья, которые забыли, могут вернуться, посмотреть и ознакомиться с ним. После ознакомления выполняем следующие шаги:
cd .ipython/profile_txj
vim ipython_notebook_config.py
После входа в среду vim мы редактируем следующее содержимое в файле ipython_notebook_config.py, в основном для настройки пароля входа в ноутбук (зашифрованная форма) и открытого порта службы:
c = get_config()
c.IPKernelApp.pyalb = "inline"
c.NotebookApp.ip = "*"
c.NotebookApp.open_browser = False
c.NotebookApp.allow_root = True
c.NotebookApp.password = u"加密后的密码" # 这里我们需要使用上述加密后的密码,在另一个终端可见
c.NotebookApp.port = 8888 # 在这里,我们需要设置一个jupyter-notebook的端口,尽量设置的少见点,以免造成端口冲突
После редактированияwqКоманда сохраняется и завершается.
- После того, как все вышеперечисленные операции завершены, давайте сейчас запустим сервер, создадим новый терминал и выполним следующую команду
jupyter notebook --config=【你的ipython_notebook_config.py文件路径】
# 例如/home/lxj/.ipython/profile_XXX/ipython_notebook_config.py
После выполнения вышеуказанной команды, если появится содержимое, показанное на следующем рисунке, это означает, что наш сервер был запущен нормально.

- После запуска сервера открываем браузер на клиенте и заходимXXX.XXX.XXX.XXX:8888(ip-адрес ubuntu плюс открытый порт) Попробуйте и посмотрите, можно ли его запросить нормально. Если после этого появится страница входа в блокнот Jupyter, как показано выше, поздравляем, теперь сервер ноутбука Jupyter настроен и к нему можно получить удаленный доступ. Введите пароль, который вы установили в форму (пароль, установленный на первом шаге выше,123), чтобы начать свое путешествие по глубокому обучению.
Выше приведена конфигурация сервера ноутбуков Jupyter и содержимое удаленного доступа, но можно ли его использовать в обычном режиме, мы проверим его на нескольких простых примерах ниже.

В-четвертых, тест удаленной среды
Установка программной библиотеки Tensorflow
TensorFlow™ — это программная библиотека с открытым исходным кодом для числовых вычислений с использованием графов потока данных. Узлы (Nodes) представляют собой математические операции в графе, а линии (ребра) в графе представляют многомерные массивы данных, то есть тензоры, которые связаны между собой между узлами. Его гибкая архитектура позволяет выполнять вычисления на различных платформах, таких как один или несколько процессоров (или графических процессоров) в настольных компьютерах, серверах, мобильных устройствах и т. д. Первоначально TensorFlow был разработан исследователями и инженерами из группы Google Brain (часть Исследовательского института машинного интеллекта Google) для исследований в области машинного обучения и глубоких нейронных сетей, но универсальность системы делает ее широко доступной и для других вычислений.
После выполнения вышеуказанных операций нам нужно установить пакет Tensorflow под Anaconda, здесь мы можем установить его в виртуальной среде Anaconda:
- Перешел под Анакондуcreateкоманду и указание версии Python создать виртуальную среду
- conda env listМожет видеть текущую среду
- activateкоманда для активации необходимой виртуальной среды
- После успешного входа мы можем установить его напрямую через piptensorflow2(В этой статье напрямую устанавливается версия ЦП, если вам нужно установить версию ГП, см. примечание)
# Anaconda下通过`create`命令并指令Python版本创建一个虚拟环境,命名tensorflow2
conda create --name tensorflow2 python=3.6、
# `conda env list`可以看见当前所拥有的环境
conda env list
# `activate`命令激活所需要的虚拟环境
conda activate tensorflow2
# 成功进入后后我们即可直接通过pip进行安装`tensorflow2`
pip install -U tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple --default-timeout=1000
# GPU版本安装:conda create -n tf2 tensorflow-gpu,执行之后会自动安装 CUDA,cuDNN,TensorFlow GPU 等
После установки Tensorflow2 в виртуальной среде, чтобы использовать виртуальную среду под ноутбуком Jupyter, нам также необходимо установить ipkernel в этой среде (обратите внимание, что его нужно выполнить в целевой виртуальной среде, например, вам нужно ввести среда tensorflow2, то есть cd /anaconda/envs/tensorflow2/bin, затем выполните ./python):
conda install ipykernel
python -m ipykernel install --name tensorflow2 --display-name tensorflow2
После успешной установки используйте его в виртуальной среде tensorflow2.jupyter notebookКоманду можно запустить, а после авторизации указать на странице сервисаtensorflow2 kernelсреду для написания кода. Благодаря вышеперечисленным операциям мы выполнили всю работу. Давайте проверим это и посмотрим, можно ли нормально использовать сторонние пакеты под Anaconda. С этой целью мы используем следующие небольшие случаи для проверки:
- Простой краулер для Baidu и его подссылок (запросы, BeautifulSoup)
- Операции визуализации данных (numpy, matplotlib, skimage)
- Распознавание картинок fashion_mnist на основе нейронной сети (Тензорфлоу, Керас)
простой краулер
import requests
from bs4 import BeautifulSoup
def get_page(url, headers=None):
return requests.get(url).text
if __name__ == "__main__":
baidu_url = "https://www.baidu.com"
baidu_soup = BeautifulSoup(get_page(baidu_url), "html.parser")
son_links = [biaoqian_a.attrs["href"] for biaoqian_a in baidu_soup.find_all("a")]
for index, son_link in enumerate(son_links):
print("正在请求第{}个页面".format(str(index)))
print(get_page(son_link))
визуализация данных
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
% matplotlib inline
for module in np, pd, mpl:
print(module.__name__, module.__version__)
if __name__ == "__main__":
ax =pd.DataFrame(np.random.randn(1000, 6), columns=list('ABCDEF')).cumsum().plot(secondary_y=["D", "E", "F"])
ax.set_ylabel('ABC plot')
ax.right_ax.set_ylabel('DEF scale')
ax.legend(loc='upper left')
ax.right_ax.legend(loc='upper right')
plt.show()
Реализация распознавания изображений fashion_mnist на основе нейронной сети
import tensorflow as tf
import numpy as np
from matplotlib import pyplot as plt
import matplotlib as mpl
%matplotlib inline
for module in tf, np, mpl:
print(module.__name__, module.__version__)
if __name__ == "__main":
(x_train_all, y_train_all), (x_test, y_test) = tf.keras.datasets.fashion_mnist.load_data()
x_valid, x_train = x_train_all[:50000], x_train_all[50000:]
y_valid, y_train = y_train_all[:50000], y_train_all[50000:]
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Flatten(input_shape = [28, 28])) # 定义输入层
model.add(tf.keras.layers.Dense(300, activation="relu")) # 定义全连接层(最普通的神经网络),中间定义两个隐藏层
model.add(tf.keras.layers.Dense(100, activation="relu")) # 再定义一个全连接层
model.add(tf.keras.layers.Dense(10, activation="softmax")) # 定义输出层
model.compile(loss = "sparse_categorical_crossentropy",
optimizer = "adam",
metrics = ["accuracy"])
history = model.fit(x_train, y_train, epochs=10,
validation_data=(x_valid, y_valid))
pd.DataFrame(history.history).plot(figsize=(8, 5))
plt.grid(True)
plt.gca().set_ylim(0, 1)
plt.show()
Суммировать
С помощью приведенной выше демонстрации использование xshell для удаленного подключения к системе Linux и удаленного доступа к службе jupyter-notebook под Windows 10 было завершено, и несколько небольших примеров используются для проверки и демонстрации возможности использования anaconda под Linux. обычно. Таким образом, может быть реализована координация между двумя уровнями ПК, один из которых используется в качестве сервера для обеспечения среды, а другой используется в качестве клиента для удаленного доступа и записи кода, и преимущества очевидны. давление на компьютер в определенной степени, и им удобно управлять и работать. Кроме того, приведенная выше конструкция окружения используется только в качестве случая, а не единственного, например, вы можете использовать Linux Centos, облачный сервер aliyun и т. д. Если приведенный выше контент помог вам, пожалуйста, поставьте лайк.゚ヽ(。◕‿◕。)ノ゚.:。+゚