"""

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:
Example #2
0
"""
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)))