I might be missing something, but I don't think this can be done. The arguments to GSNCost.__init__ **specify** what the index of the label layer is, so there's no way to check that the original specification is correct. 

The only checking that can be done is that the VectorSpace for the label layer is the correct size (this is done by the Cost class's validate method).