keras张量有简单的重命名吗?我需要它在某些情况下为张量提供更合适的名称。
当我编译具有多个输出或输入的模型时,该模型需要输入或输出张量的名称。例如,下面的模型需要名称“ advc_out_tn”和“ atoz.output”。
advc_out_tn = self.advc_model(atoz.output)
self.advc_atoz_model = Model(input=atoz.input, output=[advc_out_tn, atoz.output])
self.advc_atoz_model.compile(optimizer='adam', loss="binary_crossentropy", loss_weights={"advc_out_tn":1.0, "atoz_out_tn":1.0})
Run Code Online (Sandbox Code Playgroud)
但这给了我错误,因为它们不是真实姓名。
ValueError: Unknown entry in loss_weights dictionary: "atoz_out_tn". Only expected the following keys: ['model_2', 'concat_decoded_img']
Run Code Online (Sandbox Code Playgroud)
但是张量的真实名称有些笨拙。特别是如果我使用给定的模型(在这种情况下为atoz)并通过“ .out”访问其输出张量,则会给出最后一层的名称(“ concat_decoded_img”),而不是模型的名称。
我该如何解决?
遇到类似的问题。对我来说,以下工作为张量类型的输出分配名称。我使用了一个虚拟Lambda层(身份函数)并将新名称分配给该Lambda层(尽管结果不再是张量类型,但对我而言这并不重要)。
from keras.layers import Lambda
naming_layer = Lambda(lambda x: x, name='your_name')
newly_named_output = naming_layer (tensor_output)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1878 次 |
| 最近记录: |