tensorflow - 合并 Keras 模型:Keras 可以自动忽略名称或重新标记它们吗?
问题描述
我正在尝试在 Keras 中合并两个顺序模型。代码如下,取自这个答案:
sequential_1 = [keras.layers.Dense(200, input_shape = (784,),activation=tf.nn.relu),
keras.layers.Dense(50, activation=tf.nn.relu)]
model_1 = keras.Sequential(sequential_1)
sequential_2 = [keras.layers.Dense(784, input_shape = (784,), activation=tf.nn.relu),
keras.layers.Dense(300, activation=tf.nn.relu)]
model_2 = keras.Sequential(sequential_1)
collective = Concatenate()([model_1.output, model_2.output])
logits = keras.layers.Dense(10, tf.nn.softmax)(collective)
combined = Model(inputs = [model_1.input, model_2.input], outputs = [logits])
但是,我收到此错误:
The name "dense_4_input" is used 2 times in the model. All layer names should be unique.
这可能是因为如果我不提供名称,keras 会自动命名图层。但是,由于各种原因,我不想在合并两个模型之前必须不断地命名我的所有层。
有没有一种方法可以合并这些模型而不会出现不涉及手动提供图层名称的错误?有没有办法让 keras 自动为我重命名所有图层名称?
更新:即使我手动重新标记所有图层以具有不同的名称,我似乎仍然会收到此错误。我究竟做错了什么?
解决方案
你应该充分使用Functional API,而不是混合使用Sequential API和Functional API,那么你就不会有这个问题了。使用功能 API 也可以更轻松地进行模型管理和构建。
推荐阅读
- python - 无论我们使用什么程序语言,如何找到句子元素类型?
- reactjs - 在材质 ui 中加载自定义字体 Open Sans 及其变体(粗体、半粗体)
- jquery - Kendo JQuery Grid dataBound 事件未触发
- json - 使用几个变量插值从 bash 管道写入 json
- r - 如何将向量分类到R中的bin中?
- javascript - MQTT.js subscribe() 函数的回调未捕获错误消息
- filter - 在 AttributeInspector (SmartEditor Widget) 的下拉列表中过滤值
- dafny - Dafny 处理位向量
- python - jinja2 可以替换属性文件中的值吗?
- python - 从字典列表中创建具有特定值的列表(作为字符串的键和值是整数列表)