“…Generate N train training data samples at random; Initialize weights θ D , θ G , θ R , and θ T according to the Xavier initialization method [25]; 4 for epoch = 1, 2, • • •, Epoch do 5 for index = 1, 2, • • •, Index do B one-hot vectors as training samples; Caculate transmitted signals: x (1) , • • •, x (B) ; B channel samples: h (1) , • • •, h (B) ; Get real received signals: y (1) , • • •, y (B) ; 10 Generate fake received signals: y (1) , • • •, y (B) ; 11 for i ∈ {D, G, R, T } do 12 Caculate the loss function L (θ i ) according to (10);13Use ∇ θ i L (θ i ) to update θ i according to the Adam method[21]; penalty item Ω (θ i ) in(10) only introduces limited operations when we compute the new loss function and gradient in each iteration. The computational complexity after reconstructing the loss function isO (|θ D | + |θ G | + |θ R | + |θ T |), where |θ| denote the number of weights in θ.…”