mehrdadkhani / MMNet

52 stars 28 forks source link

Questions for MMNet correlated channel matrix #3

Open ThaliaFU opened 4 years ago

ThaliaFU commented 4 years ago

Hi mehrdadkhani wonderful work! I have successfully get 3GPP channel model and use the channel matrices to implement in Onlinetraining. You mentioned in the paper that the key point for MMNet's low complexity is that MMNet makes good use of temporal and spectral correlation for Channel matrices. But I have checked codes and there is no relevant code design based on temporal and spectral correlation. so I am kind of confusing.

yxs33 commented 4 years ago

Can you reproduce the results of 3DMIMO channel? I used matlab code to get the 3DMIMO channel file, but it was a. Hdf5 file, while the python code read an NPY file, is there anything missing in the middle? I saved H as a MAT file in MATLAB, and then Python read it using Scipy.io. The result I got was far from the result in the paper. As for temporal and spectral correlation, the code for online learning is to train each H in sequence, but there is no code to save the ith model and then train the i+1 model on the ith model. I reproduced an online training version according to the paper, but still could not reach the results in the paper.

hanu72 commented 4 years ago

Respected yxs33, did you get the output for the classic models.

hanu72 commented 4 years ago

Please respond if anyone got the output for the classic models .

ThaliaFU commented 4 years ago

Can you reproduce the results of 3DMIMO channel? I used matlab code to get the 3DMIMO channel file, but it was a. Hdf5 file, while the python code read an NPY file, is there anything missing in the middle? I saved H as a MAT file in MATLAB, and then Python read it using Scipy.io. The result I got was far from the result in the paper. As for temporal and spectral correlation, the code for online learning is to train each H in sequence, but there is no code to save the ith model and then train the i+1 model on the ith model. I reproduced an online training version according to the paper, but still could not reach the results in the paper.

I can reproduce the result of classic channel model but not 3D ones, unfortunately

ThaliaFU commented 4 years ago

Please respond if anyone got the output for the classic models .

The classic model which I got has the similar result shown in the paper

hanu72 commented 4 years ago

Please respond if anyone got the output for the classic models .

The classic model which I got has the similar result shown in the paper But I am not getting. Can you please explain little bit more. Actually I got channel_sequences.HDF5 file while executing the generate.m file in channels folder. After that I execute the benchmark.py file in classic folder. While executing this program I am getting the following error.

runfile('C:/Users/408117001/Downloads/MMNet/MMNet-master/classic/benchmark.py', wdir='C:/Users/408117001/Downloads/MMNet/MMNet-master/classic') usage: benchmark.py [-h] [--numSamples NUMSAMPLES] [--goTo GOTO] --x-size X_SIZE --y-size Y_SIZE --snr-min SNR_MIN --snr-max SNR_MAX --batch-size BATCH_SIZE --modulation MODULATION [--overwrite] [--correlated] [--ML] [--AMP] [--SDR] [--BLAST] [--MMSE] [--data] --data-dir DATA_DIR [--parallel] benchmark.py: error: the following arguments are required: --x-size/-xs, --y-size/-ys, --snr-min, --snr-max, --batch-size, --modulation/-mod, --data-dir An exception has occurred, use %tb to see the full traceback.

Is there anything we need to change while executing the benchmark.py file. Please tell me

yxs33 commented 4 years ago

Can you reproduce the results of 3DMIMO channel? I used matlab code to get the 3DMIMO channel file, but it was a. Hdf5 file, while the python code read an NPY file, is there anything missing in the middle? I saved H as a MAT file in MATLAB, and then Pyth on read it using Scipy.io. The result I got was far from the result in the paper. As for temporal and spectral correlation, the code for online learning is to train each H in sequence, but there is no code to save the ith model and then train the i+1 model on the ith model. I reproduced an online training version according to the paper, but still could not reach the results in the paper.

I can reproduce the result of classic channel model but not 3D ones, unfortunately

I don't think onlinetraing.py does what it says in the paper,the code did not train H in sequence,maybe the author did not release the actual online training code。

yxs33 commented 4 years ago

Please respond if anyone got the output for the classic models .

The classic model which I got has the similar result shown in the paper But I am not getting. Can you please explain little bit more. Actually I got channel_sequences.HDF5 file while executing the generate.m file in channels folder. After that I execute the benchmark.py file in classic folder. While executing this program I am getting the following error.

runfile('C:/Users/408117001/Downloads/MMNet/MMNet-master/classic/benchmark.py', wdir='C:/Users/408117001/Downloads/MMNet/MMNet-master/classic') usage: benchmark.py [-h] [--numSamples NUMSAMPLES] [--goTo GOTO] --x-size X_SIZE --y-size Y_SIZE --snr-min SNR_MIN --snr-max SNR_MAX --batch-size BATCH_SIZE --modulation MODULATION [--overwrite] [--correlated] [--ML] [--AMP] [--SDR] [--BLAST] [--MMSE] [--data] --data-dir DATA_DIR [--parallel] benchmark.py: error: the following arguments are required: --x-size/-xs, --y-size/-ys, --snr-min, --snr-max, --batch-size, --modulation/-mod, --data-dir An exception has occurred, use %tb to see the full traceback.

