You could iterate all modules and add the forward hooks using their name.
Here is a small example:
activation = {}
def get_activation(name):
    def hook(model, input, output):
        activation[name] = output.detach()
    return hook


model = nn.Sequential(
    nn.Conv2d(1, 1, 3, 1, 1),
    nn.BatchNorm2d(1),
    nn.ReLU(),
    nn.Sequential(
        nn.Conv2d(1, 1, 3, 1, 1),
        nn.BatchNorm2d(1),
        nn.ReLU()
    ),
    nn.Conv2d(1, 1, 3, 1, 1),
    nn.BatchNorm2d(1),
    nn.ReLU()
)
    
for name, module in model.named_modules():
    module.register_forward_hook(get_activation(name))

model(torch.randn(1, 1, 4, 4))

for key in activation:
    print(key, activation[key])

Note, that I removed ConcatTable and CAddTable, as they are classes from Torch7, which is not under active development anymore. I would therefore recommend to switch to PyTorch. 
Have a look at the website for install instructions, if you haven’t already installed it.