我只是偶然发现了Kur。乍一看,它似乎使深度学习在高水平上几乎与 Keras 类似。每种方法的优缺点是什么,建议初学者使用什么?
Kur vs Keras - 优点和缺点
(免责声明:我是 Kur 的核心维护者。)
Kur 和 Keras 都是深度学习框架,但它们的用途不同:
Keras 基于 Theano 和 TensorFlow 构建,为底层张量库提供高级 API。这意味着您将 Keras 用作 Python 程序的一部分,并且您可以像这样以编程方式创建模型(这是 Keras 的功能 API):
import keras.layers as L import keras.models as M my_input = L.Input(shape=(100,)) intermediate = L.Dense(10, activation='relu')(my_input) my_output = L.Dense(1, activation='softmax')(intermediate) model = M.Model(input=my_input, output=my_output)当您正在开发想要“嵌入”到某个更大的 Python 程序中的深度学习网络时,或者当您正在开发您打算使用的单个模型时,这非常有用。Keras 也相当成熟,并且有一个很棒的社区支持它。Keras 目前为您将完全在 Python 中创建和使用的模型提供了卓越的 API。
Kur 基于Keras构建,为设计和运行深度学习模型提供描述性框架;使用 Kur 时不编写程序。您无需编程,而是编写描述您的模型的“Kurfiles”:
model: - input: my_input - dense: 10 - activation: relu - dense: 1 - activation: softmax - output: my_output这与我刚刚在 Keras 中编写的模型相同。Kur 的描述性语言可以快速制作原型并测试您的模型。Kurfile 的优点是您可以调整模型的大块或小块,而无需接触您的代码库。当Kurhub发布时,您将拥有一个类似 Docker 的存储库,用于共享模型。
Kur 还负责编写深度学习系统时需要考虑的许多细节。例如,Kur 知道几种不同的数据类型(CSV、Python pickle 等),它可以加载数据并为您推断形状。如果没有 Kur,您将不得不编写自己的数据处理管道(这可能容易或困难,具体取决于您的数据)。一旦您编写了 Kurfile(以 YAML 或 JSON 格式),您就可以
kur train Kurfile使用kur evaluate Kurfile. 这使得它非常容易用作工具,而不是 Python API。
Kur 和 Keras 都可以使用 Theano 或 TensorFlow,都提供 Python API,并且都易于编写模型。这实际上取决于如何计划开发和部署系统。
我使用 Keras 已经有一段时间了。以下是 keras 的一些优缺点:-
- 更易于使用和构建模型(专业版)
- 可以同时使用 TensorFlow 和 Theano 后端(专业版)
- 耗时少,可重用性极佳。(专业版)
- 很多人抱怨 Tensorflow 后端(con)的性能问题。
Kur 最近被 Deepgram 开源了。我发现定义模型的方式独特且简单,但我不确定其稳健性。点击这里了解它。