Generic function which converts several objects, with ids in the range (start_id, end_id)
    into a 2d numpy array and returns the array, the conversion is done by the 'converter' function

    Parameters
    ----------
    dbpath : string, path to SQLite database file
    folder_path : string, path to folder where the files are stored
    set_object : object (either TestSet or TrainSet) which is stored in the database
    start_id : the id of the first object to be converted
    end_id : the id of the last object to be converted
    converter : function, which takes the path of a data point and *args as parameters and returns a numpy array
    add_args : optional arguments for the converter (list/dictionary/tuple/whatever). if None, the
    converter should take only one input argument - the file path. default value: None

    Returns
    -------
    result : 2-dimensional ndarray

def return_multiple_convert_numpy_base(dbpath, folder_path, set_object, start_id, end_id, converter, add_args=None):
    """
    Generic function which converts several objects, with ids in the range (start_id, end_id)
    into a 2d numpy array and returns the array, the conversion is done by the 'converter' function

    Parameters
    ----------
    dbpath : string, path to SQLite database file
    folder_path : string, path to folder where the files are stored
    set_object : object (either TestSet or TrainSet) which is stored in the database
    start_id : the id of the first object to be converted
    end_id : the id of the last object to be converted
    converter : function, which takes the path of a data point and *args as parameters and returns a numpy array
    add_args : optional arguments for the converter (list/dictionary/tuple/whatever). if None, the
    converter should take only one input argument - the file path. default value: None

    Returns
    -------
    result : 2-dimensional ndarray
    """
    engine = create_engine('sqlite:////' + dbpath)
    session_cl = sessionmaker(bind=engine)
    session = session_cl()
    tmp_object = session.query(set_object).get(start_id)
    if add_args is None:
        converted = converter(join(folder_path, tmp_object.path))
    else:
        converted = converter(join(folder_path, tmp_object.path), add_args)
    if len(converted.shape) == 0:
        columns_amt = 1
    else:
        columns_amt = converted.shape[0]
    return_array = np.zeros([end_id - start_id + 1, columns_amt])
    for i in xrange(end_id - start_id + 1):
        tmp_object = session.query(set_object).get(start_id + i)
        if add_args is None:
            return_array[i, :] = converter(join(folder_path, tmp_object.path))
        else:
            return_array[i, :] = converter(join(folder_path, tmp_object.path), add_args)
    session.close()
    return return_array