具有自定义功能的 Keras 自定义层

Keras custom layer with custom function

我想创建具有内置图像处理功能的自定义图层,例如蒙版,或某种 blur/noise/color 更改等

我写了这段代码,但我不知道该怎么办

__return input* mask[[1,0,1,0][0,1,0,1][1,0,1,0][0,1,0,1]]__

它不是那样工作的,因为该操作需要一个 numpy 数组,但是得到“tensorflow.python.framework.ops.Tensor”

class MyLayer(tf.keras.layers.Layer):
  def __init__(self, num_outputs):
    super(MyLayer, self).__init__()
    self.num_outputs = num_outputs

  def build(self, input_shape):
    self.kernel = self.add_weight("kernel",
                                  shape=[int(input_shape[-1]),
                                         self.num_outputs])
  def call(self, input):

    return input* mask[[1,0,1,0][0,1,0,1][1,0,1,0][0,1,0,1]]
    
    ##return tf.matmul(input, self.kernel)

layer = MyLayer(4,4)

https://i.stack.imgur.com/CCpgr.png 图片

在结果中我想制作类似编码器网络的东西,但在它的中间是一个将输入向量转换为图片的算法,然后网络的右侧部分将解码该图像并将 return 相同的值,我发送到输入层

不确定您要做什么,但我想 lambda 包装层可能是解决方案。查看文档和有用的博客。

https://blog.paperspace.com/working-with-the-lambda-layer-in-keras/

https://www.tensorflow.org/api_docs/python/tf/keras/layers/Lambda?hl=en