Deep learning 调整现有卷积神经网络模型以用于较大图像
我正在改编一个围绕CIFAR-10数据集设计的CNN模型 CIFAR-10中的图像为32x32。我的数据集有形状不规则的图像,192x108 初始卷积层有32个过滤器,内核大小为3x3,在以后的层上增加到64个,然后增加到128个 如果图像大小增加,增加过滤器数量和/或内核大小是否是最佳做法?如果是这样,我应该使用什么启发法 内核是否需要保持对称 以下是我的模型定义:Deep learning 调整现有卷积神经网络模型以用于较大图像,deep-learning,keras,conv-neural-network,Deep Learning,Keras,Conv Neural Network,我正在改编一个围绕CIFAR-10数据集设计的CNN模型 CIFAR-10中的图像为32x32。我的数据集有形状不规则的图像,192x108 初始卷积层有32个过滤器,内核大小为3x3,在以后的层上增加到64个,然后增加到128个 如果图像大小增加,增加过滤器数量和/或内核大小是否是最佳做法?如果是这样,我应该使用什么启发法 内核是否需要保持对称 以下是我的模型定义: Using TensorFlow backend. ______________________________________
Using TensorFlow backend.
____________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
====================================================================================================
convolution2d_1 (Convolution2D) (None, 32, 192, 108) 896 convolution2d_input_1[0][0]
____________________________________________________________________________________________________
dropout_1 (Dropout) (None, 32, 192, 108) 0 convolution2d_1[0][0]
____________________________________________________________________________________________________
convolution2d_2 (Convolution2D) (None, 32, 192, 108) 9248 dropout_1[0][0]
____________________________________________________________________________________________________
maxpooling2d_1 (MaxPooling2D) (None, 32, 96, 54) 0 convolution2d_2[0][0]
____________________________________________________________________________________________________
convolution2d_3 (Convolution2D) (None, 64, 96, 54) 18496 maxpooling2d_1[0][0]
____________________________________________________________________________________________________
dropout_2 (Dropout) (None, 64, 96, 54) 0 convolution2d_3[0][0]
____________________________________________________________________________________________________
convolution2d_4 (Convolution2D) (None, 64, 96, 54) 36928 dropout_2[0][0]
____________________________________________________________________________________________________
maxpooling2d_2 (MaxPooling2D) (None, 64, 48, 27) 0 convolution2d_4[0][0]
____________________________________________________________________________________________________
convolution2d_5 (Convolution2D) (None, 128, 48, 27) 73856 maxpooling2d_2[0][0]
____________________________________________________________________________________________________
dropout_3 (Dropout) (None, 128, 48, 27) 0 convolution2d_5[0][0]
____________________________________________________________________________________________________
convolution2d_6 (Convolution2D) (None, 128, 48, 27) 147584 dropout_3[0][0]
____________________________________________________________________________________________________
maxpooling2d_3 (MaxPooling2D) (None, 128, 24, 13) 0 convolution2d_6[0][0]
____________________________________________________________________________________________________
flatten_1 (Flatten) (None, 39936) 0 maxpooling2d_3[0][0]
____________________________________________________________________________________________________
dropout_4 (Dropout) (None, 39936) 0 flatten_1[0][0]
____________________________________________________________________________________________________
dense_1 (Dense) (None, 1024) 40895488 dropout_4[0][0]
____________________________________________________________________________________________________
dropout_5 (Dropout) (None, 1024) 0 dense_1[0][0]
____________________________________________________________________________________________________
dense_2 (Dense) (None, 512) 524800 dropout_5[0][0]
____________________________________________________________________________________________________
dropout_6 (Dropout) (None, 512) 0 dense_2[0][0]
____________________________________________________________________________________________________
dense_3 (Dense) (None, 3) 1539 dropout_6[0][0]
====================================================================================================
Total params: 41708835
我认为你应该做相反的事情,为更大的图像(比如ImageNet所用的图像)建立一个模型,并将其缩小一点。没有最佳实践,因为这完全取决于您的数据和模型的学习能力,所以您必须进行实验。一个例子可能是一个残余网络,然后你尝试调整你需要多少残余层。我认为你应该做相反的事情,为更大的图像(比如ImageNet所用的图像)建立一个模型,并将其缩小一点。没有最佳实践,因为这完全取决于您的数据和模型的学习能力,所以您必须进行实验。一个例子可能是一个剩余网络,然后您可以尝试调整需要多少剩余层。