Python Keras和Tensorflow:保存非序列模型权重

Python Keras和Tensorflow:保存非序列模型权重,python,tensorflow,keras,python-3.6,Python,Tensorflow,Keras,Python 3.6,(我正在使用Tensorflow 1.8.0…) 本文没有提到保存序列模型与从函数API创建的模型之间的区别。但是,以下所有代码块都失败: import tensorflow as tf net = tf.keras.models.Model() net.save('file') 或 或 或 它们会引发一个未实现错误。在Keras模块中,相关行为 if not self._is_graph_network: raise NotImplementedError 它显示在.save和get\

(我正在使用Tensorflow 1.8.0…)

本文没有提到保存序列模型与从函数API创建的模型之间的区别。但是,以下所有代码块都失败:

import tensorflow as tf
net = tf.keras.models.Model()
net.save('file')

它们会引发一个
未实现错误
。在Keras模块中,相关行为

if not self._is_graph_network:
  raise NotImplementedError
它显示在
.save
get\u config
中(后者也被
调用为\u json
调用为\u yaml

唯一起作用的是以下几点

import tensorflow as tf
net = tf.keras.models.Model()
net.save_weights('file')
在这种情况下,重量已成功保存,并可通过
net.load\u weights
成功加载

但是,将上述代码块的第二行,
net=tf.keras.models.Model()
,替换为
net=tf.keras.models.Sequential()
,使net成为一个顺序模型,可以让上面的一切正常工作


是否真的不可能保存使用功能API制作的Keras模型的结构(使用
模型
而不是
顺序
)?现在,我们只能保存权重吗?

当然可以保存模型,您所有的示例都有一个空模型,保存没有意义。Keras的作者根本没有实现这种情况


如果您使用非空模型进行测试,您将看到保存工作非常完美。我们每天都使用它。

您是否考虑过您的所有模型都是空的,这就是为什么保存失败的原因?实际上我没有,这很讽刺,因为我刚刚回答了一个关于该主题的问题。我将使用一些变量进行尝试并进行更新。谢谢!您不必尝试,我们知道保存一个模型是有效的,我每天都这样做,你声称这个模型没有以某种方式实现是荒谬的。Keras提出的
NotImplementedError
不是荒谬的,而是可重复和可验证的。老实说,这是一个误导性错误。但那只是因为模型是空的,没有什么可保存的。你知道吗直接问是否可以保存模型。我也有同样的问题。对于普通模型。我可以拟合此模型并对其进行评估,但无法保存:(@redyed)他们提出了一个新问题,仅仅说我也有此问题并不是真的有用。细节很重要。
import tensorflow as tf
net = tf.keras.models.Model()
print(net.get_config())
if not self._is_graph_network:
  raise NotImplementedError
import tensorflow as tf
net = tf.keras.models.Model()
net.save_weights('file')