Is there anything we need to change while executing the benchmark.py file. Please tell me

You didn't complete the parameters for the code. I donot recommend running code from the command line,You can set the parameters in the code so that you can debug the code. Note that the H read by benchmark.py needs to be modified to your own generated H.

hanu72 commented 4 years ago

I set the parameters in the code as follows from parser.py

import argparse

def parse(): parser = argparse.ArgumentParser(description='MIMO signal detection benchmark')

parser.add_argument('--numSamples',100,
        type = int,
        required=False,
        help = 'Fast benchmark numSamples')
parser.add_argument('--goTo',
        type = int,
        required=False,
        help = 'Fast benchmark indexing')

parser.add_argument('--x-size', 16,
        type = int,
        required=True,
        help = 'Number of senders')

parser.add_argument('--y-size',64,
        type = int,
        required=True,
        help = 'Number of receivers')

parser.add_argument('--snr-min',2.,
        type = float,
        required=True,
        help = 'Minimum SNR in dB')

parser.add_argument('--snr-max',7.,
        type = float,
        required=True,
        help = 'Maximum SNR in dB')

parser.add_argument('--batch-size',100,
        type = int,
        required=True,
        help = 'Batch size')

parser.add_argument('--modulation', 'QAM_4',
        type = str,
        required=True,
        help = 'Modulation type which can be BPSK, 4PAM, or MIXED')

parser.add_argument('--overwrite',
        action = 'store_true',
        help = 'Overwrite the results into the file')

parser.add_argument('--correlated',
        action = 'store_true',
        help = 'Use correlated channel')

parser.add_argument('--ML',
        action = 'store_true',
        help = 'Include Maximum Likielihood')

parser.add_argument('--AMP',
        action = 'store_true',
        help = 'Include Approximate Message Passing')

parser.add_argument('--SDR',
        action = 'store_true',
        help = 'Include SDR detection algorithm')

parser.add_argument('--BLAST',
        action = 'store_true',
        help = 'Include BLAST detection algorithm')

parser.add_argument('--MMSE',
        action = 'store_true',
        help = 'Include Zero Forcing')

parser.add_argument('--data', 
        action = 'store_true',
        help = 'Load H from dataset')

parser.add_argument('--data-dir','C:/Users/408117001/Downloads/MMNet/MMNet-master/channels/channel_sequences.hdf5',
        type = str,
        required=True,
        help = 'Channel data directory')

parser.add_argument('--parallel',
        action = 'store_true',
        help = 'Parallelize the ML solver')
args = parser.parse_args()
return args

Can you please tell me how to modify the generated H.

hanu72 commented 4 years ago

If possible please share the exact MATLAB code of your files to my email id: bitravenkaiah@gmail.com I will feel very happy If some one give exact code for me. Thanks for advance

hanu72 commented 4 years ago

I am loading the the data H in this way

from keras.models import load_model model=load_model('channel_sequences.h5')

while loading the data from keras, I am getting the following error

runfile('C:/Users/admin/Downloads/MMNet-master/MMNet-master/classic/benchmark.py', wdir='C:/Users/admin/Downloads/MMNet-master/MMNet-master/classic') Reloaded modules: genSolver, analyzer Traceback (most recent call last):

File "C:\Users\admin\Downloads\MMNet-master\MMNet-master\classic\benchmark.py", line 20, in model=load_model('channel_sequences.h5')

File "C:\Users\admin\anaconda3\envs\py37\lib\site-packages\keras\engine\saving.py", line 492, in load_wrapper return load_function(*args, **kwargs)

File "C:\Users\admin\anaconda3\envs\py37\lib\site-packages\keras\engine\saving.py", line 583, in load_model with H5Dict(filepath, mode='r') as h5dict:

File "C:\Users\admin\anaconda3\envs\py37\lib\site-packages\keras\utils\io_utils.py", line 191, in init self.data = h5py.File(path, mode=mode)

File "C:\Users\admin\anaconda3\envs\py37\lib\site-packages\h5py_hl\files.py", line 408, in init swmr=swmr)

File "C:\Users\admin\anaconda3\envs\py37\lib\site-packages\h5py_hl\files.py", line 173, in make_fid fid = h5f.open(name, flags, fapl=fapl)

File "h5py_objects.pyx", line 54, in h5py._objects.with_phil.wrapper

File "h5py_objects.pyx", line 55, in h5py._objects.with_phil.wrapper

File "h5py\h5f.pyx", line 88, in h5py.h5f.open

OSError: Unable to open file (unable to open file: name = 'channel_sequences.h5', errno = 2, error message = 'No such file or directory', flags = 0, o_flags = 0)

hanu72 commented 4 years ago

Please help me, how to resolve the issue...