【问题标题】:Is it possible to return tensorflow code from compiled Keras model?是否可以从已编译的 Keras 模型中返回 tensorflow 代码?
【发布时间】:2016-11-03 16:41:41
【问题描述】:
我将首先说我承认这可能不是这个问题的合适地点,但我不确定从哪里开始。如果有更合适的SE频道,欢迎提出建议。
我一直在使用 Keras 来学习如何将神经网络应用于不同的预测问题。我有兴趣学习 TensorFlow,以此来更深入地了解这些网络的内部工作。显然,可以将 Keras 的后端切换到 TensorFlow,并将 Keras 作为 TensorFlow 的高级 API。但是,有没有办法从已编译的 Keras 模型中“恢复”TensorFlow 代码?我认为能够在 Keras 中编写我熟悉的模型并自动将其“翻译”为 TensorFlow 以更快地学习该库,这将是非常有用的。
任何想法或建议都会有所帮助。感谢阅读。
【问题讨论】:
标签:
neural-network
tensorflow
deep-learning
keras
【解决方案1】:
Keras 所做的只是将 Theano 和 TensorFlow 抽象为一个统一的后端模块。然后它使用后端的函数来实现你可以在 Keras 中使用的层和方法。
这反过来意味着在为特定后端生成代码时不涉及编译步骤。 Theano 和 TensorFlow 都是 python 库,不需要翻译步骤,Keras 只是使用您指定的库。
了解 Keras 中的模型是如何在 TensorFlow 中编写的最好方法可能是搜索具有相同数据集的简单网络,并比较 TensorFlow 和 Keras 中的示例。另一种方法是阅读 Keras 代码并在 TensorFlow 后端模块中查找 K.<function>。
如果您对各个后端生成的特定于平台的代码感兴趣,例如CUDA 代码,那么答案是:视情况而定。 Theano 和 TensorFlow 都使用临时目录来存储代码和源代码。对于 theano,默认为 ~/.theano。但查看这段代码可能不会让您更明智地理解神经网络及其机制。