def data():

    nb_dim=50
    (X_train, y_train), (X_test, y_test) = cifar100.load_data(label_mode='fine')

    # convert class vectors to w2v class matrices
    Y_train = get_w2v_labels(y_train, dim=nb_dim)
    Y_test = get_w2v_labels(y_test, dim=nb_dim)

    X_train = X_train.astype('float32')
    X_test = X_test.astype('float32')
    X_train /= 255
    X_test /= 255

    return X_train, Y_train, X_test, Y_test
def report_w2v_accuracy(X, y, nb_dim, prefix_string='w2v'):
    Y = get_w2v_labels(y, dim=nb_dim)

    Y_predict = model.predict(X, batch_size=batch_size, verbose=1)

    accuracy, class_, accuracy_c, class_c, accuracy_c2, class_c2 = accuracy_w2v_coarse(Y_predict, Y, dim=nb_dim)

    """
    print(np.sum(class_,axis=0))
    print(np.argmax(np.sum(class_,axis=0)))
    print(classes[np.argmax(np.sum(class_,axis=0))])
    """

    print("%s accuracy: %f" % (prefix_string, accuracy))
    print("%s coarse accuracy: %f" % (prefix_string, accuracy_c))
    print("%s coarse v2 accuracy: %f" % (prefix_string, accuracy_c2))
elif 'w2v' in model_name:
    # Load and format the data
    (X_train, y_train), (X_test, y_test) = cifar100.load_data(label_mode='fine')

    X_train = X_train.astype('float32')
    X_test = X_test.astype('float32')
    X_train /= 255
    X_test /= 255
    
    # Figure out how many dimensions were used
    for d in [200,100,50,25,10]:
	if 'd%s'%d in model_name:
	    nb_dim = d
	    break
    Y_train = get_w2v_labels(y_train, dim=nb_dim)
    Y_test = get_w2v_labels(y_test, dim=nb_dim)

    #NOTE: due to changes in keras, model has to be compiled before being used here
    #TODO: do the parameters that it is compiled with matter? might need to get them exactly
    optimizers = ['sgd','rmsprop','adam']
    losses = ['mse','msle']
    model.compile(optimizer=optimizers[2],loss=losses[0])

    Y_predict_test = model.predict(X_test, batch_size=batch_size, verbose=1)
    Y_predict_train = model.predict(X_train, batch_size=batch_size, verbose=1)

    #test_accuracy, test_class = accuracy_w2v(Y_predict_test, Y_test, dim=nb_dim)
    test_accuracy, test_class, test_accuracy_c, test_class_c, test_accuracy_c2, test_class_c2 = accuracy_w2v_coarse(Y_predict_test, Y_test, dim=nb_dim)

    #train_accuracy, train_class = accuracy_w2v(Y_predict_train, Y_train, dim=nb_dim)