如何使用TensorFlow为Windows Udacity Deep Learning课程设置学习环境(Windows)

时间:2016-09-20 19:00:32

标签: docker tensorflow deep-learning

我相信很多有兴趣学习DL的人都听说过这门课程:

https://www.udacity.com/course/deep-learning--ud730

我现在正在学习该课程,并希望分享如何从头开始在Windows上设置学习环境的逐步说明。

  • 第一个名为设置环境的答案是关于建立学习环境。你只运行一次。

  • 第二个答案名为 AFTER LOCAL MACHINE REBOOT ,是关于如何在重新启动计算机后启动环境。

  • 查看名为 HOW IT ALL WORKS 的第三个答案,了解所有这些内容的工作原理(或者您可以盲目地按照第一个答案并稍后查看)。

    < / LI>

4 个答案:

答案 0 :(得分:5)

设置环境(只运行一次!)

  

N.B。要在计算机重启后启动就绪环境,请在第二个答案中使用 AFTER LOCAL MACHINE REBOOT 指令。

<强>步骤:

  1. 下载并设置Docker Toolbox:
  2. https://www.docker.com/products/docker-toolbox

    Docker是一种在您的计算机上部署预配置虚拟学习环境的工具。它将在虚拟机内运行,无论如何都不会弄乱你的计算机。

    1. (可选步骤) Docker会将其文件放在系统磁盘(C :)上,如果使用SSD,您可能想要更改它。你可以这样做:
    2.   

      mklink / J&#34; C:\ Users \ USER \ .docker&#34; &#34; d:\泊坞&#34;

      • USER 替换为您的用户名
      • &#34; D:\ Docker&#34; 替换为您希望存储Docker文件的其他驱动器上的路径

      更多信息:Change .docker directory on Windows

      1. 打开Windows CMD。转到安装Docker的文件夹。创建一个新的docker机器:
      2.   

        docker-machine create vdocker -d virtualbox

        1. (魔术步骤)只需运行它!
        2.   

          FOR / f&#34;令牌= *&#34; %i IN(&#39; docker-machine env --shell cmd vdocker&#39;)DO%i

          更多信息:How do I start tensorflow docker jupyter notebook

          1. 下载并安装预配置的分​​配泊坞窗图像
          2.   

            docker run -it -p 8888:8888 -p 6006:6006 --name tensorflow-udacity -it b.gcr.io/tensorflow-udacity/assignments:0.5.0

            1. (重要的一步!)配置端口转发:
              • 运行 Oracle VM VirtualBox 链接(应在安装Docker时创建):
            2. enter image description here

              • 转到 vdocker 计算机的设置...:

              enter image description here

              • 添加端口转发(它会将虚拟环境中的8888端口转发到本地计算机上的8810端口):

              enter image description here

              P.S。如果您已在本地计算机上安装了IPython笔记本,请使用:8810端口

              1. 在“设置...”菜单中(从上一步开始)允许虚拟机使用更多内存:
              2.   

                N.B。必须先关闭VirtualBox,然后才能对系统设置进行任何更改。 (由jlarsch提供)

                     

                使用以下命令停止VM:

                     

                docker-machine stop vdocker

                enter image description here

                (可选)您还可以允许它使用更多内核以便更快地运行:

                enter image description here

                1. 利润!
                2. enter image description here

答案 1 :(得分:1)

本地机器重新启动后

要在计算机重启后启动学习环境,请使用以下内容创建 .bat 文件(我称之为 udacity-tf-start.bat ):

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

答案 2 :(得分:1)

这里补充其他答案是我创建/运行/启动docker机器的起始脚本。设置继续现在归结为从https://docs.docker.com/toolbox/toolbox_install_windows/安装最新版本的docker工具箱(这应该是autom。安装vbox)并运行脚本:

@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%

答案 3 :(得分:0)

如何运作

  

免责声明:这可能有点类似于 Christopher Nolan的Inception 电影的情节。

整体情况

enter image description here

<强>详情

由于Windows操作系统的某些限制, Docker 无法在本地运行(尚未)。这就是为什么我们首先创建一个虚拟框:

  

docker-machine创建 vdocker -d virtualbox

下一步(表示为魔术步骤)为 docker 命令设置了一些环境变量,以便能够连接 docker daemon 运行< strong>在虚拟框内:

  

FOR / f“tokens = *”%i IN('docker-machine env --shell cmd vdocker ')DO%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 --name tensorflow-udacity -it b.gcr.io/tensorflow-udacity/assignments:0.5.0

从其从指定网址下载的图片中创建名为 tensorflow-udacity docker容器重要!该容器在虚拟框内运行。

注意 -p 标志:

  

-p 8888:8888 -p 6006:6006

它告诉 docker daemon 将容器的端口8888转发(发布)到主机(虚拟盒)端口8888.它尚未在Windows机器上可用!

现在我们再向虚拟框设置添加一个端口转发规则:

enter image description here