使用Pytorch和Matplotlib可视化卷积神经网络的特征( 二 )

提取CNN层conv_layers = []model_weights = []model_children = list(models.resnet50().children())counter = 0for i in range(len(model_children)):if type(model_children[i]) == nn.Conv2d:counter += 1model_weights.Append(model_children[i].weight)conv_layers.append(model_children[i])elif type(model_children[i]) == nn.Sequential:for j in range(len(model_children[i])):for child in model_children[i][j].children():if type(child) == nn.Conv2d:counter += 1model_weights.append(child.weight)conv_layers.append(child)1. 首先,在第4行,我们初始化一个计数器变量,以跟踪卷积层的数量 。
1. 从第6行开始,我们将遍历ResNet-50模型的所有层 。
1. 具体来说,我们在三层嵌套中检查卷积层
1. 第7行,检查模型的直接子层中是否有卷积层 。
1. 然后从第10行开始,我们检查序列块中的瓶颈层是否包含任何卷积层 。
1. 如果上述两个条件中有一个满足,那么我们将该子节点和权值分别附加到conv


推荐阅读