【发布时间】:2020-10-01 03:12:54
【问题描述】:
我正在制作一个 CNN 模型,并希望通过在图像上应用自定义过滤器来处理图像,然后再将它们输入原始 CNN。知道如何实现吗? 我已经尝试了以下链接中提到的方法,但它引发了“断言错误”! How to include a custom filter in a Keras based CNN?
【问题讨论】:
标签: python image-processing keras conv-neural-network
我正在制作一个 CNN 模型,并希望通过在图像上应用自定义过滤器来处理图像,然后再将它们输入原始 CNN。知道如何实现吗? 我已经尝试了以下链接中提到的方法,但它引发了“断言错误”! How to include a custom filter in a Keras based CNN?
【问题讨论】:
标签: python image-processing keras conv-neural-network
Assertion Error 的这个问题通常发生在处理的输出维度数与原始 CNN 的输入维度数不匹配时。
确保上述链接中生成的输出尺寸与原始 CNN 的尺寸相同。
那么它应该可以工作了!希望对你有帮助:)
【讨论】:
def my_filter(shape, dtype=None): f = np.array([ [[[-1]], [[2]], [[-2]], [[2]], [[-1]]], [[[2]], [[-6]], [[8]], [[-6]], [[2]]], [[[-2]], [[8]], [[-12]],[[8]], [[-2]]], [[[2]], [[-6]], [[8]],[[-6]], [[2]]], [[[-1]], [[2]], [[-2]],[[2]], [[-1]]], ]) assert f.shape == shape return K.variable(f, dtype='float32') def build_model(): input_tensor = Input(shape=(256,256,3))
model = layers.Conv2D(filters=1, kernel_size = 5, kernel_initializer=my_filter, strides=2, padding='same') (input_tensor) return model
f.shape 不等于shape 作为参数传递给my_filter 函数。您需要使这 2 个形状相同,否则它将不起作用。