选自Upflow.co
作者:Killian
机器之心编译
参与:NurhachuNull、李亚洲
在这篇文章中,研究员Killian介绍了自己的深度学习开发环境:TnsorFlow+Dockr+PyCharm+OSXFus+Tnsorboard。但根据自己的预算、语言习惯、开发需求,每个人都会配置不同的开发环境,也遇到过各种各样的难题。因此,我们在文后附上了一份调查问卷,希望能了解众多不同开发者的深度学习环境,最终汇集成一篇文章为大家提供不同的洞见。
在尝试用不同的东西来配置深度学习环境这个过程中,我花费了相当多的时间。因此我想着把自己目前的工作流程整理成文档,希望可以帮助到尝试着做同样事情的人。
目标
在开始创建我的模型之前,我脑海中会有几个清晰的目标,即理想中会使用的开发环境。下面是我会在这篇博文中详细介绍的几个高层次目标:
在本地机器(一个标准的MacBookPro笔记本电脑)上用Pycharm编辑我的代码
用一个强大的远程机器来训练我的模型
和我的同事们没有任何冲突地使用这台远程机器
在本地和远程机器上的dockr容器中以开发/产品的模式来运行/调试我的TnsorFlow代码
当我的模型在远程机器上训练的时候,把模型的性能图形化地实时显示在本地机器上
致谢
我想感谢我的实验室同伴ChrisSaam,因为他给我指明了几个我会在本文中提到的有趣的工具。
一次安装
远程机器上
因此,在做其他任何事情之前,你可能需要做这几件事情。顺便说一下,在这篇文章中我会提及在你的远程机器上(带有所有的GPU的附属项目)使用suprdupr,在这台远程机器上你计划训练你的深度学习机器模型。
安装Nvidia-dockr:你需要做的第一件事情就是安装Nvidia-dockr。Dockr确实是一个很酷的工具,但是它目前并不能让你最有效地使用任何一个NVIDIA的GPU硬件或者CUDA驱动程序,所以你不可能拿dockr来训练你的深度模型。Nvidia-dockr为你解决了这个问题,并且看上去更像一个普通的dockr。在常规的Dockr命令之上,它还提供了一些选项,可以让你更有效地管理你的NVIDIAGPU硬件。
图1:NVIDIA-Dockr(由NVIDIA-Dockr提供)
安装Slurm:如果你计划和你的同事共享那个深度学习机器,你也许会想着安装像SLURM一样的工具。通过限制默认情况下可以使用的命令集,SLURM让您对团队同事在机器上的权限拥有更好的控制,并且强制每个成员使用特定的专用GPU/CPU资源在「作业」环境中运行他们的代码。如果您希望避免任何因团队同事同时访问这台机器而产生的资源争夺,这确实是有用的。
把文件夹设置标准化:如果您计划和同事共享机器,就可以让成员之间的文件夹结构标准化,这也是一个好主意。我的深度学习机器的设置方式如下:
/hom/myusrnam文件夹包含你自己的私有项目代码。
/data文件夹包含团队在项目过程中共享的数据集。
/work文件夹包含当前实验需要的特定数据集。这个文件夹比/data文件夹更低一级,但是它在训练过程中提供了更快的内存访问。
本地机器上
安装OSXFus:如果你像我一样正在使用最新版本的OSX,你可能会想着安装OSXFus。OSXFus可以让你用SFTP/SSH在本地Findr中从远程机器上挂载文件夹。或者如果你不想花费时间去挂载你的远程/hom文件夹,你可以简单地使用GITPUSH/PULL在本地机器和远程机器之间传送代码,但是这样效率不高。所以在长时间运行的过程中挂载这些文件夹会替你节省大量时间。
设置一个远程的python解释器:在本地机器和远程机器上使用同一个dockr映像是避免以后可能会发生的环境配置问题的另一个方法。Pycharm有这个很酷的功能,可以让你在dockr容器中运行代码。在Pycharm中进行任何设置之前,请保证你已经获取了正确TnsorFlow的dockr映像。在本地机器上,你可能仅仅需要以下步骤就可以获取TnsorFlow的dockr映像:
#启动你的dockr虚拟机
dockr-machinstartdfault
#获取最新TnsorFlowCPU版本的dockr映像
dockrpullgcr.io/tnsorflow/tnsorflow:latst
当你获取期望的dockr映像之后,就去设置你的PycharmProjctIntrprtr。在Pycharm中,转到PrfrncsProjctIntrprtrAddRmot(如下图)。当dockr虚拟机的实例在你的本地机器上开始运行时,就需要选择dockr配置(Dockrconfiguration)。一旦它连接到你的dockr虚拟机,你应该会看到你刚才获取的TnsorFlow映像已经在可用映像的列表中了。当这个设置好之后,只要pycharm连接好了,你就可以开始了。
每日常规程序
本地机器上
挂载远程文件夹:你想做的第一件事情就是确保你可以访问你要在本地机器上运行的脚本。所以你要做的第一件事情就是在你的Mac上用OSXFus挂载hom/myusrnam文件夹,并且选择性地挂载深度学习数据。你可能希望为所有这些命令起一些别名,因为它们确实有些长。
#挂载你的远程hom文件夹
sshfs-ouid=$(id-u)-ogid=$(id-g)myusrnam
mydplarningmachin.治白癜风拉萨哪家医院好北京白癜风专科医院在线咨询