python - 使用 tflearn、tensorflow、numpy 的 Python 聊天机器人出现错误

标签 python python-3.x numpy tensorflow tflearn

Python 库是 - tflearn、tensorflow、numpy

我需要一些帮助来修复我的错误,如果你能帮助我,请阅读代码和错误,我被困住了。

错误如下,这是我的代码 -

import nltk
from nltk.stem.lancaster import LancasterStemmer
stemmer = LancasterStemmer()
import numpy
import tflearn
import tensorflow
import random
import json
import pickle

with open("intents.json") as file:
    data = json.load(file)

try:
    with open("data.pickle", "rb") as f:
        words, labels, training, output = pickle.load(f)
except:
    words = []
    labels = []
    docs_x = []
    docs_y = []

    for intent in data["intents"]:
        for pattern in intent["patterns"]:
            wrds = nltk.word_tokenize(pattern)
            words.extend(wrds)
            docs_x.append(wrds)
            docs_y.append(intent["tag"])

        if intent["tag"] not in labels:
            labels.append(intent["tag"])

    words = [stemmer.stem(w.lower()) for w in words if w != "?"]
    words = sorted(list(set(words)))

    labels = sorted(labels)

    training = []
    output = []

    out_empty = [0 for _ in range(len(labels))]

    for x, doc in enumerate(docs_x):
        bag = []

        wrds = [stemmer.stem(w.lower()) for w in doc]

        for w in words:
            if w in wrds:
                bag.append(1)
            else:
                bag.append(0)

        output_row = out_empty[:]
        output_row[labels.index(docs_y[x])] = 1

        training.append(bag)
        output.append(output_row)


    training = numpy.array(training)
    output = numpy.array(output)

    with open("data.pickle", "wb") as f:
        pickle.dump((words, labels, training, output), f)

tensorflow.reset_default_graph()

net = tflearn.input_data(shape=[None, len(training[0])])
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, len(output[0]), activation="softmax")
net = tflearn.regression(net)

model = tflearn.DNN(net)

try:
    model.load("model.tflearn")
except:
    model.fit(training, output, n_epoch=1000, batch_size=8, show_metric=True)
    model.save("model.tflearn")





def bag_of_words(s, words):
    bag = [0 for _ in range(len(words))]

    s_words = nltk.word_tokenize(s)
    s_words = [stemmer.stem(word.lower()) for word in s_words]

    for se in s_words:
        for i, w in enumerate(words):
            if w == se:
                bag[i] = 1

    return numpy.array(bag)


def chat():
    print("Start talking with the bot (type quit to stop)!")
    while True:
        inp = input("You: ")
        if inp.lower() == "quit":
            break

        results = model.predict([bag_of_words(inp, words)])
        results_index = numpy.argmax(results)
        tag = labels[results_index]

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

        print(random.choice(responses))

chat()

这些是我的错误:

C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\framework\dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint8 = np.dtype([("qint8", np.int8, 1)]) C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\framework\dtypes.py:517: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint8 = np.dtype([("quint8", np.uint8, 1)]) C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\framework\dtypes.py:518: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint16 = np.dtype([("qint16", np.int16, 1)]) C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\framework\dtypes.py:519: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint16 = np.dtype([("quint16", np.uint16, 1)]) C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\framework\dtypes.py:520: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint32 = np.dtype([("qint32", np.int32, 1)]) C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\framework\dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. np_resource = np.dtype([("resource", np.ubyte, 1)]) C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py:541: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint8 = np.dtype([("qint8", np.int8, 1)]) C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py:542: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint8 = np.dtype([("quint8", np.uint8, 1)]) C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py:543: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint16 = np.dtype([("qint16", np.int16, 1)]) C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py:544: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_quint16 = np.dtype([("quint16", np.uint16, 1)]) C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py:545: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. _np_qint32 = np.dtype([("qint32", np.int32, 1)]) C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorboard\compat\tensorflow_stub\dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'. np_resource = np.dtype([("resource", np.ubyte, 1)]) curses is not supported on this machine (please install/reinstall curses for an optimal experience) WARNING: Logging before flag parsing goes to stderr. W0805 19:32:44.580796 8632 deprecation_wrapper.py:119] From C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tflearn\helpers\summarizer.py:9: The name tf.summary.merge is deprecated. Please use tf.compat.v1.summary.merge instead.

W0805 19:32:44.581794  8632 deprecation_wrapper.py:119] From C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tflearn\helpers\trainer.py:25:

The name tf.summary.FileWriter is deprecated. Please use tf.compat.v1.summary.FileWriter instead.

W0805 19:32:44.596753  8632 deprecation_wrapper.py:119] From C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tflearn\collections.py:13:

The name tf.GraphKeys is deprecated. Please use tf.compat.v1.GraphKeys instead.

W0805 19:32:44.604754  8632 deprecation_wrapper.py:119] From C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tflearn\config.py:123:

The name tf.get_collection is deprecated. Please use tf.compat.v1.get_collection instead.

W0805 19:32:44.612710  8632 deprecation_wrapper.py:119] From C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tflearn\config.py:129:

