(我正在使用Tensorflow 1.8.0 ......)
documentation from Keras on how to save a model提到保存顺序模型与从功能API创建的模型之间没有区别 . 但是,以下所有代码块都会失败:
import tensorflow as tf
net = tf.keras.models.Model()
net.save('file')
要么
import tensorflow as tf
net = tf.keras.models.Model()
print(net.to_json())
要么
import tensorflow as tf
net = tf.keras.models.Model()
print(net.to_yaml())
要么
import tensorflow as tf
net = tf.keras.models.Model()
print(net.get_config())
他们举起了一个 NotImplementedError
. 在Keras模块中,相关的线路是
if not self._is_graph_network:
raise NotImplementedError
它显示在 .save
和 get_config
(后者也被 to_json
和 to_yaml
调用 .
唯一可行的是以下内容
import tensorflow as tf
net = tf.keras.models.Model()
net.save_weights('file')
在这种情况下,权重成功保存,可以使用 net.load_weights
成功加载 .
但是,将上述代码块的第二行 net = tf.keras.models.Model()
替换为 net = tf.keras.models.Sequential()
,使net成为顺序模型,允许上述所有内容工作 .
是否真的不可能保存使用功能API制作的Keras模型的结构(使用 Model
而不是 Sequential
)?现在,我们只能减肥吗?
1 回答
当然可以保存模型,你的所有例子都有一个空模型,没有任何意义可以保存 . Keras的作者根本没有实现这种情况 .
如果您使用非空模型进行测试,您将看到保存工作完美 . 我们每天都在使用它 .