如何从Keras Tensortype切换到自定义图层的numpy数组?

时间:2017-11-30 15:33:05

标签: python numpy keras theano tensor

所以我有一个自定义图层,没有任何权重。 首先,我尝试在Kers中实现操作输入张量的函数。但由于种种原因,我没有成功。我的第二种方法是使用numpy操作实现这些函数,因为我实现的自定义层没有任何权重,从我的理解,我会说,我可以使用numpy操作,因为我不需要反向传播,因为那里没有重量,对吗?然后,我只需将我的图层的输出转换为张量:

 Keras.backend.variable(value = output) 

因此,主要思想是实现一个自定义层,它采用张量,将它们转换为numpy数组,使用numpy操作对它们进行操作,然后将输出转换为张量。 问题是我似乎无法使用.eval()将我的图层的输入张量转换为numpy数组,因此可以使用numpy操作来操作它们。

任何人都可以告诉我,我如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

正如DanielMöller在评论中所提到的,Keras需要能够反向传播您的图层,以便计算前一层的渐变。因此,您的图层必须是可区分的。

出于同样的原因,您只能使用Keras操作,因为这些操作可以通过autograd自动区分。如果您的图层很简单,请查看Lambda layer,您可以在其中快速实现自定义图层。

顺便说一句,Keras后端功能应该涵盖很多用例,所以如果你不想通过这些来编写你的图层,你可能想在这里发布另一个问题。

希望这有帮助。