In real engineering scenarios, it is difficult to collect adequate cases with faulty conditions to train an intelligent diagnosis system. To alleviate the problem of limited fault data, this paper proposes a fault diagnosis method combining a generative adversarial network (GAN) and stacked denoising auto-encoder (SDAE). The GAN approach augments the limited real measured data, especially in faulty conditions. The generated data are then transformed into the SDAE fault diagnosis model. The GAN-SDAE approach improves the accuracy of the fault diagnosis from the vibration signals, especially when the measured samples are few. The usefulness of this method is assessed through two condition-monitoring cases: one is a classic bearing example and the other is a more general gear failure. The results demonstrate that diagnosis accuracy for both cases is above 90% for various working conditions, and the GAN-SDAE system is stable.