簡體   English   中英

ValueError:檢查輸入時出錯:預期dense_input具有形狀(46,)但得到形狀為(1,)的數組

[英]ValueError: Error when checking input: expected dense_input to have shape (46,) but got array with shape (1,)

這不是我的代碼,我只是嘗試更改神經網絡部分,問題從那里開始,我做錯了什么?

training = np.array(training)  # Shape = (46, 26)
output = np.array(output)  # Shape = (26, 6)

model = Sequential()
model.add(Dense(8, input_shape=(46,)))
model.add(Dense(8))
model.add(Dense(units=len(output[0]), activation='softmax'))

model.compile(optimizer='adam',
          loss='categorical_crossentropy',
          metrics=['accuracy'])

model.fit(training, output, batch_size=8, epochs=100)



def get_bag_of_words(sentence, words_list):
    bag_of_words = [0 for _ in range(len(words_list))]

    sentence_words = word_tokenize(sentence)
    sentence_words = [stemmer.stem(word.lower()) for word in sentence_words if word.isalpha()]

    for word_in_sentence in sentence_words:
        for i, word in enumerate(words_list):
            if word == word_in_sentence:
                bag_of_words[i] = 1

    bag_of_words = np.array(bag_of_words)

    return bag_of_words
def chat():
    print("Start talking with the bot (type quit to stop)!")

    while True:
        inp = input("You: ")
        if inp.lower() == 'quit':
            break

        input_data = get_bag_of_words(inp, words_list)   # Shape = (46,)
        results = model.predict(input_data)    ##### Error happens here
        results_index = np.argmax(results)
        tag = labels[results_index]

        for tg in data['intents']:
            if tg['tag'] == tag:
                responses = tg['responses']

        print(random.choice(responses))

ValueError:檢查輸入時出錯:預期dense_input具有形狀(46,)但得到形狀為(1,)的數組

嘗試使其 shape = (1, 46):

input_data = numpy.reshape(input_data, (1, input_data.shape[0]))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM