跳到主要内容

命令行工具

Featurize 提供了一个命令行工具 featurize 来让一些操作能自动化地完成:

➜  ~ featurize --helpUsage: featurize [COMMAND]
Commands:  compress    压缩目录  decompress  解压文件  instance    实例管理  dataset     数据集相关操作  port        端口转发管理  notify      发送微信公众号通知  config      管理本地配置  help        Print this message or the help of the given subcommand(s)
Options:  -h, --help  Print help

一些功能与浏览器页面上有重复,以命令行方式提供的目的是为了让用户能够自动化得使用这些功能,另外还有一些功能是页面上不提供的,仅命令行才能使用。

大部分命令行工具的功能只支持在实例中使用,而对于比较重要的例如数据集上传,则也支持在用户的电脑中使用。

下载工具#

实例中默认已经安装了命令行工具,如果用户希望在本地电脑中使用命令行工具(例如上传数据集),则需要下载,下载时请认准自己的操作系统下载对应的软件:

info

由于下载的是一个二进制文件,对于 macOS 用户,下载后可能需要在系统设置中放行该文件的执行权限。

info

推荐用户将该可执行文件放在 $PATH 环境中,这样可以在任何地方使用 featurize 命令。macOS 和 Linux 用户直接将文件放在 /bin/ 下即可(需要 sudo 权限)。Windows 11 的用户可将可执行文件放置在 C:\Users\$USERNAME\AppData\Local\Microsoft\WindowsApps 目录下。

数据集相关#

我们更推荐用户使用命令行工具来制作、上传以及下载数据集,这会提供更好的性能和更稳定的体验。

上传数据集#

featurize dataset upload <目录或文件>

在最新的镜像版本中,通过页面上拉取数据集到实例,实际背后也是调用命令行工具。

相比于浏览器,通过命令行工具上传数据集有以下优势:

✅ 可以直接上传一个目录,而不是一定要先打包
✅ 更好地支持断点续传,不会因为网络问题导致上传失败而重传
✅ 真 · 多线程上传,实测速度是浏览器的 1.5 倍左右
✅ 自动化,可以将多个上传任务写在 Shell 脚本里完成顺序批量上传数据集

success

我们推荐直接上传目录,而不是手动打包后再上传,因为命令行工具使用的压缩算法比一般的 zip 或 gz + tar 更高效。特别是对于超大的数据集,在数据集解压速度上会有非常明显的优势。

如果一定要压缩目录,也推荐使用 featurize compress 和 featurize decompress 来进行压缩和解压,理由如上:压缩算法更高效,解压速度更快。featurize decompress 也支持直接解压常见的压缩包,例如 zip、tar.gz 等。

下载数据集#

featurize dataset extract <数据集ID>  # 推荐
或
featurize dataset download <数据集ID>

使用 featurize dataset download 仅会下载数据集的原始文件,对于很大的数据集来说,这可能导致磁盘不够用,考虑一个 200GB 的数据集,下载 + 解压至少会占用 400GB 的磁盘空间。

因此,更推荐使用 featurize dataset extract,这个方式会以流式解压,也就是不下载原始文件,而是直接将远程原始文件解压到本地磁盘中,磁盘利用率更高,速度也更快。

warning

数据集下载仅支持在实例中使用,不支持在用户本地使用。

通知#

featurize notify -t "测试通知"`

可以通过命令行工具给自己发送通知,通知以 Featurize 公众号消息的形式发送,这在很多场景下非常有用,比如:

  • 在某个训练完成后发送通知
  • 在某个任务失败后发送通知
  • 每轮训练完后自动发送训练的结果
  • ...
info

接收通知需要用户关注 Featurize 公众号,另外该命令也仅能在实例中使用。

端口转发至公网#

featurize port export <端口号>

如果用户在实例中起了一些端口,并且希望将端口暴露到公网访问,可以使用该功能。例如,用户通过命令行起了一个 TensorBoard 服务,这个服务监听的端口是 6006,那么可以这么使用:

(base) ➜ ~ featurize port export 6006  ✅ 端口已转发至公网,可使用 workspace.featurize.cn:48625 进行访问。  🔗 如果是 HTTP 服务,可直接在浏览器中访问 http://workspace.featurize.cn:48625 。

这样,我们就可以在浏览器中输入 http://workspace.featurize.cn:48625 访问到 TensorBoard 面板了。

danger

注意,服务必须绑定 IP 地址 0.0.0.0 才能被公网访问。大部分服务默认绑定的 IP 地址是本地 IP,即 localhost 或 127.0.0.1,这种情况下是无法被公网访问的,需要手动指定绑定 IP 地址为 0.0.0.0。

即便访问地址使用 Featurize 域名,对外提供的内容由你本人独立发布,与 Featurize 无关,相关法律责任由你自行承担。详见 用户服务协议 第 5.6 条。