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

问题描述 投票:9回答:4

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

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

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

  • 第一个名为“设置环境”的答案是关于建立学习环境。你只运行一次。
  • 名为AFTER LOCAL MACHINE REBOOT的第二个答案是关于如何在重新启动计算机后启动环境。
  • 请参阅第三个答案名为HOW IT ALL WORKS以了解所有这些内容是如何工作的(或者您可以盲目地按照第一个答案并稍后查看)。
docker tensorflow deep-learning
4个回答
5
投票

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

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


脚步:

  1. 下载并设置Docker Toolbox:

https://www.docker.com/products/docker-toolbox

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

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

mklink / J“C:\ Users \ USER \ .docker”“D:\ Docker”

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

更多信息:Change .docker directory on Windows

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

docker-machine创建vdocker -d virtualbox

  1. (神奇的一步)跑吧!

FOR / f“tokens = *”%i IN('docker-machine env --shell cmd vdocker')DO%i

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

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

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时创建):

enter image description here

  • 转到vdocker机器的设置...:

enter image description here

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

enter image description here

附:使用:8810端口,以防您在本地计算机上安装了IPython笔记本电脑。

  1. 在Settings ...菜单中(从上一步开始)允许虚拟机更多内存:

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

使用以下命令停止VM:

docker-machine stop vdocker

enter image description here

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

enter image description here

  1. 利润!

enter image description here


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

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%

0
投票

它是如何工作的

免责声明:它可能有点类似于克里斯托弗诺兰的初始电影情节。

整体情况

enter image description here

细节

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

docker-machine创建vdocker -d virtualbox

下一步(表示为魔术步骤)为docker命令设置一些环境变量,以便能够连接到在虚拟框内运行的docker守护程序:

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

从它从指定URL下载的映像创建名为tensorflow-udacity的docker容器。重要!该容器在虚拟盒内运行。

注意-p标志:

-p 8888:8888 -p 6006:6006

它告诉docker守护进程将容器的端口8888转发(发布)到主机(虚拟盒)端口8888.它还没有在Windows机器上可用!

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

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.