'Load the parameters for this edge.
Load the parameters if present in self.proto. Otherwise initialize them
appropriately.'

def LoadParams(self, proto, **kwargs):

    node1 = self.node1
    node2 = self.node2
    self.hyperparams = proto.hyperparams
    param_names = [param.name for param in proto.param]
    for param in proto.param:
        if (param.conv or param.local):
            n_locs = self.AllocateMemoryForConvolutions(param, node1, node2)
        if (not param.dimensions):
            if param.conv:
                cv = param.conv_params
                dims = [cv.num_filters, ((cv.size ** 2) * cv.num_colors)]
            elif param.local:
                dims = [cv.num_filters, (((n_locs ** 2) * (cv.size ** 2)) * cv.num_colors)]
            else:
                dims = [(node1.numlabels * node1.dimensions), (node2.numlabels * node2.dimensions)]
            param.dimensions.extend(dims)
    super(Edge, self).LoadParams(proto, **kwargs)
