コード例 #1
0
ファイル: seg.py プロジェクト: Chen-Cai-OSU/Esme
def plot_eigpro_res(res1, res2, idx=None, show_flag=False, save_flag=False):

    # res1 = {1: ((0.03345335, 0.6225), (0.0323456, 0.6305732484076433), 0.019212722778320312), 10: ((0.02896553, 0.6645), (0.027736971, 0.6751592356687898), 0.15459346771240234), 16: ((0.027915038, 0.6805), (0.027045922, 0.6751592356687898), 0.21888422966003418), 25: ((0.027005592, 0.7005), (0.026337573, 0.6836518046709129), 0.3047153949737549), 50: ((0.02561936, 0.701), (0.024892189, 0.7091295116772823), 0.5407752990722656)}
    # res2 = {1: ((0.03954246, 0.5725), (0.039126936, 0.5859872611464968), 0.010367870330810547), 10: ((0.03561854, 0.6245), (0.03524615, 0.6326963906581741), 0.09223318099975586), 16: ((0.03479484, 0.639), (0.034788787, 0.6369426751592356), 0.1485884189605713), 25: ((0.03404998, 0.6535), (0.03433756, 0.6369426751592356), 0.22641897201538086), 50: ((0.03294293, 0.662), (0.033193808, 0.6645435244161358), 0.4424324035644531)}

    x, y = [], []
    for k, v in res1.items():
        x.append(k)
        y.append(v[1][1])
    print(x, y)
    plt.scatter(x, y, c='b', marker='o', label='no permute')

    x, y = [], []
    for k, v in res2.items():
        x.append(k)
        y.append(v[1][1])
    print(x, y)
    plt.scatter(x, y, c='r', label='permute')

    plt.legend()

    plt.title(f'perm vs. no permutation for idx {idx}')
    if show_flag: plt.show()
    if save_flag:
        dir = osp.join(osp.dirname(osp.realpath(__file__)), 'Fig', '')
        make_dir(dir)
        file = str(idx) + '.png'
        print(dir + file)
        plt.savefig(dir + file)
コード例 #2
0
def load_graph(graph, debug=False, single_graph_flag=True):
    # exptect label to be numpy.ndarry of shape (n,). However protein_data is different so have to handle it differently
    """
    :param graph: str:
    :param debug:
    :param single_graph_flag:
    :return: graphs and lables
    """
    print('Loading graphs...')
    assert type(graph) == str
    dir = os.path.join('/home/cai.507/Documents/DeepLearning/deep-persistence',
                       graph, 'LearningFiltration')
    make_dir(dir)
    inputFile = os.path.join(dir, 'graph+label')

    if os.path.isfile(inputFile):
        graphs, labels = load_existing_graph(graph, inputFile)
        return graphs, labels

    print('Start Loading from dataset')
    file = os.path.join(
        "/Users/admin/Documents/osu/Research/DeepGraphKernels/datasets/dataset",
        graph + ".graph")
    if not os.path.isfile(file):
        file = os.path.join(
            '/home/cai.507/Documents/DeepLearning/deep-persistence/dataset/datasets',
            graph + '.graph')

    with open(file, 'rb') as f:
        data = pickle.load(f, encoding='latin1')

    graphs = data['graph']
    if graph == 'ptc': graphs[151] = graphs[152]
    labels = data['labels']

    if debug:
        print((graph), end=' ')
        print((type(labels), ))
        print((np.shape(labels)))

    if graph == 'protein_data':
        labels = labels.reshape(1113, 1)
        labels = np.array([-1] * 663 + [1] * 450)
    elif graph == ('nci1' or 'nci109'):
        labels = np.sign(labels - 0.5)

    print('Finish Loading graphs')
    outputFile = dir + '/graph+label'
    fw = open(outputFile, 'wb')
    dataset = (graphs, labels)
    pickle.dump(dataset, fw)
    fw.close()
    print('Finish Saving data for future use')
    return graphs, labels
コード例 #3
0
def ioobj(graphs, args, save_flag=True):
    # usually a list of graphs, dgms
    direct = '/home/cai.507/Documents/DeepLearning/deep-persistence/pythoncode/permutation/experiments/' \
         + args.graph +  '/' + args.kerneltype + '/'
    make_dir(direct)

    if save_flag:
        pickle_out = open(direct + 'graph.pickle', "wb")
        pickle.dump(graphs, pickle_out)
        pickle_out.close()
    else:
        print('load existing graphs...')
        pickle_in = open(direct + 'graph.pickle', "rb")
        return pickle.load(pickle_in)
コード例 #4
0
def dgmsio(obj, args, method='deg', save_flag=True):
    direct = '/home/cai.507/Documents/DeepLearning/deep-persistence/pythoncode/permutation/experiments/' \
             + args.graph + '/' + args.kerneltype + '/' + method + '/'
    filename = 'dgms_' + method + '.pickle'
    make_dir(direct)

    if save_flag:
        pickle_out = open(direct + filename, "wb")
        pickle.dump(obj, pickle_out)
        pickle_out.close()
    else:
        print('load existing dgms...')
        pickle_in = open(direct + filename, "rb")
        return pickle.load(pickle_in)
コード例 #5
0
def savedgm(res, f):
    direct = DGM_DIRECT
    direct = os.path.join(direct, f)
    make_dir(direct)
    with open(os.path.join(direct, 'm' + f + '.pkl'), 'wb') as fp:
        pickle.dump(res, fp)