【发布时间】:2019-08-09 20:55:37
【问题描述】:
我目前有一个使用包含 ResNet50 的功能性 API 的架构,但是在构建我的带有附加层的模型时,它将 ResNet 视为模型层,而不是一系列层。有没有什么方法可以把这个模型层变成一系列层,而不使用 Sequential API?我本质上想把模型中的这个模型变成一个模型。 (不是简单地打印出层或任何东西)这是模型架构,显示带有 resnet50“层”的当前模型。
Layer (type) Output Shape Param # Connected to
==================================================================================================
main_input (InputLayer) (None, 224, 224, 3) 0
__________________________________________________________________________________________________
aux_input (InputLayer) (None, 224, 224, 1) 0
__________________________________________________________________________________________________
lambda_4 (Lambda) (None, 224, 224, 3) 0 main_input[0][0]
aux_input[0][0]
__________________________________________________________________________________________________
resnet50 (Model) (None, 2) 23591810 lambda_4[0][0]
==================================================================================================
【问题讨论】:
-
您为什么要这样做? Resnet 不仅仅是一系列层。
-
好问题。我一直在尝试使用中间层输出的损失函数,并且开始怀疑模型的“嵌套”风格可能是我遇到的问题的罪魁祸首。基本上,我尝试使用
mymodel.layers[-1].layers[-6].output从模型中的 resnet 访问层,但失败了,我希望通过没有嵌套样式的模型层,例如mymodel.layers[-6].output它会运行。是的,resnet 的复杂性是我避免使用顺序方法的原因。
标签: python tensorflow keras