【问题标题】:Keras Error on Convolutional Layer and Input Data卷积层和输入数据上的 Keras 错误
【发布时间】:2016-11-20 14:51:25
【问题描述】:

我过滤了来自 CIFAR-100 的训练和测试数据,我只选择水果和蔬菜超类。现在,我有 2,500 个训练数据和 500 个测试数据。但是,我得到一个错误,说卷积层的维度输入错误。

我的数组数据形式:

希望有人能帮我解决这个问题,谢谢。

【问题讨论】:

标签: python machine-learning tensorflow deep-learning keras


【解决方案1】:

您的输入数据应该具有形状 (2500, 3, 32, 32),似乎您在预处理步骤中丢失了两个维度,要么修复这些维度,要么将数据重塑为:

inputData = inputData.reshape((2500, 3, 32, 32)).

一般来说,卷积层的输入是 (numSamples, numChannels, width, height)。请注意,当使用 tensorflow 后端时,通道数维度在末尾。

【讨论】:

  • 谢谢,@Matias。你的意思是我应该先做X_train.reshape((3, 32, 32))y_train.reshape((3, 32, 32))X_test.reshape((3, 32, 32))y_test.reshape((3, 32, 32)),然后再运行model.fit(...)
  • 不,只是重塑 X,而不是 y,我给了你确切的命令。
  • 是的,请注意,如果您使用 tensorflow,形状会发生变化。
  • 我添加了:X_train = X_train.reshape((2500, 32, 32, 3))X_test = X_test.reshape((500, 32, 32, 3)) 但是,我收到了这样的错误:pastebin.com/EQj4t2ca。但是,使用X_train = X_train.reshape((2500, 3, 32, 32))X_test = X_test.reshape((500, 3, 32, 32)),它可以工作。不知道为什么,我用的是TensorFlow后端。
  • 这取决于您在 ~/.keras/keras.json 中定义的 dim_ordering。顺便说一句,我会请你看看你是如何阅读你的数据的。我强烈建议您不要不必要地重塑您的数据,或者至少查看您输入网络的图像以确保它们是正确的。我使用笔记本来完成这些任务。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-13
  • 2021-05-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多