if args.is_interleave == 1: # fixed interleaver. seed = np.random.randint(0, 1) rand_gen = mtrand.RandomState(seed) p_array = rand_gen.permutation(arange(args.block_len)) elif args.is_interleave == 0: p_array = range(args.block_len) # no interleaver. else: seed = np.random.randint(0, args.is_interleave) rand_gen = mtrand.RandomState(seed) p_array = rand_gen.permutation(arange(args.block_len)) print('using random interleaver', p_array) encoder = ENC(args, p_array) decoder = DEC(args, p_array) # choose support channels from channel_ae import Channel_AE model = Channel_AE(args, encoder, decoder).to(device) # make the model parallel if args.is_parallel == 1: model.enc.set_parallel() model.dec.set_parallel() # weight loading if args.init_nw_weight == 'default': pass else:
elif args.is_interleave == 0: p_array1 = range(args.block_len) # no interleaver. p_array2 = range(args.block_len) # no interleaver. else: seed = np.random.randint(0, args.is_interleave) rand_gen = mtrand.RandomState(seed) p_array1 = rand_gen.permutation(arange(args.block_len)) seed = np.random.randint(0, args.is_interleave) rand_gen = mtrand.RandomState(seed) p_array2 = rand_gen.permutation(arange(args.block_len)) print('using random interleaver', p_array1, p_array2) if args.encoder == 'turboae_2int' and args.decoder == 'turboae_2int': encoder = ENC(args, p_array1, p_array2) decoder = DEC(args, p_array1, p_array2) else: encoder = ENC(args, p_array1) decoder = DEC(args, p_array1) # choose support channels from channel_ae import Channel_AE model = Channel_AE(args, encoder, decoder).to(device) # model = Channel_ModAE(args, encoder, decoder).to(device) # make the model parallel if args.is_parallel == 1: model.enc.set_parallel() model.dec.set_parallel()