前言
前几天看到PyConv感觉想试一下,死活找不到keras源码我又不会torch。试着自己写了下。尚未测试一、PyConv
PyConv是特征融合卷积一种。
核心是使用多个大小不同的卷积对input feature maps进行卷积操作
二、实现
1.分组卷积
为使PyConv在不同层使用不同深度的卷积核,需要将输入特征划分为不同的组并独立的进行卷积计算,称之为组卷积
代码如下:
import math
import tensorflow as tf
from keras import backend as K
from keras.layers import Conv2D, Layer
from keras import initializers, regularizers
class GroupConv2D(Layer):
def __init__(self, out_filters, kernel_size, dilation_rate=(1, 1),strides=1, use_bias=False, padding='same',
kernel_initializer='glorot_uniform', kernel_regularizer=None, groups=32,**kwargs):
super(GroupConv2D, self).__init__(**kwargs)
self.out_filters = out_filters
self.kernel_size = kernel_size
self.str