Давайте начнем с создания базовой глубокой нейронной сети в MXNet Gluon (вдохновленной этим руководством ):
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)
Однако, вместо того, чтобы распечатать его, что если мы хотим программно проверить padding
из net[1]
?
- Когда я пытаюсь
net[1].padding
, я получаю ошибку AttributeError: 'MaxPool2D' object has no attribute 'padding'
. - Когда я пытаюсь
net[1]['padding']
, я получаю ошибку TypeError: 'MaxPool2D' object is not subscriptable
.
Итак, как правильно получить программный доступ к измерениям слоя нейронной сети в MXNet Gluon?