简体   繁体   English

在 Keras 中使用 model.predict 时出现尺寸错误

[英]Dimension error when using model.predict in Keras

My train set has 10 columns including a target column that I'm trying to predict, while my test set ( dataframe_test ) has 9 columns.我的训练集有 10 列,包括我要预测的目标列,而我的测试集 ( dataframe_test ) 有 9 列。 When I run the code I receive this error:当我运行代码时,我收到此错误:

Input 0 of layer "Hidden1" is incompatible with the layer: expected axis -1 of input shape to have value 10, but received input with shape (None, 9)

Call arguments received:
  • inputs=tf.Tensor(shape=(None, 9), dtype=float64)
  • training=False
  • mask=None**

My model looks like this:我的 model 看起来像这样:

model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Dense(units=10,
                                activation='relu',
                                kernel_regularizer=tf.keras.regularizers.l2(l=0.01),
                                name='Hidden1'))
model.add(tf.keras.layers.Dense(units=6,
                                activation='relu',
                                kernel_regularizer=tf.keras.regularizers.l2(l=0.01),
                                name='Hidden2'))

model.add(tf.keras.layers.Dense(units=1,
                                name='Output'))
my_learning_rate = 0.3    
model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=my_learning_rate),
              loss="categorical_crossentropy",
              metrics='accuracy')

epochs = 10
batch_size = 32
history = model.fit(train, y_train, epochs = epochs, batch_size = batch_size)
epochs = history.epoch
print(epochs)
score = model.predict(dataframe_test)

Try using sigmoid尝试使用 sigmoid

  input_size=len(X.columns)
  model.add(Dense(10,activation='sigmoid', input_shape=(input_size,)))
  model.add(Dense(10,activation='relu'))
  model.add(Dense(10,activation='relu'))
  model.add(Dense(1))

You must to split your train set in a 9 columns input matrix x_train = train[:, :10] and a single column training target matrix y_train = train[:, 10].reshape((-1, 1)) .您必须将训练集拆分为 9 列输入矩阵x_train = train[:, :10]和单列训练目标矩阵y_train = train[:, 10].reshape((-1, 1))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM