Paddle 提供详细的模型结构打印信息

yb3bgrhw  于 4个月前  发布在  其他
关注(0)|答案(7)|浏览(56)

需求描述 Feature Description

我用summary打印了resnet152的架构信息,结果还是无法获知足够信息如下图:

蓝底字体并没给出更加详细的激活函数信息(准确说就给了一个激活函数),我不知道在哪些地方还应用了激活函数(我知道原版resnet152在哪里应用了,但我想让这个结构信息中也包含全部信息)。(summary只会对类(比如nn.ReLU()进行显示,至于F.relu就不会显示)
另外我还尝试了print(resnet)、list(resnet.children())都无法满足我想要的功能。

因为有时候我只需要这个模型的一部分,如果用list(model.children())进行提取部分层的话,由于无法提取F.relu这样的api,那么我的提取就毫无意义,我该怎么做才能提取指定部分的所有内容呢?因为你们有个教程网址如下: https://aistudio.baidu.com/aistudio/projectdetail/3895680
在这个教程中你们也是提取了resnet模型的一部分,提取代码如下
local_features_mod = list(resnet.children())[:8],但用的是list(model.children())提取,这种方式会忽略函数式api(比如F.***类型的格式api),就会造成残缺。

替代实现 Alternatives

建议:
更改summary的显示机制,让它也显示F.***中的函数类型api。
或者还有其他什么方法可以更加完整的显示整个模型的流程方法麻烦提供下谢谢大佬。

ttvkxqim

ttvkxqim1#

因为有时候我只需要这个模型的一部分,如果用list(model.children())进行提取部分层的话,由于无法提取F.relu这样的api,那么我的提取就毫无意义,我该怎么做才能提取指定部分的所有内容呢?因为你们有个教程网址如下: https://aistudio.baidu.com/aistudio/projectdetail/3895680
在这个教程中你们也是提取了resnet模型的一部分,提取代码如下
local_features_mod = list(resnet.children())[:8],但用的是list(model.children())提取,这种方式会忽略函数式api(比如F.***类型的格式api),就会造成残缺。

vtwuwzda

vtwuwzda2#

而且教程中目的很明确就是要resnet前面完整的指定层分离出来从而自己进行后续操作,但这样明显不对。函数式的层就提取不出来。
而且我之前也有这种需求,只是后来给忘了,今天又遇到了,我赶紧来issue一下。

xuo3flqw

xuo3flqw4#

不是大佬,我只是想把一个模型的一部分比如前一半的计算取出来,方便我后续自己更改他的后半段。但是list(resnet.children())它只能取出类计算步骤(比如nn.Conv2D),而不能取出函数计算步骤(比如F.relu())。
这个思想在我发的你们那个教程中被强行使用了。

gpnt7bae

gpnt7bae5#

不是大佬,我只是想把一个模型的一部分比如前一半的计算取出来,方便我后续自己更改他的后半段。但是list(resnet.children())它只能取出类计算步骤(比如nn.Conv2D),而不能取出函数计算步骤(比如F.relu())。
这个思想在我发的你们那个教程中被强行使用了。虽然被使用了在你们教程,但这种操作不对……

ttcibm8c

ttcibm8c6#

感谢反馈,可以自己组网后,加载对应部分的参数绕过这个问题。

cig3rfwq

cig3rfwq7#

没救了?
就没别的方法可以查看模型的函数步骤(比如F.softmax(*))?或者能取出完整模型部分的方法也行啊,大佬,要不再想想,我等你奥

相关问题