python - 输入层的形状

标签 python machine-learning neural-network keras

我无法弄清楚我应该在 Keras 模型中输入什么作为输入层的形状。该模型在 1080 个向量和 12288 个样本上进行训练。

我有以下输入形状:

X_train shape: (12288, 1080)
Y_train shape: (6, 1080)
X_test shape: (12288, 120)
Y_test shape: (6, 120)
layers_dims =[12288,64,64,64,6]

并且有神经网络:

def net_model(X_train, Y_train, X_test, Y_test, batch_size=32):
   model.add(keras.layers.InputLayer(input_shape=(layers_dims[0],)))
   for l in range(1,len(layers_dims)-2):
      model.add(keras.layers.Dense(layers_dims[l],activation=activation))
      if dropout:
          model.add(dropout(keep_prob[l]))
    model.add(keras.layers.Dense(layers_dims[-1],activation=keras.activations.softmax))
    model.compile(loss=keras.losses.categorical_crossentropy,optimizer=optimizer, metrics=[keras.metrics.categorical_accuracy])
    model.fit(X_train,Y_train,batch_size=batch_size, epochs=epochs)
    result_train = model.evaluate(X_train,Y_train)
    result_test = model.evaluate(X_test,Y_test)
    return result_train,result_test

result_train,result_test = net_model(X_train,Y_train,X_test,Y_test)

我收到此错误:

ValueError: Error when checking input: expected input_10 to have shape (12288,) but got array with shape (1080,)

再次查看文档后,我尝试使用 (1080,) 作为输入形状,但这也不起作用。

ValueError: Error when checking target: expected dense_12 to have shape (6,) but got array with shape (1080,)

我错过了什么?

最佳答案

训练数据和标签的形状应分别为(num_samples,num_features)(num_samples, num_labels)。因此,X 的形状应为 (1080, 12288),而不是 (12288, 1080)。要解决此问题,请首先转置数组:

import numpy as np

X_train = np.transpose(X_train)
Y_train = np.transpose(Y_train)
X_test = np.transpose(X_test)
Y_test = np.transpose(Y_test)

输入层的输入形状应为(num_features,)(即(12288,))。

关于python - 输入层的形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52024917/

相关文章:

python - 实现 NEAT python 以在每次预测后重新训练

machine-learning - 在 TensorFlow 中存储摘要编写器的多次运行的建议做法是什么?

python - 应用引擎 : Calculating the dimensions of thumbnails to be generated by serving thumbnails from the blobstore

python - U-SQL Python 扩展 DataFrame 列格式

python - 如何制作一个使用运算符作为输入的计算器功能?

machine-learning - 如何使用歌词来解释 Word Embeddings/Word2Vec 生成的拼写变化(尤其是俚语)?

python - "invalid literal for int() with base 10:"这实际上是什么意思?

python - 如何在 Wavenet 的 Keras 实现中准备输入以进行时间序列预测

machine-learning - 如何在 sklearn 中使用 SelectFromModel 查找类的积极信息特征

machine-learning - Tensorflow:训练批处理中的所有项目都具有相同的预测标签