'TODO:  Handle final layers that don\'t own their own outputs (bias, activation)
Arguments:
inputs:
inference:  (Default value = False)
beta:  (Default value = 0.0)
Returns:'

def fprop(self, inputs, inference=False, beta=0.0):

    x = inputs
    for l in self.layers:
        altered_tensor = l.be.distribute_data(x, l.parallelism)
        l.revert_list = ([altered_tensor] if altered_tensor else [])
        l.be.convert_data(x, l.get_is_mklop())
        if ((l is self.layers[(-1)]) and (beta != 0)):
            x = l.fprop(x, inference=inference, beta=beta)
        else:
            x = l.fprop(x, inference=inference)
    if inference:
        self.revert_tensors()
    return x
