Machine learning 如何选择CNN中的过滤器数量
我正在调整CNN的架构,以提高CIFAR-10数据集的性能 虽然设置大多数超参数或多或少都很简单,但为每个层选择过滤器的数量似乎不明确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中要开始的过滤器数量和以下层的过滤器数量?没有直接的方法来知道要用于模型的过滤器数量。但是,您可以测试一些值,如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()
培训后,您可以使用可视化结果,并选择适合您的数据的最佳体系结构
这可能需要更多的培训时间,因此请考虑在培训过程中保存模型
我希望这对你有帮助