Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在keras中使用自定义tensorflow操作_Python_Tensorflow_Keras - Fatal编程技术网

Python 在keras中使用自定义tensorflow操作

Python 在keras中使用自定义tensorflow操作,python,tensorflow,keras,Python,Tensorflow,Keras,我有一个包含自定义tensorflow操作的tensorflow脚本。我想将代码移植到keras,但我不确定如何在keras代码中调用自定义ops 我想在keras中使用tensorflow,所以到目前为止我找到的教程描述了与我想要的相反的内容: 我还读过关于Lambda层的文章,它可以封装任意自定义函数,但我没有看到tf.ops的示例 如果您能为代码片段提供一个最简单的示例,我将不胜感激。例如,假设tf.ops为: outC = my_custom_op(inA, inB) ---编辑: 类

我有一个包含自定义tensorflow操作的tensorflow脚本。我想将代码移植到keras,但我不确定如何在keras代码中调用自定义ops

我想在keras中使用tensorflow,所以到目前为止我找到的教程描述了与我想要的相反的内容:

我还读过关于Lambda层的文章,它可以封装任意自定义函数,但我没有看到tf.ops的示例

如果您能为代码片段提供一个最简单的示例,我将不胜感激。例如,假设tf.ops为:

outC = my_custom_op(inA, inB)
---编辑:
类似的问题已经在中描述过——基本上是在keras中调用自定义op,但是我无法掌握如何将其应用到我想要的另一个示例上的解决方案,例如一个。这个定制的tf op首先被编译(用于gpu),然后在tensorflow中使用,如第40行所示。我很清楚如何使用lambda层中包装的自定义(lambda)函数,如果我使用keras,我想了解的是如何使用编译的自定义ops。

您可以在keras
lambda层中包装任意tensorflow函数,并将它们添加到您的模型中。最简单的工作示例:


你是说一个自定义层吗?为了在Keras中使用TensorFlow,你可以从Keras导入后端执行
作为K
,其中
K
对应于TensrFlow。例如
K.nn.relu
相当于
tf.nn.relu
etc@Colonder,谢谢你的帮助。请阅读更新的描述。我不确定这个预编译的自定义op是否可以/应该制作成自定义层。如果是,这是我想在一个简单的例子中理解的概念,我在上面提供了示例性github回购协议。我认为最好坚持Keras的思想,从Keras导入后端作为K
而不是从Keras导入tensorflow作为tf所有tensorflow函数在Keras后端都可用吗
K.matmul
给了我一个错误。是的,它们是,但它们的名称不同
tf.matmul
相当于
K.dot
,但是是的,归根结底这并不重要,所有的tensorflow函数在keras后端都不可用。而且很多都改变了,使用不同的输入,功能有限。我尝试了一段时间只使用K函数,但那实在太有限了使用
tf
而不是
K
的唯一问题是无法将代码迁移到其他后端。
import tensorflow as tf
from keras.layers import Dense, Lambda, Input
from keras.models import Model

W = tf.random_normal(shape=(128,20))
b = tf.random_normal(shape=(20,))

inp = Input(shape=(10,))
x = Dense(128)(inp)
# Custom linear transformation
y = Lambda(lambda x: tf.matmul(x, W) + b, name='custom_layer')(x) 
model = Model(inp, y)