我正在MNIST数据集上训练一个简单的CNN。这是一个教程(https://machinelearningmastery.com/how-to-develop-a-convolutional-neural-network-from-scratch-for-mnist-handwritten-digit-classification/)。
def define_model():
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', kernel_initializer='he_uniform', input_shape=(28, 28, 1)))
model.add(MaxPooling2D((2, 2)))
model.add(Flatten())
model.add(Dense(100, activation='relu', kernel_initializer='he_uniform'))
model.add(Dense(10, activation='softmax'))
# compile model
opt = SGD(lr=0.01, momentum=0.9)
model.compile(optimizer=opt, loss='categorical_crossentropy', metrics=['accuracy'])
return model
我实际上希望能够逐步完成培训过程。因此,从数据集中的示例开始:
我想看看32个初始化的内核以及卷积的结果输出。然后也许当模型开始收敛时,我想在一系列迭代中再次看到这些东西。然后,我希望能够看到MaxPooling,Flatten和Dense层的输出。
因此,我的问题不是围绕如何可视化事物(为此我将使用print
和pypolot.imshow
),而是更多关于如何编写代码以便可以研究所有内容的问题。这些东西我想去哪里。