核心概念

快速理解 RussellCloud 的五大核心理念:

  • 项目
  • 任务
  • 数据集
  • 环境库
  • 输出


项目

一个项目可以理解为一个工程。项目可以是一份论文的实验 demo,可以是 kaggle 的一场比赛,也可以是 GitHub 上的开源例子。

项目是 RussellCloud 的核心功能。当你在电脑上创建一个名为 tf-mnist 的文件夹时,你就开始了一个新的项目。在该目录下,你将编写一些代码,运行一些实验并迭代,直到你创建了一个满足你需求的深度学习模型。

在 RussellCloud 上,一个项目是开发深度学习模型时所执行的所有工作的集合。与单机离线的深度学习工作流程不同,你的所有实验将进行版本管理,保留以供将来参考。

任务

任务是项目的具体实施部分。即在 RussellCloud 深度学习服务器上运行你的代码

任务是指将代码和数据集,发送到正确配置的环境中,运行代码以完成需求的行为。

任务完成后,你可以在 RussellCloud 上查看它。对于每项任务,你将看到:

  1. 该次任务的代码快照
  2. 任务使用的数据集
  3. 任务处在什么环境下
  4. 任务的输出和日志

运行任务有两种方式。一种是通过 RussellCloud CLI 运行,一种是通过网页端运行。这两种方式都提供各种自定义选项:使用哪份数据集、数据集挂载在什么路径、用 tensorflow 还是用 pytorch、用 GPU 还是 CPU 等等此类都可以自由设置。

数据集

数据集上传至 RussellCloud 上,可以挂载到任何项目。

RussellCloud 的数据集工作流程对于习惯于本地开发的用户往往感到陌生。在本地机器上工作时,你可能将数据集与代码放在同一目录中,或放在保存许多不同数据集的目录中。使用 RussellCloud 时,数据集始终与代码保持分离。

为什么要将数据集和代码分离?

作为一名数据科学家,你在创建深度学习模型的过程中经常调整代码。但是,即使如此,你也不会像往常一样更改基础数据。

每次你在 RussellCloud 上运行一个任务时,代码的副本都会上传到 RussellCloud,并在 RussellCloud 的深度学习服务器上运行。由于你的数据不会因代码的改动而不同,因此将数据保存在代码中并将其上传到每个任务是没有意义的。相反,我们只需上传一个数据集,然后将其挂载到每个任务中。这将节省大量的时间。

除此之外,保持数据与代码分离使你可以更轻松地与其他人协作。任何有权访问的用户都可以使用数据集,因此团队和社区可以使用相同的基础数据一起解决问题。

连接代码与数据集

在使用 RussellCloud 时,你仍然会在本地编写代码,但是当你运行任务时,你的代码将被上传到 RussellCloud ,在功能强大的深度学习服务器上执行,同时数据集将挂载到该服务器上。

你可以指定数据集加载到服务器上的位置,但你必须确保代码使用服务器上数据的文件路径来引用数据集,而不是在本地使用的位置。

环境

环境定义了在任务中代码可以调用的软件库。

RussellCloud 有许多不同的深度学习环境可供选择。在 RussellCloud 上运行任务时,你可以直接从命令行指定要使用的环境。你还可以指定是否使用GPU或CPU运行任务。

如果 RussellCloud 预设定的深度学习环境不能满足你的需求,你可以为你的工作创建一个自定义环境。

输出

输出是想保存下来的任何数据,日志或文件。

输出是你想要保存以备将来使用的任务的任何内容。最常见的输出形式是在工作中所设计模型 checkpoint (模型的权重和偏差)。

输出是你将任务串在一起的方式:你运行任务来测试你的想法。如果它有效,你可能想要从你离开的地方开始运行另一项工作。了解如何存储输出是优化深度学习工作流程的关键。

在 RussellCloud 上保存和重新使用输出对于习惯于在自己的机器上工作的用户来说可能会感觉陌生。但是一旦你学会了如何去做,它变得非常简单,并且是 RussellCloud 工作流程中最有价值的部分之一。


帮助我们完善文档

本文档同步公开在 GitHub 上。团队在尽力完善文档,但错误难免存在,或许有些功能迭代也未能及时更新在文档上。若你有什么新的想法或体验,欢迎提交 Pull Request 为我们提供支持。

除此之外,你还可以通过 issue 直接提交问题。

Copyright © russellcloud.com 2017 all right reserved,powered by Gitbook该文件修订时间: 2018-06-14 01:49:18

results matching ""

    No results matching ""