The name tf.add_to_collection is deprecated. Please use tf.compat.v1.add_to_collection instead.

W0805 19:32:44.613707  8632 deprecation_wrapper.py:119] From C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tflearn\config.py:131:

The name tf.assign is deprecated. Please use tf.compat.v1.assign instead.

W0805 19:32:44.617724  8632 deprecation_wrapper.py:119] From c:/Users/iddos.DESKTOP-JTOR36M/Desktop/work/: The name

tf.reset_default_graph is deprecated. Please use tf.compat.v1.reset_default_graph instead.

W0805 19:32:44.619718  8632 ] From C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tflearn\initializations.py:174:

calling TruncatedNormal.init (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version. Instructions for updating: Call initializer instance with the dtype argument instead of passing it to the constructor W0805 19:32:44.666565 8632 deprecation_wrapper.py:119] From C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tflearn\optimizers.py:238: The name tf.train.AdamOptimizer is deprecated. Please use tf.compat.v1.train.AdamOptimizer instead.

W0805 19:32:44.671582  8632 ] From C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tflearn\objectives.py:66:

calling reduce_sum_v1 (from tensorflow.python.ops.math_ops) with keep_dims is deprecated and will be removed in a future version. Instructions for updating: keep_dims is deprecated, use keepdims instead 2019-08-05 19:32:44.696052: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 W0805 19:32:44.740369 8632 deprecation_wrapper.py:119] From C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tflearn\summaries.py:46: The name tf.summary.scalar is deprecated. Please use tf.compat.v1.summary.scalar instead.

W0805 19:32:44.786268  8632 ] From C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\ops\math_grad.py:1250:

add_dispatch_support..wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version. Instructions for updating: Use tf.where in 2.0, which has the same broadcast rule as np.where W0805 19:32:44.936373 8632 deprecation_wrapper.py:119] From C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tflearn\helpers\trainer.py:134: The name tf.train.Saver is deprecated. Please use tf.compat.v1.train.Saver instead.

W0805 19:32:45.144679  8632 ] From C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\training\saver.py:1276:

checkpoint_exists (from .checkpoint_management) is deprecated and will be removed in a future version. Instructions for updating: Use standard file APIs to check for files with this prefix. --------------------------------- Run id: WZ1452 Log directory: /tmp/tflearn_logs/ --------------------------------- Training samples: 26 Validation samples: 0 -- Traceback (most recent call last): File "c:/Users/iddos.DESKTOP-JTOR36M/Desktop/work/", line 78, in model.load("model.tflearn") File "C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tflearn\models\dnn.py", line 308, in load self.trainer.restore(model_file, weights_only, **optargs) File "C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tflearn\helpers\trainer.py", line 490, in restore self.restorer.restore(self.session, model_file) File "C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\training\saver.py", line 1278, in restore _text(save_path)) ValueError: The passed save_path is not a valid checkpoint: C:\Users\iddos.DESKTOP-JTOR36M\Desktop\work\model.tflearn

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:/Users/iddos.DESKTOP-JTOR36M/Desktop/work/", line 80, in <module>
    (training, output, n_epoch=1000, batch_size=8, show_metric=True)
  File "C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tflearn\models\dnn.py",

line 216, in fit callbacks=callbacks) File "C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tflearn\helpers\trainer.py", line 339, in fit show_metric) File "C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tflearn\helpers\trainer.py", line 816, in _train _training(True, session=self.session) File "C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tflearn\config.py", line 95, in is_training tf.get_collection('is_training_ops')[0].eval(session=session) File "C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\framework\ops.py", line 731, in eval return _eval_using_default_session(self, feed_dict, self.graph, session) File "C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\framework\ops.py", line 5579, in _eval_using_default_session return (tensors, feed_dict) File "C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\client\session.py", line 950, in run run_metadata_ptr) File "C:\Users\iddos.DESKTOP-JTOR36M\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\client\session.py", line 1096, in _run raise RuntimeError('Attempted to use a closed Session.') RuntimeError: Attempted to use a closed Session.

最佳答案

您的模型可能无法正确保存。检查您的模型文件是否位于正确的位置 - 它当前正在查找与您的代码运行所在的同一目录。另请尝试将您的模型另存为 model.ckpt

关于python - 使用 tflearn、tensorflow、numpy 的 Python 聊天机器人出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57362727/

相关文章:

python - 如何每隔第 n 个索引将一个字符串插入到 numpy 列表中?

python - 如何在 jupyter 笔记本或 jupyter_lab 中的 plt.show() 之前不显示图表

python - 使用请求检查损坏的链接后,Django 网站加载缓慢

python - 如何打包我的 Python 3 程序以便我可以发布它

python - 如何在 Python 中使用日历类?

python-3.x - 在 Python 3 中创建分层组合?

python - 将字符串数组(类别)从 Pandas 数据帧转换为整数数组

python - 如何使用 `type()` 内置函数传递类关键字参数?

python - 如何从文本中删除所有 href 标签

python - Matplotlib.Pyplot 不显示输出;没有错误