Kur vs Keras - 优点和缺点

数据挖掘 深度学习 喀拉斯
2022-02-28 05:09:20

我只是偶然发现了Kur乍一看,它似乎使深度学习在高水平上几乎与 Keras 类似。每种方法的优缺点是什么,建议初学者使用什么?

2个回答

免责声明:我是 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 开源了。我发现定义模型的方式独特且简单,但我不确定其稳健性。点击这里了解它。