MXNet Gluon - 以编程方式访问神经网络层维度?

MXNet Gluon - programmatically accessing neural net layer dimensions?

让我们首先在 MXNet Gluon 中创建一个非常基本的深度神经网络(灵感来自 this tutorial):

import mxnet as mx
from mxnet import gluon

ctx = mx.cpu()

net = gluon.nn.Sequential()
with net.name_scope():
    net.add(gluon.nn.Conv2D(channels=20, kernel_size=5, activation='relu'))
    net.add(gluon.nn.MaxPool2D(pool_size=2, strides=2))

现在,如果我们想打印出图层的尺寸,我们所要做的就是...

print(net[0])
  # prints: Conv2D(None -> 20, kernel_size=(5, 5), stride=(1, 1), Activation(relu))

print(net[1])
  # prints: MaxPool2D(size=(2, 2), stride=(2, 2), padding=(0, 0), ceil_mode=False)

但是,如果我们想以编程方式检查net[1]padding,而不是将其打印出来怎么办?

那么,在 MXNet Gluon 中以编程方式访问神经网络层维度的正确方法是什么?

print(net[1]._kwargs["pad"])

尝试从 kwargs 字典中获取它们。在 this source.

寻找其他键

This 是代码的 Colab link。

其他键是 kernel 用于内核大小,stride 用于步幅,.

获取所有键和值:

for k, v in net[1]._kwargs.items():
    print(k, v)