据说在Keras (https://datascience.stackexchange.com/a/16466/43571)中,conv2d的滤波器定义是随机的。在另一篇文章(https://stackoverflow.com/a/57671305/2590509)中,解释了我们可以分配自定义过滤器。我的问题是,我们如何在conv2d中手动/自定义地定义多种类型/形式的过滤器。我想使用sobel,canny,prewit和roberts边缘检测器作为滤波器(https://globaljournals.org/GJCST_Volume12/5-Study-and-Comparison-of-Different-Edge.pdf )
发布于 2021-02-18 07:09:25
根据你在这里提到的帖子,你有两个选择:
使用K.()
.
然而,在这种情况下,真正的问题是:为什么要实现这一点?本质上,不仅在Keras中,而且在所有深度学习框架中,这些过滤器都是随机初始化的,它们能够自己学习您提到的那些功能。这就是为什么我们允许训练过滤器,因为它们可以自己学习我们作为程序员将硬编码和手动提供给这些过滤器的内容。
在我看来,如果你确实需要(?)想要单独实现这些过滤器,请使用解决方案1,创建一个具有静态方法的类,其中每个方法表示一个自定义过滤器。
然而,我不能强调我强烈建议避免;这就是为什么我们进行机器学习和深度学习,以避免硬编码方面,并让模型自己学习它们需要的东西,比我们付出更大努力所做的要好很多倍。
https://stackoverflow.com/questions/66245630
复制