我一直在尝试创建一个聊 bot,但总是遇到以下错误。我是TensorFlow的新手。
Traceback (most recent call last): File "main.py", line 78, in <module> model.load("model.tflearn") File "C:\Users\User\Anaconda3\envs\newbot\lib\site-packages\tflearn\models\dnn.py", line 308, in load self.trainer.restore(model_file, weights_only, **optargs) File "C:\Users\User\Anaconda3\envs\newbot\lib\site-packages\tflearn\helpers\trainer.py", line 490, in restore self.restorer.restore(self.session, model_file) File "C:\Users\User\Anaconda3\envs\newbot\lib\site-packages\tensorflow\python\training\saver.py", line 1278, in restore compat.as_text(save_path))ValueError: The passed save_path is not a valid checkpoint: C:\Users\User\model.tflearnDuring handling of the above exception, another exception occurred:Traceback (most recent call last): File "main.py", line 80, in <module> model.fit(training, output, n_epoch=1000, batch_size=8, show_metric=True) File "C:\Users\User\Anaconda3\envs\newbot\lib\site-packages\tflearn\models\dnn.py", line 216, in fit callbacks=callbacks) File "C:\Users\User\Anaconda3\envs\newbot\lib\site-packages\tflearn\helpers\trainer.py", line 339, in fit show_metric) File "C:\Users\User\Anaconda3\envs\newbot\lib\site-packages\tflearn\helpers\trainer.py", line 816, in _train tflearn.is_training(True, session=self.session) File "C:\Users\User\Anaconda3\envs\newbot\lib\site-packages\tflearn\config.py", line 95, in is_training tf.get_collection('is_training_ops')[0].eval(session=session) File "C:\Users\User\Anaconda3\envs\newbot\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\User\Anaconda3\envs\newbot\lib\site-packages\tensorflow\python\framework\ops.py", line 5579, in _eval_using_default_session return session.run(tensors, feed_dict) File "C:\Users\User\Anaconda3\envs\newbot\lib\site-packages\tensorflow\python\client\session.py", line 950, in run run_metadata_ptr) File "C:\Users\User\Anaconda3\envs\newbot\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.
这是我的TensorFlow代码:
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")
我正在使用:
- Python 3.6.9
- TensorFlow 1.14.0
- TFLearn 0.3.2
提前谢谢你!
回答:
将你的TensorFlow代码更改为:
try: model.load('model.tflearn')except: 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) model.fit(training, output, n_epoch=1000, batch_size=8, show_metric=True) model.save("model.tflearn")
我认为问题发生是因为你在创建和重置模型后又请求加载它,然后框架就迷失了方向。