gltools使用教程最新 gltools设置教程?
gltools设置教程?
1。打开游戏空间,点击【开始】开始游戏;
2。到达游戏界面,点击右下角的设定人物;
3。单击[画质设置];
4。选择[帧数设置]下的[高];
5。点击右下角的【确认修改】;
6。屏幕上方会显示设置立即生效,表示设置成功。
如何用Docker成为更高效的数据科学家?
使用Docker容器开发机器学习模型有很多优点。最近,GitHub的高级机器学习科学家Hamel Husain发表了一篇关于走向数据科学的入门级Docker容器教程。文章从基本概念入手,清晰地介绍了Docker容器的一些基本操作方法和注意事项。机器之心整理介绍了这篇文章。本文涉及的所有相关代码请访问:_Tutorial。
在过去的五年里,Docker容器成了一个热词,似乎我所有的软件工程师朋友都在用它们开发应用程序。我想知道这项技术如何让我变得更高效,但我发现我在网上找到的教程要么太详细(解释了一些我作为数据科学家永远不会使用的功能),要么太简单(没有足够的信息来帮助我理解如何快速有效地使用Docker)。
所以我写了这个快速入门,让你不用自己去网上筛选资料,就能快速学会Docker入门所需的一切。
Docker是什么?
你可以把Docker想象成一个轻量级的虚拟机——它包含了运行应用程序所需的一切。Docker容器可以获取系统状态的快照,以便其他人可以使用该快照快速重建您的计算环境。这是本教程中您需要知道的全部内容。有关更多详情,请参考:
为什么要用Docker?
1.重现性:作为一名专业的数据科学家,让你的结果具有重现性是非常重要的。再现性不仅有助于同行评审,还可以确保您创建的模型、应用程序或分析可以无障碍地运行,从而使您交付的结果更加稳健,经得起时间的考验。例如,如果你用Python创建一个模型,仅仅运行pip freeze并把结果requirements.txt文件发送给你的同事是不够的,因为它只包含特定于Python的依赖关系——但实际上,依赖关系不仅仅是Python,还有操作系统、编译器、驱动程序、配置文件以及你的代码成功运行所需的其他数据。即使只分享Python依赖,也能成功。将所有内容封装在Docker容器中仍然可以缓解这个问题。别人的负担,重建你的环境,让他们更容易获得你的成就。
2.计算环境的可移植性:作为一名数据科学家,尤其是在机器学习领域,快速改变你的计算环境的能力可以极大地影响你的生产力。数据科学的初始工作通常是原型设计、探索和研究——这些任务不一定立即需要特定的计算资源。这项工作通常在笔记本电脑或个人电脑上完成。但在未来的某个时候,你将经常需要不同的计算资源来显著加快你的工作流——例如,使用更多的CPU或强大的GPU来执行深度学习等任务。我见过许多数据科学家将自己限制在本地计算环境中,因为他们感到在远程机器上重建本地环境的困难。Docker可以移植你的环境(你所有的库和文件等)。)很简单。在Kaggle竞争中,快速移植计算环境也是一个巨大的竞争优势,因为你可以经济高效地使用AWS宝贵的计算资源。最后,创建Docker文件允许您移植许多您喜欢的本地环境配置——比如bash别名或vim插件。
3.加强你的工程能力:熟练使用Docker可以让你将模型或分析部署到应用程序中(比如提供预测的REST API),这样别人也可以使用你的结果。此外,您可能需要与数据科学工作流中Docker容器中的其他应用程序进行交互,例如数据库。
码头术语
在我们继续之前,它 熟悉Docker 的术语:
图像:它是你想要创造的蓝图。比如:Ubuntu TensorFlow,带NVIDIA驱动,运行Jupyter服务器。
容器:它是你实现的运行映像的实例化。您可以运行同一图像的多个副本。区分镜像和容器的区别非常重要,因为这是初学者经常混淆的两个概念。如果你不 如果你不知道镜子和容器的区别,停下来再读一遍。
Dockerfile:创建镜像的方法。Dockerfile包含特殊的Docker语法。官方文档说:Dockerfile是一个文本文档,包含了用户可以在命令行调用的所有命令,组装成镜像。
提交:与git类似,Docker容器提供版本控制。通过commit所做的更改,您可以随时将Docker容器的状态保存为新的映像。
Docker Hub/Image Registry:人们可以公开(或私下)发布。Docker镜像用于促进合作和共享。
层:对现有图像的修改,由docker文件中的指令指示。将图层应用于基础图像,以创建最终图像。
这些术语将在本文中使用。如果你在阅读时忘记了它们,一定要检查回来!这些术语很容易混淆,尤其是在镜像和容器之间——所以你在阅读的时候要警惕!
安装Docker
您可以从以下网址免费下载并安装Docker社区版:
创建你的第一个码头工人形象。
在创建Docker容器之前,创建一个用于定义镜像的Docker文件是很有用的。让 下面我们来慢慢解读Dockerfile。您也可以在与本教程相关的GitHub库中找到该文件:
# referenc: _/Ubuntu/
来自ubuntu:16.04
#将元数据作为键值对示例标签版本1.0添加到图像中
标签维护者Hamel Husain
# #设置环境变量
环境。ALLC UTF路8号。UTF-8
运行apt-get update-fix-missing amp apt-get install-y wget bzip2 ca-certificates
构建-基本
byobu
卷曲
git核心
htop
pkg-配置
python3-dev
python-pip
python-setuptools
python-virtualenv
拉开…的拉链
放大器
apt-get干净的ampamp
rm -rf /var/lib/apt/lists/*
运行echo导出路径/opt/conda/bin:$PATH gt ampamp
wget - quiet _ -O ~ ampamp
/bin/bash ~ -b -p /opt/conda ampamp
rm ~
ENV PATH/opt/conda/bin: $小路
运行pip - no-cache-dir安装-升级
多重处理
sk learn-熊猫
#为Jupyter打开端口
暴露7745
#安装文件系统
运行mkdir ds
环境主页/ds
环境外壳/bin/bash
体积/密度
工作目录/ds
添加运行_/ds/运行_
运行chmod x /ds/run_
#运行外壳
CMD [。/run_]
FROM语句
来自ubuntu:16.04
FROM语句包含了Docker最神奇的部分。该语句指定了您想要在其上创建的基本图像。通过使用FROM来指定一个基本映像,Dock:16.04的映像——如果它不存在。;如果找不到,它将搜索您指定的Docker注册表,默认为DockerHub:。如果你需要经常在你的Ubuntu和其他操作系统上安装程序,这种分层机制非常方便。你不 不用费心从头安装Ubuntu,但你可以直接在官方Ubuntu镜像上开发!DockerHub托管各种各样的映像,包括那些不仅提供操作系统的映像。例如,如果您想要一个安装了Anaconda的容器,您可以选择在官方的Anaconda Dock:16.04作为基图,它将搜索名为ubuntu (_/ubuntu/)的DockerHub库。映像名称后面的16.04部分是一个标记,它指定了您要安装的基础映像的版本。如果你搜索Ubuntu DockerHub库,你会注意到不同版本的Ubuntu对应不同的标签:
2017年12月Ubuntu Dock:16.04,Ubuntu : x:x:latest都是指Ubuntu 16.04版本,都是同一个镜像的别名。此外,这里提供的链接指向相应的Dockerfile,它可以用来构建每个版本的映像。有时你可以 t在DockerHub中找不到Docker文件,因为维护人员可以选择是否包含关于这些映像是如何创建的Docker文件。个人觉得看一些Dockerfile是有助于更好的理解Dock:lat:16.04为什么?仔细看,可以看到:latest与16.04相关联。
关于Docker镜像需要注意的最后一点:从DockerHub拉随机Docker镜像时做出明智的判断恶意人士创建的拉映像可能包含恶意软件。
标签语句
这条语句将向您的图像添加元数据,它是完全可选的。加这句话的目的是让别人知道我可以联系谁,也方便我搜索我的Docker容器,尤其是一个服务器上同时运行多个容器的时候。
标签维护者Hamel Husain ltyouremailgt
ENV语句
环境。ALLC UTF路8号。UTF-8
这允许您修改环境变量,而且非常简单。请参考:
运行语句
这通常是最需要努力的地方,并给出了在构建Docker映像时要完成的任务。您可以运行任何shell命令(如apt-get和pip install)来安装您需要的软件包和依赖包。
运行apt-get update-fix-missing amp apt-get install-y wget bzip2
构建-基本
ca证书
git核心
...
在这里我安装了一些我喜欢的实用工具,比如curl和h。Top,byobu,然后安装了Anaconda,然后安装了一些基本Anaconda中没有的其他库(可以在完整的Dockerfile中看到其他RUN语句)。
RUN语句后面的命令和Docker没有任何关系,只是你在安装这些软件包时需要运行的一些正常的Linux命令,所以不要 即使你不熟悉这些软件包或Linux命令,也不用担心。另外,再提一个建议:我刚开始学习Docker的时候,在GitHub或者DockerHub上看其他的Docker文件,然后把我需要的复制粘贴到我的Docker文件中。
您可能已经注意到了RUN语句的格式。为了可读性,每个库或软件包都整齐地缩进并按字母顺序排序。这是Dockerfile的常用做法,建议你也这样做,以便合作。
暴露语句
如果您想要公开一个端口——例如,如果您从容器或网络服务中实现一个Jupyter Notebook,那么这个语句非常有用。码头工人 的文档很好地解释了EXPOSE语句:
EXPOSE指令实际上并不发布端口。它的功能是作为创建图像的人和运行容器的人之间的一种文档,内容是关于要发布的端口。要实际发布端口,您必须在docker run上使用-p标志,并在运行容器时映射一个或多个端口,或者您可以使用-P标志发布所有端口,并将它们映射到更高级的端口。
数量报表
体积/密度
这个语句允许你在Docker容器和主机之间共享数据。VOLUME语句允许您安装外部安装的卷。主机目录仅在容器运行时声明(因为您可能在不同的计算机上运行容器),而在定义映像时不声明。目前,您只需在Docker容器中指定想要与主机容器共享的文件夹的名称。
Docker用户指南解释道:
主机目录是在容器运行时声明的:主机目录(挂载点)本质上依赖于主机。这是为了确保映像的可移植性,因为不能保证给定的主机目录对所有主机都可用。出于这个原因,你可以 不要在Dockerfile中挂载主机目录。卷指令不支持指定host-dir参数。创建或运行容器时,必须指定一个装载点。
此外,这些卷的目的是在容器的文件系统之外保存数据,这在您必须操作大量数据时非常有用。;我不希望你的形象大大扩大。当您保存码头时Er映像,这个卷目录中的任何数据都不会保存为映像的一部分,但是这个容器目录之外的数据会被保存。
工作目录语句
工作目录/ds
此语句设置工作目录,以便您可以在另一个命令中索引特定文件,而无需使用绝对路径。例如,这个docker文件中的最后一句话是:
CMD [";。/run_";]
该语句假定默认情况下工作目录是/ds。
添加语句
添加运行_/ds/运行_
此命令允许您在Docker容器运行时将文件从主机复制到Docker容器。我使用这个命令来执行bash脚本并导入有用的东西,比如。bachrc文件到容器中。
请注意,这里没有完全指定主机容器的路径,因为它的主机路径是您在容器运行时指定的上下文目录的相对路径(稍后讨论)。
当我运行这个容器时,run_就在后台路径的根目录下,所以在源文件之前没有路径。
用户指南说:
添加
ADD指令从ltsrcgt复制新文件、目录或远程文件URL,并将它们添加到路径ltdestgt的镜像文件系统中。
CMD语句
Docker容器的设计思想是,这些容器是短命的,它足以保证你要运行的应用程序完成。但是在数据科学中,我们经常希望让这些容器一直运行,即使其中没有任何活动的东西在运行。许多人通过运行bash shell(它赢了 不停止就不要停止。
CMD [";。/run_";]
在上面的命令中,我运行了一个shell脚本,该脚本实例化了一个Jupyter笔记本服务器。然而,如果你不 如果没有任何特定的应用程序要运行,并且只想让容器保持运行(不退出),可以直接运行bash shell,只需使用以下命令:
CMD [/bin/bash]
这种方法是有效的,因为bash shell不会终止,除非您退出;因此,容器将一直保持运行。
用户指南说:
docker文件中只能有一条CMD指令。如果您列出了多个CMD,则只有最后一个有效。
CMD的主要目的是为执行容器提供默认配置。这些默认配置可能包含一个可执行文件,或者可执行文件可能被省略,在这种情况下,您还必须指定一个ENT。RYPOINT命令。
在创建Docker镜像Docker文件的过程中有如此多的信息。唐 别担心,后面的部分相对简单。现在我们已经在Dockerfile中创建了我们的食谱。;是时候创建一个镜像了。您可以通过以下命令完成此操作:
还有:_ tutorial/blob/master/basic _ tutorial/build _ on GitHub。
这创建了一个Docker映像(不是容器;如果你不 I don'我记不起这两者之间的区别,请查阅文章前面的词汇表。您可以稍后运行此镜像。
从你的Docker镜像创建并运行容器,现在你已经准备好让它工作了!我们可以通过执行以下命令来启动环境:
GitHub还有:_ tutorial/blob/master/basic _ tutorial/run _。
运行此命令后,您的容器将运行!Jupyter服务器也在运行,因为docker文件的末尾有这个命令:
CMD [";。/run_";]
现在你应该可以通过它使用的端口访问你的Jupyt: 7745/,密码是tutorial。如果您远程运行这个Docker容器,您还必须设置本地端口转发,以便您可以通过浏览器访问您的Jupyter服务器。端口转发简介:
与容器交互一旦容器设置好并运行,以下命令就很有用:
将新的终端会话附加到容器。如果您需要安装一些新软件或使用shell,这将非常有用。
将容器的状态保存为新图像。即使一开始就在Dockerfile中配置了所有想要安装的库,随着时间的推移,你可能仍然需要对容器的状态进行很大的调整——通过交互添加更多的库和软件包。将容器的状态保存为镜像非常有用。您可以稍后共享或向其添加图层。您可以使用docker commit CLI命令将容器状态保存为新映像:
docker commit lt contain:标签名(可选)
比如我想把一个名为contain: v2
你可能想知道镜像名称前的hamelsmu/是什么——这只是为了以后更方便地将容器推送到DockerHub,因为hamelsmu是我的DockerHub用户名(这个我们后面会讲到)。如果你想在工作中使用Docker,你的公司很可能有一个内部私有的Docker库,你也可以把你的Docker推送到那里。
列出运行中的容器。当我忘记了正在运行的容器的名称时,我经常使用这个命令:
docker ps -a -f状态运行
如果您使用此命令而不添加statusrunning,您将看到系统上所有容器的列表(甚至包括那些不再运行的容器)。这对于寻找旧容器很有用。
列出您保存在本地的所有图像。
docker图像
将你的图片推送到DockerHub(或其他地方)。如果您想要与其他人共享您的工作或将图像保存到云中,此命令非常有用。这样做的时候注意不要分享任何私人信息(DockerHub上也有私人库)。
首先,创建一个DockerHub库并给你的库取一个合适的名字,参考这里。然后运行docker login命令,连接到您在DockerHub或其他注册位置的帐户。例如,要将一个图像推送到这个容器(),我必须首先调用我的本地图像命令hamelsmu/tutorial(我可以选择任何标记名)。例如,此CLI命令为:
dock: v2
将前面提到的Docker镜像推送到这个库中,其标签为v2,引用:。需要指出的是,如果你公开了你的图片,别人可以直接给你的图片添加图层,就像我们在本教程中给ubuntu image添加图层一样。这对想要复制或扩展你的研究的其他人非常有用。
你已经掌握了。现在您已经知道如何操作Docker,您可以执行以下任务:
与同事和朋友分享可重复的研究。
通过将您的代码临时迁移到您需要的更大的计算环境中,不间断地赢得Kaggle竞赛。
在笔记本电脑上的Docker容器中进行本地原型开发。然后毫不费力地将相同的计算过程无缝地迁移到服务器,同时保留您喜欢的本地环境配置(您的别名、vim插件、bash脚本、自定义提示等。).
使用Nvidia-Docker快速实例化在GPU计算机上运行TensorFlow、PyTorch或其他深度学习库所需的所有依赖包。如果从零开始,过程会很艰难。)看后面的彩蛋。
将您的模型发布为应用程序,例如从Docker容器提供预测的REST API。当你的应用是Docker的时候,你可以根据需要轻松的随意复制。
进阶阅读到这里,我们只学到了Docker的一点皮毛,还有很多值得掌握的东西。我很关注Docker领域,我觉得数据科学家会经常遇到。希望这篇文章能给你足够的信心开始使用。以下资源对我的码头之旅有所帮助:
有用的Docker命令:_docker_containers/
更有用的Docker命令:
Dockerfile文件参考:
如何在DockerHub上创建和推送库;
彩蛋:Nvidia-Docker我学习Docker最早的原因是在单个GPU上进行深度学习模型的原型化,然后在需要更多计算资源的时候迁移到AWS。我也在研究杰瑞米·霍华德 的优秀课程()并想与他人分享我的原型设计。
然而,包括所有的依赖包,如NVIDIA GPU的驱动程序,你可以 不要用Docker,而要用Nvidia-Docker()。这比使用普通的Docker需要更多的努力,但是只要你理解Docker,它 这很容易做到。
我把我的Nvidia-Docker设置放在这里:_ tutorial/tree/master/GPU _ tutorial。你可以用这个练习。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。