Keras Conv2d own filters
可以设置为具有自己的过滤器的参数过滤器数组,而不是Conv2D中的过滤器数量
1 2 3 4 5 6 | filters = [[[1,0,0],[1,0,0],[1,0,0]], [[1,0,0],[0,1,0],[0,0,1]], [[0,1,0],[0,1,0],[0,1,0]], [[0,0,1],[0,0,1],[0,0,1]]] model = Sequential() model.add(Conv2D(filters, (3, 3), activation='relu', input_shape=(3, 1024, 1024), data_format='channels_first')) |
您必须记住,Conv2D网络的目的是训练这些过滤器值。我的意思是,在使用形态滤波器的传统图像处理任务中,我们应该设计滤波器内核,然后在整个图像中进行迭代(卷积)。
在深度学习方法中,我们试图完成相同的任务。但是在这里,我们假设虽然确切知道我们要查找的内容(标记的图像),但我们不知道应该使用哪个过滤器。当我们训练卷积神经网络时,我们向它展示了我们想要的东西并要求它找出自己的权重,即过滤器值。
因此,在这种情况下,我们应该只定义要训练的过滤器数量(在您的情况下为4个过滤器),以及如何初始化它们。训练网络时将设置其权重。
有很多方法可以初始化滤镜权重(例如,将它们全部设置为零或一;或者使用随机函数来保证它们可以捕捉到不同的图像特征)。 Keras Conv2D函数默认使用https://keras.io/layers/convolutional/#conv2d中指定的" glo统一"算法。
如果您真的想按照显示的方式初始化过滤器权重,则可以编写自己的函数(请查看https://keras.io/initializers/),然后通过kernel_initializer参数传递它: 可接受的答案是正确的,但对于一个完整的示例肯定会更有用,类似于此出色的tensorflow示例中提供的示例,该示例演示了Conv2d的功能。
对于喀拉拉邦,这是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | from keras.models import Sequential from keras.layers import Conv2D import numpy as np # Keras version of this example: # https://stackoverflow.com/questions/34619177/what-does-tf-nn-conv2d-do-in-tensorflow # Requires a custom kernel initialise to set to value from example # kernel = [[1,0,1],[2,1,0],[0,0,1]] # image = [[4,3,1,0],[2,1,0,1],[1,2,4,1],[3,1,0,2]] # output = [[14, 6],[6,12]] #Set Image image = [[4,3,1,0],[2,1,0,1],[1,2,4,1],[3,1,0,2]] # Pad to"channels_last" format # which is [batch, width, height, channels]=[1,4,4,1] image = np.expand_dims(np.expand_dims(np.array(image),2),0) #Initialise to set kernel to required value def kernel_init(shape): kernel = np.zeros(shape) kernel[:,:,0,0] = np.array([[1,0,1],[2,1,0],[0,0,1]]) return kernel #Build Keras model model = Sequential() model.add(Conv2D(1, [3,3], kernel_initializer=kernel_init, input_shape=(4,4,1), padding="valid")) model.build() # To apply existing filter, we use predict with no training out = model.predict(image) print(out[0,:,:,0]) |
输出
1 2 | [[14, 6] [6, 12]] |
符合预期。