将 Swift for TensorFlow (S4TF) 笔记本中的单元格导出为 Swift 包。
这是一个旨在作为 swift-jupyter 环境中安装的扩展程序运行的库,并且基于 fastai 当前用于 Python 和 S4TF Jupyter 笔记本的导出机制。
使用 swift-jupyter
的 %install
指令来安装此包,以及您的笔记本需要的任何其他包。
%install-location $cwd/swift-install
%install '.package(url: "https://github.com/mxcl/Path.swift", from: "0.16.1")' Path
%install '.package(url: "https://github.com/JustHTTP/Just", from: "0.7.1")' Just
%install '.package(url: "https://github.com/latenitesoft/NotebookExport", from: "0.6.0")' NotebookExport
有关更多详细信息,请参阅 swift-jupyter 安装和使用指南。
在每个可导出单元格的第一行使用 //export
注释来标记您希望导出的单元格。 例如
//export
public func notebookFunction()
{
/* Code */
}
您可以将特定单元格中的代码提取为导出包中的可执行产品。 例如,以下注释将生成一个名为 ls
的产品,您可以通过在导出包目录中发出命令 swift run ls
来运行它。
//executable: ls
print("/bin/ls".shell("-lh"))
生成的可执行文件会自动导入包名称(其中包含来自 export
单元格的所有代码),以及在 %install
指令中安装的库。 其他未安装的依赖项(TensorFlow、Python)如果需要,必须手动导入。
可以通过这种方式创建多个可执行文件。 每个可执行单元格应具有不同的名称以创建不同的目标。 尚不支持将多个可执行单元格合并到单个可执行目标中。
要导出所有标记的单元格,请在您的 S4TF 笔记本中导入 NotebookExport
包,并在笔记本单元格中像这样使用它
import Path
import NotebookExport
let exporter = NotebookExport(Path.cwd/"swift-notebook.ipynb")
print(exporter.export())
这会将笔记本中标记的单元格以您指定的名称导出到一个名为 FastaiNotebook_<notebook_name>
的新 Swift 包中(减去 .ipynb
扩展名)。 然后,您可以在您正在处理的其他笔记本中 %install
该包。
print(exporter.export(usingPrefix: "MyProject"))
导出到名为 MyProject_<notebook_name>
的包。
使用 NotebookExport.version
来验证已安装的版本。