Как настроить среду обучения для класса глубокого обучения Udacity с помощью TensorFlow (Windows)
Я считаю, что многие из тех, кто интересуется изучением DL, слышали об этом курсе:
https://www.udacity.com/course/deep-learning--ud730
Я беру курс сейчас и хотел бы поделиться пошаговой инструкцией о том, как настроить среду обучения на Windows с нуля.
первый ответ по имени НАСТРОЙКА СРЕДЫ речь идет о настройке среды обучения. Ты управляешь только им. однажды.
второй ответ по имени ПОСЛЕ ПЕРЕЗАГРУЗКИ ЛОКАЛЬНОГО КОМПЬЮТЕРА о том, как запустить среду после перезагрузки компьютера.
см. третий ответ с именем КАК ВСЕ ЭТО РАБОТАЕТ чтобы узнать, как все это работает (или вы можете слепо следовать первому ответу и проверить его позже).
4 ответов
настройка среды (запустите ее только один раз!)
N. B. Чтобы запустить готовую среду после перезагрузки компьютера, используйте ПОСЛЕ ПЕРЕЗАГРУЗКИ ЛОКАЛЬНОГО КОМПЬЮТЕРА инструкция во втором ответе.
действия:
- загрузка и настройка Docker Toolbox:
https://www.docker.com/products/docker-toolbox
Docker-это инструмент для развертывания preconfigured виртуальный среда обучения на вашей машине. Он будет работать внутри виртуальной машины и не будет связываться с вашим компьютером в любом случае.
- (необязательный шаг) Docker поместит его файлы на системный диск (C:), и вы можете изменить это, если используете SSD. Вы можете сделать это так:
mklink / J "C:\Users\USER\.докер" "D:\Docker"
- заменить пользователей с вашим именем пользователя
- заменить "D:\Docker" С путем на другом диске, где вы хотели бы хранить файлы Docker
на изменить .каталог docker в Windows
- открыть Windows CMD. Перейдите в папку, где установлен Docker. Создайте новую машину docker:
docker-машина создать vdocker-D virtualbox
- (магия шаг) просто запустите его!
FOR / f "tokens=*" %i IN ('docker-machine env --shell cmd vdocker') DO %i
на как запустить TensorFlow docker Jupyter notebook
- скачать и установить предварительно настроенное изображение docker назначения:
настройки запустить -он -п 8888:8888 -Р 6006:6006 --tensorflow-сайт Udacity -это имя b.gcr.io / tensorflow-udacity / назначения: 0.5.0
-
(важный шаг!) Настройка переадресации портов:
- выполнить Oracle VM VirtualBox ссылка (должна быть создана при установке Docker):
- перейдите в Настройки... из vdocker машина:
- добавить переадресацию портов (он будет пересылать порт 8888 в виртуальной среде на порт 8810 на вашем локальном компьютере):
П. С. используя :8810 порт если у вас уже установлен ноутбук IPython на вашем локальном компьютере.
- в настройках... меню (с предыдущего шага) разрешить виртуальное машина больше памяти:
N. B. VirtualBox должен быть выключен, прежде чем вы сможете внести какие-либо изменения в системные настройки. (по jlarsch)
используйте следующую команду, чтобы остановить VM:
docker-остановка машины vdocker
(необязательный) вы также можете разрешить ему использовать больше ядер для запуска быстрее:
- профит!
ПОСЛЕ ПЕРЕЗАГРУЗКИ ЛОКАЛЬНОГО КОМПЬЮТЕРА
чтобы начать обучение после перезагрузки компьютера, создайте .летучая мышь!--8--> файл (я называю его udacity-tf-start.летучая мышь!--8-->) следующего содержания:
call docker-machine start vdocker
FOR /f "tokens=*" %%i IN ('docker-machine env --shell cmd vdocker') DO %%i
call docker start -ai tensorflow-udacity
важно! %% это своего рода побег, и вам нужно только внутри BAT файл. Если вы используете один и тот же набор команд через командную строку, вы должны использовать:
FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd vdocker') DO %i
В дополнение к другим ответам вот мой начальный скрипт для создания / запуска / запуска машины docker. Настройка продолжить теперь сводится к установке последней версии docker toolbox(это должно авто. установить vbox) из https://docs.docker.com/toolbox/toolbox_install_windows/ и запуск скрипта:
@echo off
set DOCKERMACHINENAME=tensorflow-udacity
set REPOSITORY=gcr.io/tensorflow/udacity-assignments:0.6.0
set "LOCALDIR0=/%SystemDrive:~0,1%/"
call :LoCase LOCALDIR0
SET "LOCALDIR=%LOCALDIR0%Users/%USERNAME%"
docker-machine.exe env %DOCKERMACHINENAME% > nul 2> nul
if "%errorlevel%"=="0" goto m_exists
::Machine has to be created
docker-machine create -d virtualbox --virtualbox-memory 8196 %DOCKERMACHINENAME%
:m_exists
::Check if machine needs to be restarted
docker-machine ip %DOCKERMACHINENAME% > nul 2>nul
if not "%errorlevel%"=="0" (docker-machine.exe restart %DOCKERMACHINENAME%)
FOR /F "tokens=*" %%i IN ('docker-machine env --shell cmd %DOCKERMACHINENAME%') DO %%i
FOR /F "tokens=*" %%F IN ('docker-machine ip %DOCKERMACHINENAME%') DO (SET DOCKERMACHINEIP=%%F)
echo Access to iPython: %DOCKERMACHINEIP%:8888
docker inspect %DOCKERMACHINENAME% > nul 2> nul
if "%errorlevel%"=="0" goto m_started
:: Machine has to be started
docker run -p 8888:8888 --name %DOCKERMACHINENAME% -v %LOCALDIR%:/mnt/hosttmp:rw -it %REPOSITORY%
goto finished
:m_started
docker start -ai %DOCKERMACHINENAME%
goto finished
:LoCase
FOR %%i IN ("A=a" "B=b" "C=c" "D=d" "E=e" "F=f" "G=g" "H=h" "I=i" "J=j" "K=k" "L=l" "M=m" "N=n" "O=o" "P=p" "Q=q" "R=r" "S=s" "T=t" "U=u" "V=v" "W=w" "X=x" "Y=y" "Z=z") DO CALL SET "%1=%%%1:%%~i%%"
:finished
::hint: to remove container use: docker rm %DOCKERMACHINENAME%
КАК ВСЕ ЭТО РАБОТАЕТ
предупреждение: это может несколько напоминать сюжет создание Кристофера Нолана кино.
общая картина
подробности
из-за некоторых ограничений операционной системы Windows настройки не может быть запущен там изначально (пока). Вот почему мы сначала создаем виртуальная коробка:
docker-машина создать vdocker -Д в VirtualBox
следующий шаг (обозначается как магия шаг) устанавливает некоторые переменные среды для настройки команда для подключения к docker daemon под управлением внутри виртуальной коробки:
FOR / f "tokens=*" %i IN ('docker-machine env --shell cmd vdocker') делать %i
>SET DOCKER_TLS_VERIFY=1
>SET DOCKER_HOST=tcp://192.168.99.100:2376
>SET DOCKER_CERT_PATH=C:\Users\USER\.docker\machine\machines\vdocker
>SET DOCKER_MACHINE_NAME=vdocker
затем мы бежим:
docker run-it-p 8888:8888-p 6006:6006 --имя tensorflow-udacity-it b.gcr.io / tensorflow-udacity / назначения: 0.5.0
создает контейнер docker имени tensorflow-udacity из изображения, которое он загружает с указанного URL-адреса. важно! этот контейнер работает внутри виртуальной коробки.
обратите внимание - p флаги:
- p 8888:8888-p 6006: 6006
Она говорит docker daemon пересылать (публиковать) порт контейнера 8888 на хост (виртуальный ящик) порт 8888. Он еще не доступен на машине Windows!
теперь мы добавляем еще одно правило переадресации портов в виртуальный бокс параметры: