Python Keras ValueError:没有要保存的变量

Python Keras ValueError:没有要保存的变量,python,tensorflow,machine-learning,keras,Python,Tensorflow,Machine Learning,Keras,我制作了一个Keras模型,但是错误:“ValueError:没有要保存的变量”不断出现,我不知道这意味着什么,也不知道是什么导致了问题 我试图改变存储Keras模型的方式,但似乎这不是问题所在 下面的代码是构建Keras模型后的部分 tensorboard_callback = TensorBoard(log_dir = log_path, write_graph = True, embeddings_freq = 'batch') es_min_valLoss = EarlyStopping

我制作了一个Keras模型,但是错误:“ValueError:没有要保存的变量”不断出现,我不知道这意味着什么,也不知道是什么导致了问题

我试图改变存储Keras模型的方式,但似乎这不是问题所在

下面的代码是构建Keras模型后的部分

tensorboard_callback = TensorBoard(log_dir = log_path, write_graph = True, embeddings_freq = 'batch')
es_min_valLoss = EarlyStopping(monitor = 'val_loss', patience = 15, mode = 'min')

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
train_history=model.fit(x = trainData, y = trainLabels, validation_split = validation_split, 
                        epochs = epochs, batch_size = batch_size, verbose = 2, 
                        callbacks=[tensorboard_callback, es_min_valLoss])
错误消息如下所示:

Traceback (most recent call last):

  File "<ipython-input-27-9694f30344b3>", line 9, in <module>
    callbacks=[tensorboard_callback, es_min_valLoss])

  File "D:\Anaconda3\envs\tensorflow-gpu\lib\site-packages\keras\models.py", line 1002, in fit
    validation_steps=validation_steps)

  File "D:\Anaconda3\envs\tensorflow-gpu\lib\site-packages\keras\engine\training.py", line 1705, in fit
    validation_steps=validation_steps)

  File "D:\Anaconda3\envs\tensorflow-gpu\lib\site-packages\keras\engine\training.py", line 1155, in _fit_loop
    callbacks.set_model(callback_model)

  File "D:\Anaconda3\envs\tensorflow-gpu\lib\site-packages\keras\callbacks.py", line 52, in set_model
    callback.set_model(model)

  File "D:\Anaconda3\envs\tensorflow-gpu\lib\site-packages\keras\callbacks.py", line 802, in set_model
    self.saver = tf.train.Saver(list(embeddings.values()))

  File "D:\Anaconda3\envs\tensorflow-gpu\lib\site-packages\tensorflow\python\training\saver.py", line 832, in __init__
    self.build()

  File "D:\Anaconda3\envs\tensorflow-gpu\lib\site-packages\tensorflow\python\training\saver.py", line 844, in build
    self._build(self._filename, build_save=True, build_restore=True)

  File "D:\Anaconda3\envs\tensorflow-gpu\lib\site-packages\tensorflow\python\training\saver.py", line 869, in _build
    raise ValueError("No variables to save")

ValueError: No variables to save
回溯(最近一次呼叫最后一次):
文件“”,第9行,在
回调=[tensorboard\u callback,es\u min\u valLoss])
文件“D:\Anaconda3\envs\tensorflow gpu\lib\site packages\keras\models.py”,第1002行
验证步骤=验证步骤)
文件“D:\Anaconda3\envs\tensorflow gpu\lib\site packages\keras\engine\training.py”,第1705行,格式为fit
验证步骤=验证步骤)
文件“D:\Anaconda3\envs\tensorflow gpu\lib\site packages\keras\engine\training.py”,第1155行,在\u fit\u循环中
callbacks.set\u模型(callback\u模型)
文件“D:\Anaconda3\envs\tensorflow gpu\lib\site packages\keras\callbacks.py”,第52行,在set\U模型中
callback.set_model(model)
文件“D:\Anaconda3\envs\tensorflow gpu\lib\site packages\keras\callbacks.py”,第802行,在set\U模型中
self.saver=tf.train.saver(列表(embeddings.values()))
文件“D:\Anaconda3\envs\tensorflow gpu\lib\site packages\tensorflow\python\training\saver.py”,第832行,在uu init中__
self.build()
文件“D:\Anaconda3\envs\tensorflow gpu\lib\site packages\tensorflow\python\training\saver.py”,第844行,内部版本
self.\u build(self.\u文件名,build\u save=True,build\u restore=True)
文件“D:\Anaconda3\envs\tensorflow gpu\lib\site packages\tensorflow\python\training\saver.py”,第869行,在\ u build中
raise VALUERROR(“无需保存的变量”)
ValueError:没有要保存的变量

什么是嵌入数据?您必须将
embeddings\u data
传递给TensorBoard回调。如果不使用嵌入,请删除参数
embeddings\u freq


Keras文档很棒,您可以阅读更多关于TensorBoard回调的信息

欢迎使用;请注意,此处发布的代码应该是最小的,因此错误之后出现的代码(因此从未执行,与问题无关)不应包括在内(编辑和删除)。