Exemple #1
0
def get_problem(config):

    # retrieve the parameter of the problem
    dataset = config['data']
    batch_size, lmbd = config['batch_size'], config['lmbd']
    seed = config.get('seed')

    # Setup the training constant and a test set
    if dataset == 'artificial':
        from adaopt.simple_problem_generator import SimpleProblemGenerator
        from adaopt.simple_problem_generator import create_dictionary

        # retrieve specific parameters for the problem
        K, p, rho = config['K'], config['p'], config['rho']
        seed_D, corr = config.get('seed_D'), config.get('corr', 0)
        D = create_dictionary(K, p, seed=seed_D)
        pb = SimpleProblemGenerator(D,
                                    lmbd,
                                    rho=rho,
                                    batch_size=batch_size,
                                    corr=corr,
                                    seed=seed)
    elif dataset == 'adverse':
        from adaopt.simple_problem_generator import SimpleProblemGenerator
        from data_handlers.dictionaries import create_adversarial_dictionary

        # retrieve specific parameters for the problem
        K, p, rho = config['K'], config['p'], config['rho']
        seed_D, corr = config.get('seed_D'), config.get('corr', 0)
        D = create_adversarial_dictionary(K, p, seed=seed_D)
        pb = SimpleProblemGenerator(D,
                                    lmbd,
                                    rho=rho,
                                    batch_size=batch_size,
                                    corr=corr,
                                    seed=seed)
    elif dataset == 'mnist':
        from adaopt.mnist_problem_generator import MnistProblemGenerator
        from adaopt.mnist_problem_generator import create_dictionary_dl
        K, save_dir = config['K'], config['save_dir']
        D = create_dictionary_dl(lmbd, K, N=10000, dir_mnist=save_dir)
        pb = MnistProblemGenerator(D,
                                   lmbd,
                                   batch_size=batch_size,
                                   dir_mnist=save_dir,
                                   seed=seed)
    elif dataset == 'images':
        from adaopt.image_problem_generator import ImageProblemGenerator
        from adaopt.image_problem_generator import create_dictionary_haar
        p = config['p']
        D = create_dictionary_haar(p)
        pb = ImageProblemGenerator(D, lmbd, batch_size=batch_size, seed=seed)
    else:
        raise NameError("dataset {} not reconized by the script"
                        "".format(dataset))
    return pb, D
Exemple #2
0
def get_problem(config):

    # retrieve the parameter of the problem
    dataset = config['data']
    batch_size, lmbd = config['batch_size'], config['lmbd']
    seed = config.get('seed')

    # Setup the training constant and a test set
    if dataset == 'artificial':
        from adaopt.simple_problem_generator import SimpleProblemGenerator
        from adaopt.simple_problem_generator import create_dictionary

        # retrieve specific parameters for the problem
        K, p, rho = config['K'], config['p'], config['rho']
        seed_D, corr = config.get('seed_D'), config.get('corr', 0)
        D = create_dictionary(K, p, seed=seed_D)
        pb = SimpleProblemGenerator(D, lmbd, rho=rho, batch_size=batch_size,
                                    corr=corr, seed=seed)
    elif dataset == 'adverse':
        from adaopt.simple_problem_generator import SimpleProblemGenerator
        from data_handlers.dictionaries import create_adversarial_dictionary

        # retrieve specific parameters for the problem
        K, p, rho = config['K'], config['p'], config['rho']
        seed_D, corr = config.get('seed_D'), config.get('corr', 0)
        D = create_adversarial_dictionary(K, p, seed=seed_D)
        pb = SimpleProblemGenerator(D, lmbd, rho=rho, batch_size=batch_size,
                                    corr=corr, seed=seed)
    elif dataset == 'mnist':
        from adaopt.mnist_problem_generator import MnistProblemGenerator
        from adaopt.mnist_problem_generator import create_dictionary_dl
        K, save_dir = config['K'], config['save_dir']
        D = create_dictionary_dl(lmbd, K, N=10000, dir_mnist=save_dir)
        pb = MnistProblemGenerator(D, lmbd, batch_size=batch_size,
                                   dir_mnist=save_dir, seed=seed)
    elif dataset == 'images':
        from adaopt.image_problem_generator import ImageProblemGenerator
        from adaopt.image_problem_generator import create_dictionary_haar
        p = config['p']
        D = create_dictionary_haar(p)
        pb = ImageProblemGenerator(D, lmbd, batch_size=batch_size,
                                   seed=seed)
    else:
        raise NameError("dataset {} not reconized by the script"
                        "".format(dataset))
    return pb, D
                        action="store_true",
                        help='Create a figure with a guassian dictionary')
    parser.add_argument('--noshow',
                        action="store_true",
                        help='Do not display the graph')
    parser.add_argument('--seaborn',
                        action="store_true",
                        help='Load the seaborn style')
    args = parser.parse_args()

    if args.gaussian:
        K, p = 100, 64
        D = create_gaussian_dictionary(K, p, seed=290890)
    else:
        K, p = 256, 50
        D = create_adversarial_dictionary(K, p, seed=420829)
    cmap = sns.cubehelix_palette(8,
                                 start=.5,
                                 rot=-.75,
                                 dark=.2,
                                 reverse=True,
                                 as_cmap=True)
    fig = plt.figure("Dictionary")
    ax = fig.add_subplot(1, 1, 1)
    fig.subplots_adjust(bottom=.12, top=.99, right=.99)

    ax.imshow(D.T, aspect=K / p * h / w, cmap=cmap, interpolation="none")
    ax.set_xlabel("$m$", fontsize='x-large')
    ax.set_ylabel(" $n$", fontsize='x-large')
    ax.set_xticks([])
    ax.set_yticks([])
    parser.add_argument('--save', type=str, default=None,
                        help='')
    parser.add_argument('--gaussian', action="store_true",
                        help='Create a figure with a guassian dictionary')
    parser.add_argument('--noshow', action="store_true",
                        help='Do not display the graph')
    parser.add_argument('--seaborn', action="store_true",
                        help='Load the seaborn style')
    args = parser.parse_args()

    if args.gaussian:
        K, p = 100, 64
        D = create_gaussian_dictionary(K, p, seed=290890)
    else:
        K, p = 256, 50
        D = create_adversarial_dictionary(K, p, seed=420829)
    cmap = sns.cubehelix_palette(8, start=.5, rot=-.75, dark=.2, reverse=True,
                                 as_cmap=True)
    fig = plt.figure("Dictionary")
    ax = fig.add_subplot(1, 1, 1)
    fig.subplots_adjust(bottom=.12, top=.99, right=.99)

    ax.imshow(D.T, aspect=K/p*h/w, cmap=cmap, interpolation="none")
    ax.set_xlabel("$K$", fontsize='xx-large')
    ax.set_ylabel("$p$", fontsize='xx-large')
    ax.set_xticks([])
    ax.set_yticks([])

    if args.seaborn:
        import seaborn
        seaborn.set_color_codes(palette='deep')