具有自定义功能的 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
我想创建具有内置图像处理功能的自定义图层,例如蒙版,或某种 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