""" import torch from MVC import MVC import dgl import torch.nn.functional as F from Models import ACNet import time from copy import deepcopy as dc import matplotlib.pyplot as plt import networkx as nx cuda_flag = True num_nodes = 40 p_edge = 0.15 mvc = MVC(num_nodes, p_edge) ndim = mvc.get_graph_dims() if cuda_flag: NN = ACNet(ndim, 264, 1).cuda() else: NN = ACNet(ndim, 264, 1) PATH = 'mvc_net.pt' NN.load_state_dict(torch.load(PATH)) init_state, done = mvc.reset() pos = nx.spring_layout(init_state.g.to_networkx(), iterations=20) #### GCN Policy state = dc(init_state) if cuda_flag:
""" Created on Sat Mar 2 16:30:53 2019 @author: orrivlin """ from discrete_actor_critic import DiscreteActorCritic from MVC import MVC import matplotlib.pyplot as plt from smooth_signal import smooth import numpy as np import time import torch n = 19 # number of nodes p = 0.15 # edge probability env = MVC(n, p) cuda_flag = False alg = DiscreteActorCritic(env, cuda_flag) num_episodes = 1 lista = [] for i in range(num_episodes): T1 = time.time() log = alg.train() T2 = time.time() lista.append(log.get_current('tot_return')) print('---------------------------------------------------') print('Epoch: {}. R: {}. TD error: {}. H: {}. T: {}'.format( i, np.round(log.get_current('tot_return'), 2), np.round(log.get_current('TD_error'), 3), np.round(log.get_current('entropy'), 3), np.round(T2 - T1, 3)))