ValueError:“顺序”层的输入 0 与该层不兼容

问题描述 投票:0回答:1

我有一个聊天机器人模型,我使用数据集对其进行了训练,以提供“标准”对话,例如“你好”、“你好吗”之类的。现在我想用一个数据集“扩展”现有模型,该数据集提供与运输、库存等相关问题的答案。

这是我的工作/已经训练好的模型:

# create Sequential model
    model = Sequential()

    # add first layer with input shape dependent on size of input and "relu" activation function
    model.add(Dense(256, input_shape=(len(training_data_x[0]),), activation=activations.relu))

    # add Dropout to prevent overfitting
    model.add(Dropout(0.6))
    # additional layer with 64 neurons
    model.add(Dense(128, activation=activations.relu))
    model.add(Dropout(0.2))
    # Additional dense layer with num of neurons of classes & softmax activation function
    # -> adds results in output layer to "1" to get %
    model.add(Dense(len(training_data_y[0]), activation=activations.softmax))
    # print(len(training_data_y[0])) = 71
    sgd = SGD(learning_rate=0.01, decay=1e-6, momentum=0.9, nesterov=True)
    # compile the model
    model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])

    output = model.fit(np.array(training_data_x), np.array(training_data_y), epochs=200, batch_size=5, verbose=1)
    plot_model_output(output)
    model.summary()
    model.save('./MyModel_tf', save_format='tf')

训练数据在单独的类中准备,并以某个 json 文件作为输入。

现在我只是将 JSON 文件替换为包含与我想要添加到模型中的内容相关的数据的文件,并尝试像这样拟合它:

json_data = json.loads(open('data.json').read())

model = load_model('MyModel_tf')

model.fit(np.array(training_data_x), np.array(training_data_y), epochs=200, batch_size=5, verbose=1)

但是,当我运行它时,我收到此错误:

ValueError: Input 0 of layer "sequential" is incompatible with the layer: expected shape=(None, 652), found shape=(None, 71)

我假设数据是问题所在..但是它的结构完全相同,只是更短。

我的问题:

  1. 我尝试实现它的方式有意义吗?
  2. 我应该尝试以不同的方式添加附加数据吗?
  3. 第二个数据集的长度必须与第一个数据集的长度相同吗?
python tensorflow machine-learning keras neural-network
1个回答
1
投票

问题可能出在这一行

model.add(Dense(256, input_shape=(len(training_data_x[0]),), activation=activations.relu))

您可以根据

training_data_x
特征维度的大小定义模型的输入形状。现在您已经定义了这个非常具体的输入形状,输入模型的所有数据必须具有相同的特征维度大小。这就是你错误的原因。

© www.soinside.com 2019 - 2024. All rights reserved.