【问题标题】:how do I check that CNN model correctly implemented or not?如何检查 CNN 模型是否正确实现?
【发布时间】:2020-03-15 07:05:29
【问题描述】:

如何确认dropout模型函数参数正确与否?

在这里,我编写了一个 CNN 架构,但我无法确认该架构是否正确实现?我该如何确认。输入图像尺寸为 88x128,取自一篇研究论文 (https://ieeexplore.ieee.org/abstract/document/7550060)。

我正在关注附图中的架构和参数。

架构图和参数表

文字信息呈现在这个图中:

(文本信息的)

import keras
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
import numpy as np
import cv2
import os
from keras.preprocessing.image import ImageDataGenerator, load_img, img_to_array
from keras.layers.normalization import BatchNormalization
batch_size = 4
num_classes = 35
epochs = 40
#178, 256, 1
model = Sequential()

model.add(Conv2D(filters=96, input_shape=(128, 88, 1), kernel_size=(18, 18), strides=1, activation='relu', padding='valid'))
model.add(MaxPooling2D(pool_size=(2, 2), strides=2))
model.add(BatchNormalization())

model.add(Conv2D(filters=96, kernel_size=(45, 45), strides=1, activation='relu', padding='valid'))
model.add(MaxPooling2D(pool_size=(3, 3), strides=2))
model.add(BatchNormalization())
model.add(Flatten())

model.add(Dense(1024))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation='softmax'))

model.summary()

【问题讨论】:

    标签: python image-processing keras deep-learning


    【解决方案1】:

    尝试重现论文的结果。如果结果不同(或相差很大),那么您应该认为您的实现不正确。

    【讨论】:

    • 您可以验证此代码吗?它是否类似于图像文件中的给定架构?
    • 过滤器的数量不是96,应该分别是18、45。此外,kernel_size 应该是 (7,7) 和 (5,5)。辍学概率是推测性的,但它是可能的。根据论文,规范化策略似乎是错误的。我不确定您是否应该使用本地响应规范化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 2018-01-17
    相关资源
    最近更新 更多