I have faced this problem. Especially when the model is non-sequential, there was no way to access the incoming edges to a particular layer (node) in the graph directly.
However, with Pytorch1.0.1 upgrade, you can traverse the network graph using JIT trace. Here is the code snippet for AlexNet model:
import torch
from torchvision import models

def get_seq_exec_list(model):
    DUMMY_INPUT = torch.randn(1,3,224,224)
    model.eval()
    traced = torch.jit.trace(model, (DUMMY_INPUT,), check_trace=False)
    seq_exec_list = traced.code
    seq_exec_list = seq_exec_list.split('\n')
    for idx, item in enumerate(seq_exec_list):
        print("[{}]: {}".format(idx, item))

x = models.alexnet()
get_seq_exec_list(x)

How to get layer parameters?
Simply parse the string and call eval() on the parameter you want to retrieve.