3D seismic facies classification using convolutional neural network and semi-supervised generative adversarial network