首页 > 解决方案 > 在自定义 Keras 层中使用带有 tf.py_func 的 python 代码

问题描述

我想编写我自己的调用 python 函数的 Keras 层。所以我遇到了tf.py_func哪个应该真正完成这项工作。

我尝试了以下方法:在MyLayer类的调用方法中,我将自定义 python 函数myFunc包装在tf.py_func. 所以调用方法返回tf.py_func(myFunc, [input], tf.float32)

我收到以下错误消息:

TypeError: unsupported operand type(s) for %=: 'int' and 'NoneType'

在自定义 Keras 层中调用 python 函数的正确方法是什么?我究竟做错了什么?

标签: pythontensorflowkeras

解决方案


您必须显示您的层代码和传递给 pyfunc 的函数,以便我们理解错误。然而,虽然可以在自定义 Keras 层中嵌入 tf 函数,但在这种情况下,最好的选择可能是使用 Keras lambda 层: https ://keras.io/layers/core/#lambda

这直接将python函数作为参数。与 tf.py_func 一样,它需要一个将 numpy 数组作为输入并输出 numpy 数组的函数。


推荐阅读