【发布时间】:2020-08-14 16:15:22
【问题描述】:
我正在尝试训练卷积神经网络。因此,我使用了 646 个图像/车牌的数据集,其中包含 8 个字符(0-9、A-Z;没有字母“O”和空格,总共 36 个可能的字符)。这些是我的训练数据X_train。它们的形状是(646, 40, 200, 3),颜色代码为 3。我将它们调整为相同的形状。
我还有一个数据集,其中包含这些图像的标签,我将其单热编码为形状为 (646, 8, 36) 的 numpy 数组。该数据是我的y_train 数据。
现在,我正在尝试应用如下所示的神经网络: 架构取自这篇论文:https://ieeexplore.ieee.org/abstract/document/8078501
我排除了批量标准化部分,因为这部分对我来说不是最有趣的部分。但我对图层的顶部非常不确定。这意味着最后一个池化层之后的部分以model.add(Flatten())开头...
model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3), input_shape = (40, 200, 3), activation = "relu"))
model.add(Conv2D(32, kernel_size=(3, 3), activation = "relu"))
model.add(Conv2D(32, kernel_size=(3, 3), activation = "relu"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(64, kernel_size=(3, 3), activation = "relu"))
model.add(Conv2D(64, kernel_size=(3, 3), activation = "relu"))
model.add(Conv2D(64, kernel_size=(3, 3), activation = "relu"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(128, kernel_size=(3, 3), activation = "relu"))
model.add(Conv2D(128, kernel_size=(3, 3), activation = "relu"))
model.add(Conv2D(128, kernel_size=(3, 3), activation = "relu"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(16000, activation = "relu"))
model.add(Dense(128, activation = "relu"))
model.add(Dense(36, activation = "relu"))
model.add(Dense(8*36, activation="Softmax"))
model.add(keras.layers.Reshape((8, 36)))
非常感谢您!
【问题讨论】:
标签: python architecture conv-neural-network valueerror