是否可以从编译的Keras模型中返回张量流代码?

时间:2016-11-03 16:41:41

标签: neural-network tensorflow deep-learning keras

我将从这篇文章开始说我承认这可能不是这个问题的适当场所,但不确定从哪里开始。如果有更合适的SE频道,请随时提出建议。

我一直在使用Keras学习如何将神经网络应用于不同的预测问题。我有兴趣学习TensorFlow,以此深入了解这些网络的内部工作。显然,可以将Keras的后端切换为TensorFlow,并将Keras用作TensorFlow的高级API。但是,有没有办法从已编译的Keras模型中“恢复”TensorFlow代码?我认为能够编写我在Keras中熟悉的模型非常有用,并且自动将其作为TensorFlow的“翻译”作为一种更快速地学习该库的方式。

任何想法或建议都会有所帮助。谢谢你的阅读。

1 个答案:

答案 0 :(得分:1)

Keras所做的就是将Theano和TensorFlow抽象为一个统一的后端模块。然后,它使用后端中的函数来实现您可以在Keras中使用的图层和方法。

这反过来意味着在为一个特定后端生成代码时不涉及编译步骤。 Theano和TensorFlow都是python库,没有理由进行翻译步骤,Keras只使用你指定的库。

了解如何使用TensorFlow编写Keras中的模型的最佳方法可能是搜索具有相同数据集的简单网络,并比较TensorFlow和Keras中的示例。另一种方法是读取Keras代码并在TensorFlow后端模块中查找rand.nextInt

如果您对各个后端产生的平台特定代码感兴趣,例如CUDA代码,然后答案是:它取决于。 Theano和TensorFlow都使用临时目录来存储代码和源代码。对于theano,默认情况下为K.<function>。但是看一下这段代码可能不会让你更明智地理解神经网络及其机制。