Machine learning 如何选择CNN中的过滤器数量

Machine learning 如何选择CNN中的过滤器数量,machine-learning,deep-learning,conv-neural-network,Machine Learning,Deep Learning,Conv Neural Network,我正在调整CNN的架构,以提高CIFAR-10数据集的性能 虽然设置大多数超参数或多或少都很简单,但为每个层选择过滤器的数量似乎不明确 什么是正确的框架/直觉来设置CNN中要开始的过滤器数量和以下层的过滤器数量?没有直接的方法来知道要用于模型的过滤器数量。但是,您可以测试一些值,如16,32,64128256 有一个想法可以让这个过程自动化,我用它来为神经网络找到合适数量的卷积层和滤波器 conv_layers = [3, 4, 5] units = [32,64,128] for conv_

我正在调整CNN的架构,以提高CIFAR-10数据集的性能

虽然设置大多数超参数或多或少都很简单,但为每个层选择过滤器的数量似乎不明确


什么是正确的框架/直觉来设置CNN中要开始的过滤器数量和以下层的过滤器数量?

没有直接的方法来知道要用于模型的过滤器数量。但是,您可以测试一些值,如16,32,64128256

有一个想法可以让这个过程自动化,我用它来为神经网络找到合适数量的卷积层和滤波器

conv_layers = [3, 4, 5]
units = [32,64,128]

for conv_layer in conv_layers:
    for unit in units:
        Name = "CNN-LSTM-{}convl--{}LSTM-{}-time".format(conv_layer,unit,int(time.time()))
        model = Sequential()
        model.add(Input(shape=(IMG_HEIGHT, IMG_WIDTH, 3)))
        model.add(Reshape(target_shape=(IMG_HEIGHT, IMG_WIDTH * 3)))
        model.add(Conv1D(filters=64, kernel_size=3, padding="same", activation='relu',
                         input_shape=(IMG_HEIGHT, IMG_WIDTH * 3), data_format='channels_last'))
        for i in range(conv_layer-1):
            model.add(Conv1D(filters=64, kernel_size=3, padding="same", activation='relu'))
        model.add(MaxPooling1D(pool_size=3))

        model.add(Conv1D(filters=128, kernel_size=3, padding="same", activation='relu'))
        model.add(Conv1D(filters=128, kernel_size=3, padding="same", activation='relu'))
        model.add(LSTM(unit, activation='relu'))
        model.add(BatchNormalization())
        model.add(Flatten())
        model.add(Dense(4, activation='softmax'))
        model.build(input_shape=(batch_size, IMG_HEIGHT, IMG_WIDTH, 3))
        model.summary()
培训后,您可以使用可视化结果,并选择适合您的数据的最佳体系结构

这可能需要更多的培训时间,因此请考虑在培训过程中保存模型

我希望这对你有帮助