in utils/gluon/utils/densenet.py [0:0]
def __init__(self, in_channels, out_channels, bn_size=4,
norm_kwargs=None, name_prefix=None):
super(_DenseBlock, self).__init__(prefix=name_prefix)
num_c1 = (bn_size * out_channels[0], bn_size * out_channels[1])
num_c1 = tuple(int(c) if c > 0 else -1 for c in num_c1)
with self.name_scope():
# 1x1
self.bn1 = nn.BatchNorm(in_channels=in_channels, prefix='bn1',
**({} if norm_kwargs is None else norm_kwargs))
self.relu1 = nn.Activation('relu')
self.conv1 = nn.Conv2D(channels=num_c1, in_channels=in_channels,
kernel_size=1, padding=0,
use_bias=False, prefix='conv1')
# 3x3
self.bn2 = nn.BatchNorm(in_channels=num_c1, prefix='bn2',
**({} if norm_kwargs is None else norm_kwargs))
self.relu2 = nn.Activation('relu')
self.conv2 = nn.Conv2D(channels=out_channels, in_channels=num_c1,
kernel_size=3, padding=1,
use_bias=False, prefix='conv2')