python - 修改 Keras 模型最有效的方法是什么?
问题描述
有没有办法将节点添加到现有 Keras 模型中的层?如果是这样,最有效的方法是什么?
另外,是否可以做同样的事情,但有层?即向现有的 Keras 模型添加一个新层(例如,在输入层之后)。
我知道的一种方法是通过迭代和克隆模型的每一层来使用 Keras 功能 API,以便创建具有所需更改的原始模型的“副本”,但这是完成此任务的最有效方法吗?
解决方案
您可以获取模型中层的输出并从它开始构建另一个模型:
import tensorflow as tf
# One simple model
inputs = tf.keras.Input(shape=(3,))
x = tf.keras.layers.Dense(4, activation='relu')(inputs)
outputs = tf.keras.layers.Dense(5, activation='softmax')(x)
model = tf.keras.Model(inputs=inputs, outputs=outputs)
# Make a second model starting from layer in previous model
x2 = tf.keras.layers.Dense(8, activation='relu')(model.layers[1].output)
outputs2 = tf.keras.layers.Dense(7, activation='softmax')(x2)
model2 = tf.keras.Model(inputs=model.input, outputs=outputs2)
请注意,在这种情况下model
,model2
共享相同的输入层和第一个密集层对象(model.layers[0] is model2.layers[0]
和model.layers[1] is model2.layers[1]
)。
推荐阅读
- java - 我有这个错误: The APR based Apache Tomcat Native library
- c# - ScrollBar 在 ScrollViewer 中不可见
- javascript - laravel 中的 Ajax 发布返回错误 500(内部服务器错误)
- python - 监控 Google Drive v3 中的可恢复文件上传
- ibm-cloud-private - 升级 IBM ICP 2.1.0.3 分蘖升级
- bitcoin - 如何在 medtls 库中使用 ECDSA 函数
- javascript - 遍历嵌套字典以显示多个表
- android - 如何在键字符映射文件中包含键布局
- javascript - 隐藏/显示元素和所有子元素中的非首字母 - jquery
- c - 你如何在 C 中做 1/2 的幂?