如何有效地使用 Keras 与后端无关

Posted

技术标签:

【中文标题】如何有效地使用 Keras 与后端无关【英文标题】:How to use Keras effectively agnostic to backend 【发布时间】:2021-12-14 15:38:49 【问题描述】:

我正在尝试一些使用 keras 模型的示例,这些示例已经可用。大多数示例都使用带有 tensorflow(或 pytorch 或 theano)的 keras。 由于有限的可用资源和成本削减,我正在使用 plaidml 与 amd gpu 一起工作。由于 keras 支持可插拔后端,我认为这可能不是问题。 请分享您对使用 keras api 以及稍后插入所需后端的想法。 我有这个担忧是因为samples 和this 使用的是来自 tensorflow (import tensorflow.keras) 的 keras,而我使用的是来自 keras(import keras) 的普通版和可插拔后端。 什么是等价的陈述

img = tf.io.decode_png(img, channels=1)
# 3. Convert to float32 in [0, 1] range
img = tf.image.convert_image_dtype(img, tf.float32)

普通的 keras api 有什么限制吗?

【问题讨论】:

【参考方案1】:

我只是使用 PIL Image 来读取和转换图像。它的工作原理与不使用 tensorflow api 相同。无论后端如何,都可以使用大多数 keras api。 PlaidML 也有一些警告,有一些功能,如 CTC Loss ctc_batch_cost 找不到。我遇到了类似的错误

Keras 后端函数 'ctc_batch_cost' 尚未在 格子花呢。您可以通过让我们知道此功能来帮助我们确定优先级 对您很重要,并且一如既往地欢迎您的贡献!

有些帖子提供了一些示例实现,但并不直接。来自 PLaidML,response 是它可能不会很快推出。

【讨论】:

以上是关于如何有效地使用 Keras 与后端无关的主要内容,如果未能解决你的问题,请参考以下文章

Django ORM 能否以可靠的与后端无关的方式存储无符号 64 位整数(又名 ulong64 或 uint64)?

如何保持 React 组件与后端同步?

前端(React)如何与后端(Express)交互?

前端如何高效的与后端协作开发

前端如何高效的与后端协作开发

如何将node js前端代码与后端代码分开?