├── .gitignore ├── .idea ├── .gitignore ├── ddqn_quantization.iml ├── inspectionProfiles │ └── profiles_settings.xml ├── misc.xml └── modules.xml ├── README.md ├── __pycache__ ├── agent.cpython-38.pyc ├── dataloaders.cpython-38.pyc ├── dqn.cpython-38.pyc ├── fcn.cpython-38.pyc ├── helper.cpython-38.pyc ├── identical_compressor.cpython-38.pyc ├── logger.cpython-38.pyc ├── mec_env.cpython-38.pyc ├── options.cpython-38.pyc ├── pe.cpython-38.pyc ├── ps_quantizer.cpython-38.pyc ├── qsgd_compressor.cpython-38.pyc └── resnet.cpython-38.pyc ├── agent.py ├── bar_chart.py ├── dataloaders.py ├── dqn.py ├── fcn.py ├── federated_learning.py ├── helper.py ├── identical_compressor.py ├── line_chart.py ├── logger.py ├── mec_env.py ├── model ├── __pycache__ │ └── pe.cpython-38.pyc ├── checkpoint ├── train_model-q.data-00000-of-00001 ├── train_model-q.index └── train_model-q.meta ├── opt_weight ├── acc │ ├── dqn_0.1.txt │ ├── dqn_0.3.txt │ ├── dqn_0.5.txt │ ├── dqn_0.7.txt │ └── dqn_0.9.txt ├── loss │ ├── dqn_0.1.txt │ ├── dqn_0.3.txt │ ├── dqn_0.5.txt │ ├── dqn_0.7.txt │ └── dqn_0.9.txt ├── qerror.txt ├── reward.txt └── traintime.txt ├── options.py ├── pe.py ├── plot_reward.py ├── ps_quantizer.py ├── q_fl_dqn.py ├── qsgd_compressor.py ├── resnet.py ├── test ├── dir │ ├── testNov_03_2022_01_11_51.npz │ └── testNov_03_2022_17_30_04.npz └── step_result │ └── dir │ ├── step_resultNov_02_2022_15_21_32.npz │ ├── step_resultNov_02_2022_16_35_09.npz │ ├── step_resultNov_02_2022_17_48_54.npz │ ├── step_resultNov_02_2022_19_02_37.npz │ ├── step_resultNov_02_2022_20_16_47.npz │ ├── step_resultNov_02_2022_21_30_58.npz │ ├── step_resultNov_02_2022_22_44_32.npz │ ├── step_resultNov_02_2022_23_58_06.npz │ ├── step_resultNov_03_2022_01_11_51.npz │ └── step_resultNov_03_2022_17_30_04.npz ├── test_q_fl_dqn.py ├── test_results ├── acc │ ├── ada.txt │ ├── dqn_q.txt │ ├── fix_10bit.txt │ ├── fix_2bit.txt │ └── fix_6bit.txt ├── ada_time.txt ├── dqn_q_time.txt ├── error10.txt ├── error6.txt ├── error_ada.txt ├── error_dqn.txt ├── fix_10_time.txt ├── fix_6_time.txt ├── longtermreward1.txt ├── loss │ ├── ada.txt │ ├── dqn_q.txt │ ├── fix_10bit.txt │ ├── fix_2bit.txt │ └── fix_6bit.txt ├── qerror1.txt ├── reward10.txt ├── reward6.txt ├── rewardada.txt ├── rewarddqn.txt └── traintime1.txt └── train ├── a1bathnormal_env_max_ep2000_tep_1000_buffersize250000_maxstep500000_prestep25000_lr0.05_plot_minig+T_tfacter0.5_num4.npz ├── a2bathnormal_env_max_ep2000_tep_1000_buffersize250000_maxstep500000_prestep25000_lr0.05_plot_minig+T_tfacter0.5_num4.npz └── a3bathnormal_env_max_ep2000_tep_1000_buffersize250000_maxstep500000_prestep25000_lr0.05_plot_minig+T_tfacter0.5_num4.npz /.gitignore: -------------------------------------------------------------------------------- 1 | data/ 2 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /.idea/ddqn_quantization.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 12 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 数据集为公开数据集,请自行下载,在根目录下创建```data```文件夹,内容如下 2 | ``` 3 | | cifar-10-python.tar.gz 4 | | 5 | +---cifar-10-batches-py 6 | | batches.meta 7 | | data_batch_1 8 | | data_batch_2 9 | | data_batch_3 10 | | data_batch_4 11 | | data_batch_5 12 | | readme.html 13 | | test_batch 14 | | 15 | \---mnist 16 | +---MNIST 17 | | \---raw 18 | | t10k-images-idx3-ubyte 19 | | t10k-images-idx3-ubyte.gz 20 | | t10k-labels-idx1-ubyte 21 | | t10k-labels-idx1-ubyte.gz 22 | | train-images-idx3-ubyte 23 | | train-images-idx3-ubyte.gz 24 | | train-labels-idx1-ubyte 25 | | train-labels-idx1-ubyte.gz 26 | | 27 | +---processed 28 | | test.pt 29 | | training.pt 30 | | 31 | \---raw 32 | t10k-images-idx3-ubyte 33 | t10k-images-idx3-ubyte.gz 34 | t10k-labels-idx1-ubyte 35 | t10k-labels-idx1-ubyte.gz 36 | train-images-idx3-ubyte 37 | train-images-idx3-ubyte.gz 38 | train-labels-idx1-ubyte 39 | train-labels-idx1-ubyte.gz 40 | ``` 41 | -------------------------------------------------------------------------------- /__pycache__/agent.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/__pycache__/agent.cpython-38.pyc -------------------------------------------------------------------------------- /__pycache__/dataloaders.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/__pycache__/dataloaders.cpython-38.pyc -------------------------------------------------------------------------------- /__pycache__/dqn.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/__pycache__/dqn.cpython-38.pyc -------------------------------------------------------------------------------- /__pycache__/fcn.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/__pycache__/fcn.cpython-38.pyc -------------------------------------------------------------------------------- /__pycache__/helper.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/__pycache__/helper.cpython-38.pyc -------------------------------------------------------------------------------- /__pycache__/identical_compressor.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/__pycache__/identical_compressor.cpython-38.pyc -------------------------------------------------------------------------------- /__pycache__/logger.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/__pycache__/logger.cpython-38.pyc -------------------------------------------------------------------------------- /__pycache__/mec_env.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/__pycache__/mec_env.cpython-38.pyc -------------------------------------------------------------------------------- /__pycache__/options.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/__pycache__/options.cpython-38.pyc -------------------------------------------------------------------------------- /__pycache__/pe.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/__pycache__/pe.cpython-38.pyc -------------------------------------------------------------------------------- /__pycache__/ps_quantizer.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/__pycache__/ps_quantizer.cpython-38.pyc -------------------------------------------------------------------------------- /__pycache__/qsgd_compressor.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/__pycache__/qsgd_compressor.cpython-38.pyc -------------------------------------------------------------------------------- /__pycache__/resnet.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/__pycache__/resnet.cpython-38.pyc -------------------------------------------------------------------------------- /agent.py: -------------------------------------------------------------------------------- 1 | import os 2 | import random 3 | 4 | import numpy as np 5 | import tensorflow.compat.v1 as tf 6 | from options import args_parser 7 | from dqn import * 8 | import ipdb as pdb 9 | import matplotlib.pyplot as plt 10 | 11 | args = args_parser() 12 | 13 | alpha = 2.0 14 | ref_loss = 0.001 15 | # args.num_users = 10 16 | INITIAL_EPSILON = 0.5 17 | FINAL_EPSILON = 0.01 18 | 19 | class DQNAgent(object): 20 | """docstring for DQNAgent""" 21 | 22 | def __init__(self, sess, user_config, train_config): 23 | self.sess = sess 24 | self.user_id = user_config['id'] 25 | self.state_dim = user_config['state_dim'] 26 | self.action_dim = user_config['action_dim'] 27 | self.action_bound = user_config['action_bound'] 28 | self.action_level = user_config['action_level'] 29 | self.minibatch_size = int(train_config['minibatch_size']) 30 | self.epsilon = float(train_config['epsilon']) 31 | 32 | 33 | self.action_nums = 25# 1 -->2 34 | # for i in range(self.action_dim): 35 | # self.action_nums *= self.action_level 36 | 37 | self.max_step = 500000 # 500000 38 | # self.pre_train_steps = 25000 39 | self.pre_train_steps = 25000 40 | self.total_step = 0 41 | self.DQN = DeepQNetwork(sess, self.state_dim, self.action_nums, float(train_config['critic_lr']), float(train_config['tau']), float(train_config['gamma']), self.user_id) 42 | self.replay_buffer = ReplayBuffer(int(train_config['buffer_size']), int(train_config['random_seed'])) 43 | 44 | def init_target_network(self): 45 | self.DQN.update_target_network() 46 | 47 | def predict(self, s): 48 | if self.total_step <= self.max_step: 49 | self.epsilon *= 0.9999953948404178 50 | # print (self.epsilon) 51 | # print (np.random.rand(1) < self.epsilon or self.total_step < self.pre_train_steps) 52 | # random.seed(1) # np.random(1) 53 | if np.random.rand(1) < self.epsilon or self.total_step < self.pre_train_steps: 54 | #self.epsilon -= (INITIAL_EPSILON - FINAL_EPSILON) / 10000 55 | action = np.random.randint(self.action_nums) 56 | else: 57 | #self.epsilon -= (INITIAL_EPSILON - FINAL_EPSILON) / 10000 58 | action, _ = self.DQN.predict(np.reshape(s, (1, self.state_dim))) 59 | 60 | self.total_step += 1 61 | # print ('self.total_step:',self.total_step) 62 | # print (' self.epsilon:', self.epsilon) 63 | return action 64 | 65 | def update(self, s, a, r, t, s2): 66 | self.replay_buffer.add(np.reshape(s, (self.state_dim,)), a, r, 67 | t, np.reshape(s2, (self.state_dim,))) 68 | 69 | if self.replay_buffer.size() > self.minibatch_size: 70 | s_batch, a_batch, r_batch, t_batch, s2_batch = \ 71 | self.replay_buffer.sample_batch(self.minibatch_size) 72 | 73 | # calculate targets 74 | _, q_out = self.DQN.predict(s_batch) 75 | target_prediction, target_q_out = self.DQN.predict_target(s2_batch) 76 | 77 | for k in range(self.minibatch_size): 78 | if t_batch[k]: 79 | q_out[k][a_batch[k]] = r_batch[k] # 10/5 [0]-2 80 | else: 81 | q_out[k][a_batch[k]] = r_batch[k] + self.DQN.gamma * target_q_out[k][target_prediction[k]] 82 | 83 | # Update the critic given the targets 84 | q_loss, _ = self.DQN.train( 85 | s_batch, q_out) 86 | 87 | # losses.append(q_loss) 88 | # Update target networks 89 | self.DQN.update_target_network() 90 | ''' 91 | def update(self, s, a, r, t, s2): 92 | self.replay_buffer.add(np.reshape(s, (self.state_dim,)), a, r, 93 | t, np.reshape(s2, (self.state_dim,))) 94 | 95 | if self.replay_buffer.size() > self.minibatch_size: 96 | s_batch, a_batch, r_batch, t_batch, s2_batch = \ 97 | self.replay_buffer.sample_batch(self.minibatch_size) 98 | 99 | # calculate targets 100 | _, q_out = self.DQN.predict(s_batch) 101 | target_prediction, target_q_out = self.DQN.predict_target(s2_batch) 102 | 103 | for k in range(self.minibatch_size): 104 | if t_batch[k]: 105 | q_out[k][a_batch[k]] = r_batch[k] # 10/5 [0]-2 106 | else: 107 | q_out[k][a_batch[k]] = r_batch[k] + self.DQN.gamma * target_q_out[k][target_prediction[k]] 108 | 109 | # Update the critic given the targets 110 | q_loss, _ = self.DQN.train( 111 | s_batch, q_out) 112 | 113 | # losses.append(q_loss) 114 | # Update target networks 115 | self.DQN.update_target_network() 116 | ''' -------------------------------------------------------------------------------- /bar_chart.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | import numpy as np 3 | 4 | # 读取txt文件中的数据 5 | data = [] 6 | with open('opt_weight/traintime.txt', 'r') as file: 7 | for line in file: 8 | data.append(float(line.strip())) 9 | 10 | name = ["Value of w1"] 11 | x = np.arange(len(name)) 12 | width = 0.25 13 | # fig = plt.figure() 14 | plt.tick_params(bottom=False) 15 | plt.bar(x, data[0], width=width, label='w1=0.1', color='r') 16 | plt.bar(x + width, data[1], width=width, label='w1=0.3', color='#CC6600', tick_label="") 17 | plt.bar(x + 2 * width, data[2], width=width, label='w1=0.5', color='#66CCFF') 18 | plt.bar(x + 3 * width, data[3], width=width, label='w1=0.7', color='g') 19 | plt.bar(x + 4 * width, data[4], width=width, label='w1=0.9', color='m') 20 | 21 | plt.xticks() 22 | # plt.ylabel('Long-term Discounted Reward') 23 | # plt.ylabel('Average quantization error') 24 | plt.ylabel('Average total training time') 25 | plt.xlabel('Value of w1') 26 | plt.grid(axis='y', linestyle=':') 27 | plt.legend(loc='lower right') 28 | plt.savefig('time_w.eps', format='eps') 29 | plt.show() -------------------------------------------------------------------------------- /dataloaders.py: -------------------------------------------------------------------------------- 1 | import torch 2 | from torchvision import datasets, transforms 3 | 4 | 5 | def mnist(args): 6 | train_loader = torch.utils.data.DataLoader( 7 | datasets.MNIST('./data', train=True, download=True, 8 | transform=transforms.Compose([ 9 | transforms.ToTensor(), 10 | transforms.Normalize((0.1307,), (0.3081,)) 11 | ])), 12 | batch_size=args.batch_size*args.num_users, shuffle=True,) 13 | test_loader = torch.utils.data.DataLoader( 14 | datasets.MNIST('./data', train=False, transform=transforms.Compose([ 15 | transforms.ToTensor(), 16 | transforms.Normalize((0.1307,), (0.3081,)) 17 | ])), 18 | batch_size=args.test_batch_size, shuffle=True,) 19 | return train_loader, test_loader 20 | 21 | 22 | def cifar10(args): 23 | transform_train = transforms.Compose([ 24 | transforms.RandomCrop(32, padding=4), # 先四周填充0,在吧图像随机裁剪成32*32 25 | transforms.RandomHorizontalFlip(), # 图像一半的概率翻转,一半的概率不翻转 26 | transforms.ToTensor(), 27 | transforms.Normalize((0.4914, 0.4822, 0.4465), 28 | (0.2023, 0.1994, 0.2010)), # R,G,B每层的归一化用到的均值和方差 29 | ]) 30 | 31 | transform_test = transforms.Compose([ 32 | transforms.ToTensor(), 33 | transforms.Normalize((0.4914, 0.4822, 0.4465), 34 | (0.2023, 0.1994, 0.2010)), 35 | ]) 36 | 37 | trainset = datasets.CIFAR10( 38 | root='./data', train=True, download=True, transform=transform_train) # 训练数据集 39 | train_loader = torch.utils.data.DataLoader( 40 | trainset, batch_size=args.batch_size*args.num_users, shuffle=True, num_workers=2) # 生成一个个batch进行批训练,组成batch的时候顺序打乱取 41 | 42 | testset = datasets.CIFAR10( 43 | root='./data', train=False, download=True, transform=transform_test) 44 | test_loader = torch.utils.data.DataLoader( 45 | testset, args.test_batch_size, shuffle=False, num_workers=2) 46 | return train_loader, test_loader 47 | 48 | 49 | def cifar100(args): 50 | transform_train = transforms.Compose([ 51 | transforms.RandomCrop(32, padding=4), # 先四周填充0,在吧图像随机裁剪成32*32 52 | transforms.RandomHorizontalFlip(), # 图像一半的概率翻转,一半的概率不翻转 53 | transforms.ToTensor(), 54 | transforms.Normalize((0.4914, 0.4822, 0.4465), 55 | (0.2023, 0.1994, 0.2010)), # R,G,B每层的归一化用到的均值和方差 56 | ]) 57 | 58 | transform_test = transforms.Compose([ 59 | transforms.ToTensor(), 60 | transforms.Normalize((0.4914, 0.4822, 0.4465), 61 | (0.2023, 0.1994, 0.2010)), 62 | ]) 63 | 64 | trainset = datasets.CIFAR100( 65 | root='./data', train=True, download=True, transform=transform_train) # 训练数据集 66 | train_loader = torch.utils.data.DataLoader( 67 | trainset, batch_size=args.batch_size*args.num_users, shuffle=True, num_workers=2) # 生成一个个batch进行批训练,组成batch的时候顺序打乱取 68 | 69 | testset = datasets.CIFAR100( 70 | root='./data', train=False, download=True, transform=transform_test) 71 | test_loader = torch.utils.data.DataLoader( 72 | testset, args.test_batch_size, shuffle=False, num_workers=2) 73 | return train_loader, test_loader 74 | 75 | 76 | def stl10(args): 77 | transform_train = transforms.Compose([ 78 | transforms.RandomCrop(96, padding=4), # 先四周填充0,在吧图像随机裁剪成32*32 79 | transforms.RandomHorizontalFlip(), # 图像一半的概率翻转,一半的概率不翻转 80 | transforms.ToTensor(), 81 | transforms.Normalize((0.4914, 0.4822, 0.4465), 82 | (0.2023, 0.1994, 0.2010)), # R,G,B每层的归一化用到的均值和方差 83 | ]) 84 | 85 | transform_test = transforms.Compose([ 86 | transforms.ToTensor(), 87 | transforms.Normalize((0.4914, 0.4822, 0.4465), 88 | (0.2023, 0.1994, 0.2010)), 89 | ]) 90 | 91 | trainset = datasets.STL10( 92 | root='./data', split='train', download=True, transform=transform_train) # 训练数据集 93 | train_loader = torch.utils.data.DataLoader( 94 | trainset, batch_size=args.batch_size*args.num_users, shuffle=True, num_workers=2) # 生成一个个batch进行批训练,组成batch的时候顺序打乱取 95 | 96 | testset = datasets.STL10( 97 | root='./data', split='test', download=True, transform=transform_test) 98 | test_loader = torch.utils.data.DataLoader( 99 | testset, args.test_batch_size, shuffle=False, num_workers=2) 100 | return train_loader, test_loader 101 | 102 | 103 | 104 | def svhn(args): 105 | transform_train = transforms.Compose([ 106 | transforms.RandomCrop(32, padding=4), # 先四周填充0,在吧图像随机裁剪成32*32 107 | transforms.RandomHorizontalFlip(), # 图像一半的概率翻转,一半的概率不翻转 108 | transforms.ToTensor(), 109 | transforms.Normalize((0.4914, 0.4822, 0.4465), 110 | (0.2023, 0.1994, 0.2010)), # R,G,B每层的归一化用到的均值和方差 111 | ]) 112 | 113 | transform_test = transforms.Compose([ 114 | transforms.ToTensor(), 115 | transforms.Normalize((0.4914, 0.4822, 0.4465), 116 | (0.2023, 0.1994, 0.2010)), 117 | ]) 118 | 119 | trainset = datasets.SVHN( 120 | root='./data', split='train', download=True, transform=transform_train) # 训练数据集 121 | train_loader = torch.utils.data.DataLoader( 122 | trainset, batch_size=args.batch_size*args.num_users, shuffle=True, num_workers=2) # 生成一个个batch进行批训练,组成batch的时候顺序打乱取 123 | 124 | testset = datasets.SVHN( 125 | root='./data', split='test', download=True, transform=transform_test) 126 | test_loader = torch.utils.data.DataLoader( 127 | testset, args.test_batch_size, shuffle=False, num_workers=2) 128 | return train_loader, test_loader 129 | 130 | 131 | def tinyimgnet(args): 132 | 133 | traindir = './tinyimgnet/train' 134 | testdir = './tinyimgnet/val' 135 | normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406], 136 | std=[0.229, 0.224, 0.225]) 137 | 138 | train_dataset = datasets.ImageFolder( 139 | traindir, 140 | transforms.Compose([ 141 | transforms.RandomResizedCrop(224), 142 | transforms.RandomHorizontalFlip(), 143 | transforms.ToTensor(), 144 | normalize, 145 | ]) 146 | ) 147 | train_sampler = None 148 | train_loader = torch.utils.data.DataLoader( 149 | train_dataset, batch_size=args.batch_size*args.num_users, shuffle=(train_sampler is None), 150 | num_workers=8, pin_memory=True, sampler=train_sampler) 151 | 152 | test_loader = torch.utils.data.DataLoader( 153 | datasets.ImageFolder(testdir, transforms.Compose([ 154 | transforms.Resize(256), 155 | transforms.CenterCrop(224), 156 | transforms.ToTensor(), 157 | normalize, 158 | ])), 159 | batch_size=args.test_batch_size, shuffle=False, 160 | num_workers=8, pin_memory=True) 161 | 162 | return train_loader, test_loader 163 | 164 | -------------------------------------------------------------------------------- /dqn.py: -------------------------------------------------------------------------------- 1 | import tensorflow.compat.v1 as tf 2 | import numpy as np 3 | import tflearn 4 | from collections import deque 5 | import random 6 | import ipdb as pdb 7 | from options import args_parser 8 | 9 | args = args_parser() 10 | # args.num_users = 10 11 | 12 | # setting for hidden layers 13 | Layer1 = 400 14 | Layer2 = 300 15 | 16 | class DeepQNetwork(object): 17 | """ 18 | Input to the network is the state, output is a vector of Q(s,a). 19 | """ 20 | 21 | def __init__(self, sess, state_dim, action_dim, learning_rate, tau, gamma, user_id): 22 | self.sess = sess 23 | self.s_dim = state_dim 24 | self.a_dim = action_dim 25 | self.learning_rate = learning_rate 26 | self.tau = tau 27 | self.gamma = gamma 28 | self.user_id = user_id 29 | 30 | # Create the critic network 31 | self.inputs, self.q_out = self.create_deep_q_network() 32 | 33 | self.network_params = tf.trainable_variables() 34 | 35 | # Target Network 36 | self.target_inputs, self.target_q_out = self.create_deep_q_network() 37 | 38 | self.target_network_params = tf.trainable_variables()[len(self.network_params):] 39 | 40 | # Op for periodically updating target network with online network 41 | # weights with regularization 42 | self.update_target_network_params = \ 43 | [self.target_network_params[i].assign(tf.multiply(self.network_params[i], self.tau) \ 44 | + tf.multiply(self.target_network_params[i], 1. - self.tau)) 45 | for i in range(len(self.target_network_params))] 46 | 47 | # Network target (y_i) 48 | self.target_Q = tf.placeholder(tf.float32, [None, self.a_dim]) 49 | 50 | # Define loss and optimization Op 51 | self.loss = tflearn.mean_square(self.target_Q, self.q_out) 52 | self.optimize = tf.train.AdamOptimizer(self.learning_rate).minimize(self.loss) 53 | 54 | def create_deep_q_network(self): 55 | inputs = tflearn.input_data(shape=[None, self.s_dim], name="input_" + str(self.user_id)) 56 | net = tflearn.fully_connected(inputs, Layer1) 57 | net = tflearn.layers.normalization.batch_normalization(net) 58 | net = tflearn.activations.elu(net) 59 | 60 | net = tflearn.fully_connected(net, Layer2) 61 | net = tflearn.layers.normalization.batch_normalization(net) 62 | net = tflearn.activations.elu(net) 63 | 64 | # linear layer connected to 1 output representing Q(s,a) 65 | # Weights are init to Uniform[-3e-3, 3e-3] 66 | # w_init = tflearn.initializations.uniform(minval=-0.003, maxval=0.003) 67 | q_out = tflearn.fully_connected(net, self.a_dim, name="output_" + str(self.user_id)) 68 | return inputs, q_out 69 | 70 | def train(self, inputs, target_Q): 71 | return self.sess.run([self.loss, self.optimize], feed_dict={ 72 | self.inputs: inputs, 73 | self.target_Q: target_Q 74 | }) 75 | 76 | def predict(self, inputs): 77 | q_out = self.sess.run(self.q_out, feed_dict={ 78 | self.inputs: inputs 79 | }) 80 | return np.argmax(q_out, axis=1), q_out 81 | 82 | def predict_target(self, inputs): 83 | q_out = self.sess.run(self.target_q_out, feed_dict={ 84 | self.target_inputs: inputs 85 | }) 86 | return np.argmax(q_out, axis=1), q_out 87 | 88 | def update_target_network(self): 89 | self.sess.run(self.update_target_network_params) 90 | 91 | class ReplayBuffer(object): 92 | 93 | def __init__(self, buffer_size, random_seed=123): 94 | """ 95 | The right side of the deque contains the most recent experiences 96 | """ 97 | self.buffer_size = buffer_size 98 | self.count = 0 99 | self.buffer = deque() 100 | random.seed(random_seed) 101 | 102 | def add(self, s, a, r, t, s2): 103 | experience = (s, a, r, t, s2) 104 | if self.count < self.buffer_size: 105 | self.buffer.append(experience) 106 | self.count += 1 107 | else: 108 | self.buffer.popleft() 109 | self.buffer.append(experience) 110 | 111 | def size(self): 112 | return self.count 113 | 114 | def sample_batch(self, batch_size): 115 | batch = [] 116 | 117 | if self.count < batch_size: 118 | batch = random.sample(self.buffer, self.count) 119 | else: 120 | batch = random.sample(self.buffer, batch_size) 121 | 122 | s_batch = np.array([_[0] for _ in batch]) 123 | a_batch = np.array([_[1] for _ in batch]) 124 | r_batch = np.array([_[2] for _ in batch]) 125 | t_batch = np.array([_[3] for _ in batch]) 126 | s2_batch = np.array([_[4] for _ in batch]) 127 | 128 | return s_batch, a_batch, r_batch, t_batch, s2_batch 129 | 130 | def clear(self): 131 | self.buffer.clear() 132 | self.count = 0 -------------------------------------------------------------------------------- /fcn.py: -------------------------------------------------------------------------------- 1 | # https://pytorch.org/tutorials/beginner/pytorch_with_examples.html 2 | 3 | import torch 4 | 5 | class FCN(torch.nn.Module): 6 | def __init__(self, D_in=784, H=256, num_classes=10): 7 | """ 8 | In the constructor we instantiate two nn.Linear modules and assign them as 9 | member variables. 10 | """ 11 | super(FCN, self).__init__() 12 | self.linear1 = torch.nn.Linear(D_in, H) 13 | self.linear2 = torch.nn.Linear(H, num_classes) 14 | 15 | def forward(self, x): 16 | """ 17 | In the forward function we accept a Tensor of input data and we must return 18 | a Tensor of output data. We can use Modules defined in the constructor as 19 | well as arbitrary operators on Tensors. 20 | """ 21 | x = x.view(-1, 28 * 28) 22 | h_relu = self.linear1(x).clamp(min=0) 23 | y_pred = self.linear2(h_relu) 24 | return y_pred 25 | -------------------------------------------------------------------------------- /federated_learning.py: -------------------------------------------------------------------------------- 1 | # FL相关 2 | import tflearn 3 | 4 | from qsgd_compressor import * 5 | from datetime import datetime 6 | from identical_compressor import * 7 | import torch.nn as nn 8 | import torch.optim as optim 9 | import time 10 | from fcn import FCN 11 | from resnet import * 12 | from dataloaders import mnist 13 | from ps_quantizer import * 14 | import os 15 | from logger import Logger 16 | 17 | from mec_env import MecTerm, MecTermDQN, MecSvrEnv 18 | from helper import * 19 | from agent import * 20 | import tensorflow as tf 21 | from pe import * 22 | import matplotlib 23 | import matplotlib.pyplot as plt 24 | 25 | from options import * 26 | 27 | # DDPG相关 28 | os.environ['CUDA_VISIBLE_DEVICES'] = '-1' 29 | 30 | # FL相关初始化 31 | os.environ['KMP_DUPLICATE_LIB_OK'] = 'True' 32 | 33 | # DQN相关设置 34 | tf.compat.v1.reset_default_graph() 35 | MAX_EPISODE = 2 36 | MAX_EPISODE_LEN = 2 37 | NUM_R = args.num_users # 天线数 跟信道数有关 38 | 39 | SIGMA2 = 1e-9 # 噪声平方 10 -9 40 | 41 | config = {'state_dim': 4, 'action_dim': 2}; 42 | train_config = {'minibatch_size': 64, 43 | 'actor_lr': 0.0001, 44 | 'tau': 0.001, 45 | 'critic_lr': 0.05, # 0.001 46 | 'gamma': 0.99, 47 | 'buffer_size': 250000, # 250000 48 | 'random_seed': int(time.perf_counter() * 1000 % 1000), 49 | 'sigma2': SIGMA2, 50 | 'epsilon': 0.5} # 0.5 51 | 52 | IS_TRAIN = False 53 | 54 | res_path = 'train/' 55 | model_fold = 'model/' 56 | model_path = 'model/train_model-q' 57 | 58 | # 创建目录,用来保存dqn模型 59 | if not os.path.exists(res_path): 60 | os.mkdir(res_path) 61 | if not os.path.exists(model_fold): 62 | os.mkdir(model_fold) 63 | 64 | init_path = '' 65 | 66 | # choose the vehicle for training 67 | Train_vehicle_ID = 1 68 | 69 | # action_bound是需要后面调的 70 | user_config = [{'id': '1', 'model': 'AR', 'num_r': NUM_R, 'action_bound': 1}] 71 | 72 | # 0. initialize the session object 73 | sess = tf.compat.v1.Session() 74 | 75 | # 1. include all user in the system according to the user_config 76 | user_list = []; 77 | for info in user_config: 78 | info.update(config) 79 | info['model_path'] = model_path 80 | info['meta_path'] = info['model_path'] + '.meta' 81 | info['init_path'] = init_path 82 | info['action_level'] = 5 83 | user_list.append(MecTermDQN(sess, info, train_config)) 84 | print('Initialization OK!----> user ') 85 | 86 | # 2. create the simulation env 87 | env = MecSvrEnv(user_list, Train_vehicle_ID, SIGMA2, MAX_EPISODE_LEN) 88 | 89 | sess.run(tf.compat.v1.global_variables_initializer()) 90 | 91 | tflearn.config.is_training(is_training=IS_TRAIN, session=sess) 92 | 93 | env.init_target_network() 94 | 95 | res_r = [] # 每一步的平均奖励 96 | res_p = [] # 每个回合的平均动作 97 | 98 | args = args_parser() 99 | if args.logdir is None: 100 | assert False, "The logdir is not defined" 101 | LOGGER = Logger(args.logdir) 102 | 103 | args.no_cuda = args.no_cuda or not torch.cuda.is_available() 104 | 105 | torch.manual_seed(args.seed) 106 | device = torch.device("cpu" if args.no_cuda else "cuda") 107 | 108 | # train_loader, test_loader = mnist(args) # 235 10 109 | # model = FCN(num_classes=args.num_classes).to(device) 110 | # optimizer = optim.SGD(model.parameters(), lr=0.1, 111 | # momentum=args.momentum, weight_decay=args.weight_decay) 112 | ave_reward_ep = [] 113 | ave_ground_ep = [] 114 | ave_T_ep = [] 115 | ave_delay_ep = [] 116 | ave_error_ep = [] 117 | reward_step = [] 118 | train_loss, testing_accuracy = [], [] 119 | maxs = [] 120 | mins = [] 121 | # 开始训练DQN episode 122 | for episode in range(1, MAX_EPISODE): 123 | print(f'\n | Global Training Round/episode : {episode} |\n') 124 | # model.train() 125 | # batch_size = args.batch_size # 32 126 | # num_users = args.num_users # 8 127 | # train_data = list() 128 | # iteration = len(train_loader.dataset)//(num_users*batch_size) + \ 129 | # int(len(train_loader.dataset) % (num_users*batch_size) != 0) # 235 130 | # 记录间隔 # [23, 46, 69, 92, 115, 138, 161, 184, 207, 230] 131 | # log_interval = [iteration // args.log_epoch * (i+1) for i in range(args.log_epoch)] 132 | # Training 133 | 134 | tr_step_loss = [] 135 | tr_step_acc = [] 136 | val_acc_list, net_list = [], [] 137 | cv_loss, cv_acc = [], [] 138 | print_every = 2 139 | val_loss_pre, counter = 0, 0 140 | 141 | # DQN相关 142 | plt.ion() # 打开交互模式,画动态图 143 | cur_init_ds_ep = env.reset() # 环境重置 144 | cur_r_ep = 0 # 一个回合的总奖励 145 | cur_g_ep = 0 146 | cur_T_ep = 0 147 | cur_d_ep = 0 148 | cur_e_ep = 0 149 | step_cur_r_ep = [] 150 | count = 0 151 | # here the real batch size is (num_users * batch_size) 152 | # DQN时间步 & FL的一个通信轮次 153 | for epoch in range(1, MAX_EPISODE_LEN): 154 | i = Train_vehicle_ID - 1 155 | # if epoch == 1: 156 | # q_level1 = 1 157 | # if epoch % 5 == 0: 158 | actions = user_list[i].predict(True) 159 | print('step is : {}, q_level is: {}, power is: {}'.format(epoch, actions[0], actions[1])) 160 | # quantizer = Quantizer(QSGDCompressor, model.parameters(), args, actions[0]) 161 | # para = list(model.parameters()) 162 | # ini_para = para 163 | # FL本地训练迭代 164 | # for batch_idx, (data, target) in enumerate(train_loader): 165 | # user_batch_size = len(data) // num_users # 32 = 256//8 166 | # train_data.clear() 167 | # 给每个用户分配训练数据 168 | # for user_id in range(num_users-1): 169 | # train_data.append((data[user_id*user_batch_size:(user_id+1)*user_batch_size], 170 | # target[user_id*user_batch_size:(user_id+1)*user_batch_size])) 171 | # train_data.append((data[(num_users-1)*user_batch_size:], 172 | # target[(num_users-1)*user_batch_size:])) 173 | 174 | # 计算一次迭代的全局损失 175 | # loss = one_iter(model, device, LOSS_FUNC, optimizer, 176 | # quantizer, train_data, num_users, epoch=epoch) 177 | 178 | # 记录一个epoch的2个损失和测试精度 179 | # if (batch_idx+1) in log_interval: 180 | # train_loss.append(loss.item()) 181 | # test_accuracy = test(args, model, device, test_loader) 182 | # testing_accuracy.append(test_accuracy*100) 183 | # print('Train Episode: {} Train epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}\t Test Accuracy: {:.2f}%'.format( 184 | # episode, 185 | # epoch, 186 | # batch_idx * num_users * batch_size + len(data), 187 | # len(train_loader.dataset), 188 | # 100. * batch_idx / len(train_loader), 189 | # loss.item(), 190 | # test_accuracy*100)) 191 | 192 | # info = {'loss': loss.item(), 'accuracy(%)': test_accuracy*100} 193 | 194 | # for tag, value in info.items(): 195 | # LOGGER.scalar_summary( 196 | # tag, value, iteration*(epoch-1)+batch_idx) 197 | # para1 = list(model.parameters()) 198 | # maxx = max(para1[0].detach().numpy().reshape(1,200704).flatten()) 199 | # minn = min(abs(para1[0].detach().numpy().reshape(1,200704).flatten())) 200 | # maxs.append(maxx) 201 | # mins.append(minn) 202 | 203 | # print('Train Epoch: {} Done.\tLoss: {:.6f}'.format(epoch, loss.item())) 204 | 205 | reward = 0 206 | trs = 0 207 | deltas = 0 208 | diss = 0 209 | mini_ground = 0 210 | T_total = 0 211 | 212 | max_len = 1000 # MAX_EPISODE_LEN 213 | count += 1 214 | 215 | i = Train_vehicle_ID - 1 216 | # feedback the sinr to each user 217 | [reward, mini_ground, T_total, trs, deltas, diss, q_level, power, delay, q_error] = user_list[i].feedback( 218 | actions[0], actions[1]) 219 | print("reward is: {}, delay is: {}".format(reward, delay)) 220 | 221 | reward_step.append(reward) 222 | 223 | user_list[i].AgentUpdate(count >= max_len) # 训练数据个数逐渐增加 大于buffer的大小时 进行更新agent 224 | cur_r = reward 225 | cur_mg = mini_ground 226 | cur_T = T_total 227 | cur_q = q_level 228 | cur_d = delay 229 | cur_e = q_error 230 | done = count >= max_len # max_len即为MAX_EPISODE_LEN 231 | 232 | cur_r_ep += cur_r # 一个回合的总奖励 所有step的奖励之和 233 | cur_g_ep += cur_mg 234 | cur_T_ep += cur_T 235 | cur_d_ep += cur_d 236 | cur_e_ep += cur_e 237 | # for m in range(args.num_users): 238 | # cur_p_ep[m] += cur_p[m] 239 | 240 | # if done: # 一个episode结束 241 | # res_r.append(cur_r_ep / MAX_EPISODE_LEN) # 后面为了存储进模型 每一步的平均奖励 242 | 243 | # cur_p_ep1 = [0] * args.num_users 244 | # for m in range(args.num_users): 245 | # cur_p_ep1[m] = cur_p_ep[m] / MAX_EPISODE_LEN # 一个回合里平均每一个step的动作 246 | # res_p.append(cur_p_ep1) # 用来存储每个回合的平均动作 247 | 248 | print("episode = ", episode) 249 | print("r = ", cur_r_ep / MAX_EPISODE_LEN) 250 | print("delay = ", cur_d_ep / MAX_EPISODE_LEN) 251 | print("error = ", cur_e_ep / MAX_EPISODE_LEN) 252 | ave_reward_ep.append(cur_r_ep / MAX_EPISODE_LEN) 253 | ave_ground_ep.append(cur_g_ep / MAX_EPISODE_LEN) 254 | ave_T_ep.append(cur_T_ep / MAX_EPISODE_LEN) 255 | ave_delay_ep.append(cur_d_ep / MAX_EPISODE_LEN) 256 | ave_error_ep.append(cur_e_ep / MAX_EPISODE_LEN) 257 | # print("p_lambda = ", cur_p_ep1) # this is wrong 258 | # print("cur_r_ep = ", cur_r_ep) 259 | 260 | # line_reward = ax.plot(range(0, MAX_EPISODE), cur_r_ep, '#ff7f0e', label='reward', lw=1) 261 | # line_pro = ax2.plot(range(0, MAX_EPISODE), step_cur_r_ep[0], '#ff7f0e', label='第1辆车的the probility(选择每辆车的概率,即动作输出)', lw=1) 262 | plt.ioff() 263 | # upper = max(maxs) 264 | # lower = min(mins) 265 | # print("upper is", upper) 266 | # print("lower is", lower) 267 | # DDPG模型保存 268 | name = res_path + 'a1bathnormal_env_max_ep2000_tep_1000_buffersize250000_maxstep500000_prestep25000_lr0.05_plot_minig+T_tfacter0.5_num4' 269 | # np.savez(name, train_loss, testing_accuracy, ave_reward_ep, ave_delay_ep, ave_error_ep) # 保存平均每一步的q_level和奖励 # 为了后面的画图 270 | np.savez(name, ave_reward_ep, ave_ground_ep, ave_T_ep, ave_delay_ep, ave_error_ep) 271 | 272 | tflearn.config.is_training(is_training=False, session=sess) 273 | # Create a saver object which will save all the variables # 即保存模型参数 274 | saver = tf.compat.v1.train.Saver() 275 | saver.save(sess, model_path) 276 | sess.close() 277 | 278 | # if args.save_model: 279 | # filename = "saved_{}_{}.pt".format(args.network, datetime.now()) 280 | # torch.save(model.state_dict(), filename) 281 | 282 | matplotlib.use('TkAgg') 283 | os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" 284 | 285 | ''' 286 | plt.figure() 287 | plt.plot(range(len(ave_reward_ep)), ave_reward_ep, color='b') 288 | plt.ylabel('Training reward') 289 | plt.xlabel('Episode') 290 | plt.rcParams['axes.unicode_minus']=False 291 | plt.show() 292 | # plt.savefig('train_reward.png') 293 | 294 | plt.figure() 295 | # plt.title('Training loss') 296 | plt.plot(range(len(train_loss)), train_loss, color='b') 297 | plt.ylabel('Training loss') 298 | plt.xlabel('Episode') 299 | plt.show() 300 | # plt.savefig('train_loss.png') 301 | ''' 302 | p_e() 303 | ''' 304 | plt.figure() 305 | # plt.title('Test Accuracy') 306 | plt.plot(range(len(testing_accuracy)), testing_accuracy, color='r') 307 | plt.ylabel('Testing Accuracy') 308 | plt.xlabel('Episode') 309 | plt.show() 310 | # plt.savefig('train_accuracy.png') 311 | 312 | plt.figure() 313 | # plt.title('Test Accuracy') 314 | plt.plot(range(len(ave_delay_ep)), ave_delay_ep, color='r') 315 | plt.ylabel('Average delay') 316 | plt.xlabel('Episode') 317 | plt.show() 318 | 319 | plt.figure() 320 | # plt.title('Test Accuracy') 321 | plt.plot(range(len(ave_error_ep)), ave_error_ep, color='r') 322 | plt.ylabel('Average error') 323 | plt.xlabel('Episode') 324 | plt.show() 325 | ''' 326 | -------------------------------------------------------------------------------- /helper.py: -------------------------------------------------------------------------------- 1 | import scipy.stats as stats 2 | import os 3 | import numpy as np 4 | import tensorflow as tf 5 | import ipdb as pdb 6 | import matplotlib.pyplot as plt 7 | from options import args_parser 8 | import torch.nn as nn 9 | import torch 10 | 11 | args = args_parser() 12 | LOSS_FUNC = nn.CrossEntropyLoss() 13 | 14 | # 进行AR信道建模 15 | def complexGaussian(row=1, col=1, amp=1.0): 16 | real = np.random.normal(size=[row, col])[0] * np.sqrt(0.5) 17 | # np.random.normal(size=[row,col])生成数据2维 第一维度包含row个数据 每个数据中又包含col个数据 18 | # np.sqrt(A)求A的开方 19 | img = np.random.normal(size=[row, col])[0] * np.sqrt(0.5) 20 | return amp * (real + 1j * img) # amp相当于系数 后面计算时替换成了根号下1-rou平方 (real + 1j*img)即为误差向量e(t) 21 | 22 | 23 | class ARModel(object): 24 | """docstring for AR channel Model""" 25 | 26 | def __init__(self, n_t=1, n_r=1, seed=123): 27 | self.n_t = n_t 28 | self.n_r = n_r 29 | np.random.seed([seed]) 30 | self.H1 = complexGaussian(self.n_t, self.n_r) # self.H就是hi 即信道增益。初始化定义. 31 | 32 | def sampleCh(self, dis, rho): 33 | for i in range(args.num_users): 34 | # self.H1[i] = rho[i] * self.H1[i] + complexGaussian(self.n_t, self.n_r, np.sqrt(1 - rho[i] * rho[i])) # 这是信道更新的方式 35 | self.H1[i] = rho[i] * self.H1[i] + complexGaussian(1, 1, np.sqrt(1 - rho[i] * rho[i])) #因为这里是一个一个算的 所以是一个一个复高斯数生成的 所以可以直接写成1,1 36 | return self.H1 37 | 38 | def one_iter(model, device, loss_func, optimizer, quantizer, train_data, num_users, epoch): 39 | assert num_users == len(train_data) 40 | model.train() 41 | user_gradients = [list() for _ in model.parameters()] # 4层梯度 42 | all_losses = [] 43 | for user_id in range(num_users): 44 | optimizer.zero_grad() 45 | _data, _target = train_data[user_id] 46 | data, target = _data.to(device), _target.to(device) 47 | pred = model(data) 48 | loss = loss_func(pred, target) 49 | # print(loss) 50 | all_losses.append(loss) 51 | loss.backward() 52 | #parameter = list(model.parameters()) 53 | quantizer.record(user_id, epoch=epoch) 54 | quantizer.apply() 55 | # parameter = list(model.parameters()) 56 | optimizer.step() 57 | #parameter1 = list(model.parameters()) 58 | return torch.stack(all_losses).mean() 59 | 60 | def test(args, model, device, test_loader): 61 | model.eval() 62 | test_loss = 0 63 | correct = 0 64 | with torch.no_grad(): # 在该模块下,所有计算得出的tensor的requires_grad都自动设置为False 65 | for data, target in test_loader: 66 | data, target = data.to(device), target.to(device) 67 | output = model(data) 68 | # sum up batch loss 69 | test_loss += LOSS_FUNC(output, target).sum().item() 70 | # get the index of the max log-probability 71 | pred = output.argmax(dim=1, keepdim=True) 72 | correct += pred.eq(target.view_as(pred)).sum().item() 73 | 74 | test_loss /= len(test_loader.dataset) 75 | 76 | #print('\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.2f}%)\n'.format( 77 | # test_loss, correct, len(test_loader.dataset), 78 | # 100. * correct / len(test_loader.dataset))) 79 | return correct / len(test_loader.dataset) -------------------------------------------------------------------------------- /identical_compressor.py: -------------------------------------------------------------------------------- 1 | class IdenticalCompressor(object): 2 | def __init__(self, size=None, shape=None, args=None): 3 | pass 4 | 5 | @staticmethod 6 | def compress(vec): 7 | return vec.clone() 8 | 9 | @staticmethod 10 | def decompress(signature): 11 | return signature 12 | -------------------------------------------------------------------------------- /line_chart.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | 3 | # 读取txt文件中的数据 4 | data = [] 5 | with open('opt_weight/acc/dqn_0.1.txt', 'r') as file: 6 | for line in file: 7 | data.append(float(line.strip())) 8 | x = list(range(1, len(data) + 1)) 9 | y = data 10 | 11 | data1 = [] 12 | with open('opt_weight/acc/dqn_0.3.txt', 'r') as file: 13 | for line in file: 14 | data1.append(float(line.strip())) 15 | x1 = list(range(1, len(data1) + 1)) 16 | y1 = data1 17 | 18 | data2 = [] 19 | with open('opt_weight/acc/dqn_0.5.txt', 'r') as file: 20 | for line in file: 21 | data2.append(float(line.strip())) 22 | x2 = list(range(1, len(data2) + 1)) 23 | y2 = data2 24 | 25 | data3 = [] 26 | with open('opt_weight/acc/dqn_0.7.txt', 'r') as file: 27 | for line in file: 28 | data3.append(float(line.strip())) 29 | x3 = list(range(1, len(data3) + 1)) 30 | y3 = data3 31 | 32 | data4 = [] 33 | with open('opt_weight/acc/dqn_0.9.txt', 'r') as file: 34 | for line in file: 35 | data4.append(float(line.strip())) 36 | x4 = list(range(1, len(data4) + 1)) 37 | y4 = data4 38 | 39 | plt.plot(x, y, label='w1=0.1', linestyle='-.', color='g', lw=1.5) 40 | plt.plot(x1, y1, label='w1=0.3', linestyle=(0, (1, 2, 3)), color='m', lw=1.5) 41 | plt.plot(x2, y2, label='w1=0.5', linestyle='-', color='r', lw=1.5 ) 42 | plt.plot(x3, y3, label='w1=0.7', linestyle='--', color='#66CCFF', lw=1.5) 43 | plt.plot(x4, y4, label='w1=0.9', linestyle=':', color='#CC6600', lw=1.5) 44 | plt.legend() 45 | plt.grid(linestyle=':') 46 | plt.legend() 47 | plt.ylabel("Test accuracy") 48 | plt.xlabel("Episode") 49 | plt.savefig('test_acc_w.eps', format='eps') 50 | plt.show() -------------------------------------------------------------------------------- /logger.py: -------------------------------------------------------------------------------- 1 | # Code referenced from https://gist.github.com/gyglim/1f8dfb1b5c82627ae3efcfbbadb9f514 2 | import tensorflow.compat.v1 as tf 3 | import numpy as np 4 | import scipy.misc 5 | try: 6 | from StringIO import StringIO # Python 2.7 7 | except ImportError: 8 | from io import BytesIO # Python 3.x 9 | 10 | tf.disable_eager_execution() 11 | class Logger(object): 12 | 13 | def __init__(self, log_dir): 14 | """Create a summary writer logging to log_dir.""" 15 | self.writer = tf.summary.FileWriter(log_dir) 16 | 17 | def scalar_summary(self, tag, value, step): 18 | """Log a scalar variable.""" 19 | summary = tf.Summary(value=[tf.Summary.Value(tag=tag, simple_value=value)]) 20 | self.writer.add_summary(summary, step) 21 | 22 | def image_summary(self, tag, images, step): 23 | """Log a list of images.""" 24 | 25 | img_summaries = [] 26 | for i, img in enumerate(images): 27 | # Write the image to a string 28 | try: 29 | s = StringIO() 30 | except: 31 | s = BytesIO() 32 | scipy.misc.toimage(img).save(s, format="png") 33 | 34 | # Create an Image object 35 | img_sum = tf.Summary.Image(encoded_image_string=s.getvalue(), 36 | height=img.shape[0], 37 | width=img.shape[1]) 38 | # Create a Summary value 39 | img_summaries.append(tf.Summary.Value(tag='%s/%d' % (tag, i), image=img_sum)) 40 | 41 | # Create and write Summary 42 | summary = tf.Summary(value=img_summaries) 43 | self.writer.add_summary(summary, step) 44 | 45 | def histo_summary(self, tag, values, step, bins=1000): 46 | """Log a histogram of the tensor of values.""" 47 | 48 | # Create a histogram using numpy 49 | counts, bin_edges = np.histogram(values, bins=bins) 50 | 51 | # Fill the fields of the histogram proto 52 | hist = tf.HistogramProto() 53 | hist.min = float(np.min(values)) 54 | hist.max = float(np.max(values)) 55 | hist.num = int(np.prod(values.shape)) 56 | hist.sum = float(np.sum(values)) 57 | hist.sum_squares = float(np.sum(values**2)) 58 | 59 | # Drop the start of the first bin 60 | bin_edges = bin_edges[1:] 61 | 62 | # Add bin edges and counts 63 | for edge in bin_edges: 64 | hist.bucket_limit.append(edge) 65 | for c in counts: 66 | hist.bucket.append(c) 67 | 68 | # Create and write Summary 69 | summary = tf.Summary(value=[tf.Summary.Value(tag=tag, histo=hist)]) 70 | self.writer.add_summary(summary, step) 71 | self.writer.flush() -------------------------------------------------------------------------------- /model/__pycache__/pe.cpython-38.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/model/__pycache__/pe.cpython-38.pyc -------------------------------------------------------------------------------- /model/checkpoint: -------------------------------------------------------------------------------- 1 | model_checkpoint_path: "train_model-q" 2 | all_model_checkpoint_paths: "train_model-q" 3 | -------------------------------------------------------------------------------- /model/train_model-q.data-00000-of-00001: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/model/train_model-q.data-00000-of-00001 -------------------------------------------------------------------------------- /model/train_model-q.index: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/model/train_model-q.index -------------------------------------------------------------------------------- /model/train_model-q.meta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/model/train_model-q.meta -------------------------------------------------------------------------------- /opt_weight/acc/dqn_0.1.txt: -------------------------------------------------------------------------------- 1 | 2.907000000000000139e-01 2 | 3.250032236901025939e-01 3 | 3.438399801960485558e-01 4 | 3.853627144847479591e-01 5 | 4.096424179230718221e-01 6 | 4.297768061402184592e-01 7 | 4.425088457481199389e-01 8 | 4.543526035229121240e-01 9 | 4.647158915758551889e-01 10 | 4.735987099069493556e-01 11 | 4.815932464049339501e-01 12 | 4.889955950141790519e-01 13 | 4.999510709558618315e-01 14 | 5.087518781410144131e-01 15 | 5.191151661939575890e-01 16 | 5.259253269144630316e-01 17 | 5.348901563914986168e-01 18 | 5.452534444444417927e-01 19 | 5.538401688311660465e-01 20 | 5.591698598298225908e-01 21 | 5.650917387172186279e-01 22 | 5.713097115489843558e-01 23 | 5.769354964920104800e-01 24 | 5.807847177688180151e-01 25 | 5.846339390456255503e-01 26 | 5.923323815992403985e-01 27 | 5.982542604866364355e-01 28 | 6.047683272627720763e-01 29 | 6.073156073875015659e-01 30 | 6.114609226086787919e-01 31 | 6.164945196629653124e-01 32 | 6.231261518136999022e-01 33 | 6.284558428123564466e-01 34 | 6.331933459222732763e-01 35 | 6.391152248096693134e-01 36 | 6.457844767046464485e-01 37 | 6.490415100927142689e-01 38 | 6.511141677033028818e-01 39 | 6.523208088271853500e-01 40 | 6.551631047917583217e-01 41 | 6.581240442354564513e-01 42 | 6.626840968801284149e-01 43 | 6.687173024995409776e-01 44 | 6.725665237763484017e-01 45 | 6.743430874425673238e-01 46 | 6.761269678558946561e-01 47 | 6.796800951883322783e-01 48 | 6.832332225207699006e-01 49 | 6.873785377419472375e-01 50 | 6.883318652037586638e-01 51 | 6.915888985918264842e-01 52 | 6.939576501467848990e-01 53 | 6.989262015723695098e-01 54 | 7.024793289048071321e-01 55 | 7.051441744041354598e-01 56 | 7.081051138478334783e-01 57 | 7.101777714584219803e-01 58 | 7.128426169577503080e-01 59 | 7.160996503458180173e-01 60 | 7.184433080393392013e-01 61 | 7.202198717055580124e-01 62 | 7.217030792489738111e-01 63 | 7.238008307209997660e-01 64 | 7.283062074107227168e-01 65 | 7.322277910633406828e-01 66 | 7.355599246487859455e-01 67 | 7.376715466155804313e-01 68 | 7.394815083014041335e-01 69 | 7.415931302681985082e-01 70 | 7.437047522349929940e-01 71 | 7.452130536398460237e-01 72 | 7.470230153256697259e-01 73 | 7.476263358876110710e-01 74 | 7.485313167305228665e-01 75 | 7.494362975734348842e-01 76 | 7.512462592592585864e-01 77 | 7.537580758487978372e-01 78 | 7.552663772536510889e-01 79 | 7.558696978155922119e-01 80 | 7.572794648786711491e-01 81 | 7.596927471264360854e-01 82 | 7.608993882503186645e-01 83 | 7.621060293742010217e-01 84 | 7.636143307790542734e-01 85 | 7.645193116219660689e-01 86 | 7.657259527458486481e-01 87 | 7.660276130268192096e-01 88 | 7.687425555555549295e-01 89 | 7.708541775223493042e-01 90 | 7.726641392081731174e-01 91 | 7.741724406130261471e-01 92 | 7.759824022988498493e-01 93 | 7.786973448275854581e-01 94 | 7.802056462324385988e-01 95 | 7.808089667943797219e-01 96 | 7.814122873563210669e-01 97 | 7.835239093231155527e-01 98 | 7.852431499062856313e-01 99 | 7.870531115921092224e-01 100 | 7.876564321540504565e-01 101 | 7.886521340996160978e-01 102 | 7.889537943805867704e-01 103 | 7.910654163473811451e-01 104 | 7.910654163473811451e-01 105 | 7.931770383141755199e-01 106 | 7.928753780332048473e-01 107 | 7.955903205619404561e-01 108 | 7.955903205619406782e-01 109 | 7.958919808429111287e-01 110 | 7.952886602809697836e-01 111 | 7.964953014048523627e-01 112 | 7.996170829974600380e-01 113 | 8.014270446832837402e-01 114 | 8.014270446832837402e-01 115 | 8.022268467432942529e-01 116 | 8.028301673052355980e-01 117 | 8.049417892720299728e-01 118 | 8.061484303959124409e-01 119 | 8.082600523627068156e-01 120 | 8.091650332056187223e-01 121 | 8.100700140485305178e-01 122 | 8.100700140485305178e-01 123 | 8.118799757343543311e-01 124 | 8.121816360153250036e-01 125 | 8.130866168582366882e-01 126 | 8.134210935462981018e-01 127 | 8.143533244596996568e-01 128 | 8.149566450216410018e-01 129 | 8.155488329103804945e-01 130 | 8.164371147434899001e-01 131 | 8.179559672090302991e-01 132 | 8.188392643180533170e-01 133 | 8.185270529763953862e-01 134 | 8.182148416347373443e-01 135 | 8.179237324144540411e-01 136 | 8.182359437561119719e-01 137 | 8.185376040370826445e-01 138 | 8.185376040370826445e-01 139 | 8.191297919258223592e-01 140 | 8.182248110829104526e-01 141 | 8.194091868603896600e-01 142 | 8.202974686934990656e-01 143 | 8.230124112222346744e-01 144 | 8.233085051666044762e-01 145 | 8.221191446650387702e-01 146 | 8.223923916504909393e-01 147 | 8.230129928347489354e-01 148 | 8.242196339586315146e-01 149 | 8.248513678160911411e-01 150 | 8.248513678160911411e-01 151 | 8.263145569156233883e-01 152 | 8.268671988356430802e-01 153 | 8.268671988356430802e-01 154 | 8.275156317029050967e-01 155 | 8.281078195916448115e-01 156 | 8.296161209964978411e-01 157 | 8.299177812774685137e-01 158 | 8.293762720306506742e-01 159 | 8.305044028296072467e-01 160 | 8.305044028296073577e-01 161 | 8.317110439534897148e-01 162 | 8.317895542784156104e-01 163 | 8.332082126851411141e-01 164 | 8.338115332470824592e-01 165 | 8.344148538090236933e-01 166 | 8.345044968071512193e-01 167 | 8.350126080343640567e-01 168 | 8.356159285963054018e-01 169 | 8.367106613756570832e-01 170 | 8.374091912723266029e-01 171 | 8.377108515532972755e-01 172 | 8.384260804597692962e-01 173 | 8.392080202849486747e-01 174 | 8.401130011278606924e-01 175 | 8.405821479988677680e-01 176 | 8.413085095785414191e-01 177 | 8.407051890166002961e-01 178 | 8.410012829609700979e-01 179 | 8.414592971587756542e-01 180 | 8.434200464248334805e-01 181 | 8.440122343135730842e-01 182 | 8.441575406777087620e-01 183 | 8.444536346220785639e-01 184 | 8.450458225108180565e-01 185 | 8.441408416679063720e-01 186 | 8.439956204242730076e-01 187 | 8.438559655172405138e-01 188 | 8.444592860791818589e-01 189 | 8.444592860791818589e-01 190 | 8.445989409862142416e-01 191 | 8.461072423910672713e-01 192 | 8.465485575790704376e-01 193 | 8.470122232339792889e-01 194 | 8.465485575790704376e-01 195 | 8.470122232339791779e-01 196 | 8.467105629530086164e-01 197 | 8.468725683269467952e-01 198 | 8.471742286079174677e-01 199 | 8.476044111227188926e-01 200 | 8.482077316846602377e-01 201 | 8.488110522466013608e-01 202 | 8.492858505747117315e-01 203 | 8.500009943606814389e-01 204 | 8.503026546416521114e-01 205 | 8.512076354845640180e-01 206 | 8.507941519795649832e-01 207 | 8.510958122605355447e-01 208 | 8.510958122605356557e-01 209 | 8.520007931034474513e-01 210 | 8.521014836542741833e-01 211 | 8.524031439352448558e-01 212 | 8.527048042162155284e-01 213 | 8.532074342273299195e-01 214 | 8.520007931034475623e-01 215 | 8.520959173176733126e-01 216 | 8.520959173176733126e-01 217 | 8.539058790034971258e-01 218 | 8.542019729478669277e-01 219 | 8.551069537907788343e-01 220 | 8.554086140717495068e-01 221 | 8.559223767560656393e-01 222 | 8.556207164750949667e-01 223 | 8.556207164750949667e-01 224 | 8.554030477351486361e-01 225 | 8.554814729395721074e-01 226 | 8.558559920883652694e-01 227 | 8.557720005473411495e-01 228 | 8.544869342190350991e-01 229 | 8.520007931034475623e-01 230 | 8.513974725415062172e-01 231 | 8.520007931034475623e-01 232 | 8.544869342190350991e-01 233 | 8.544869342190350991e-01 234 | 8.541852739380644266e-01 235 | 8.535090945083005920e-01 236 | 8.547885945000057717e-01 237 | 8.547885945000057717e-01 238 | 8.553919150619470058e-01 239 | 8.559841029506864984e-01 240 | 8.574924043555397501e-01 241 | 8.577940646365102006e-01 242 | 8.577323384418892305e-01 243 | 8.586373192848011371e-01 244 | 8.592967997047625817e-01 245 | 8.592967997047625817e-01 246 | 8.586934791428212366e-01 247 | 8.589389795657718096e-01 248 | 8.592967997047625817e-01 249 | 8.599507137881232666e-01 250 | 8.590457329452112489e-01 251 | 8.592912333681615999e-01 252 | 8.592912333681618220e-01 253 | 8.601962142110736176e-01 254 | 8.601962142110736176e-01 255 | 8.592406398467423712e-01 256 | 8.592912333681618220e-01 257 | 8.592912333681615999e-01 258 | 8.598945539301029450e-01 259 | 8.595423001277131547e-01 260 | 8.595928936491324945e-01 261 | 8.607995347730149627e-01 262 | 8.620061758968974308e-01 263 | 8.616539220945074184e-01 264 | 8.610956287173846535e-01 265 | 8.598889875935021854e-01 266 | 8.598889875935021854e-01 267 | 8.607489412515955118e-01 268 | 8.616933829427252389e-01 269 | 8.626378246338547440e-01 270 | 8.623361643528840714e-01 271 | 8.622967035046663620e-01 272 | 8.628605632183899976e-01 273 | 8.625983637856369235e-01 274 | 8.632016843475781576e-01 275 | 8.626378246338547440e-01 276 | 8.619950432236956894e-01 277 | 8.620233713987118795e-01 278 | 8.613805899885528250e-01 279 | 8.626155592874513722e-01 280 | 8.622855708314647316e-01 281 | 8.635205401303632788e-01 282 | 8.631905516743766382e-01 283 | 8.640955325172884338e-01 284 | 8.640955325172884338e-01 285 | 8.650005133602003404e-01 286 | 8.646988530792296679e-01 287 | 8.652738454661550449e-01 288 | 8.652738454661549339e-01 289 | 8.661848891376795478e-01 290 | 8.664981785838637984e-01 291 | 8.662192801413083343e-01 292 | 8.656098967507542818e-01 293 | 8.652966073045701423e-01 294 | 8.655755057471256064e-01 295 | 8.655755057471256064e-01 296 | 8.655755057471256064e-01 297 | 8.661848891376795478e-01 298 | 8.664865494186502204e-01 299 | 8.670898699805914545e-01 300 | 8.670838071519787471e-01 301 | 8.682798120946714215e-01 302 | 8.688831326566127666e-01 303 | 8.694864532185540007e-01 304 | 8.691954291187731219e-01 305 | 8.691954291187731219e-01 306 | 8.691903592741841988e-01 307 | 8.685931015408557831e-01 308 | 8.679958438075271454e-01 309 | 8.674036559187875417e-01 310 | 8.682919377518970583e-01 311 | 8.691802195850062418e-01 312 | 8.703645953624855602e-01 313 | 8.703645953624855602e-01 314 | 8.706606893068554731e-01 315 | 8.706606893068552511e-01 316 | 8.712528771955949658e-01 317 | 8.712528771955949658e-01 318 | 8.715489711399646566e-01 319 | 8.715489711399647677e-01 320 | 8.715651736577553210e-01 321 | 8.715651736577553210e-01 322 | 8.715651736577553210e-01 323 | 8.706601928148435254e-01 324 | 8.703803013882641659e-01 325 | 8.697987496807142449e-01 326 | 8.704020702426555900e-01 327 | 8.704020702426555900e-01 328 | 8.707037305236261515e-01 329 | 8.707037305236261515e-01 330 | 8.707037305236262625e-01 331 | 8.715758098389451147e-01 332 | 8.727495494352345284e-01 333 | 8.730512097162052010e-01 334 | 8.724590218274655973e-01 335 | 8.715707399943561917e-01 336 | 8.712528771955949658e-01 337 | 8.709729857690157173e-01 338 | 8.709891882868062707e-01 339 | 8.710053908045968241e-01 340 | 8.709891882868062707e-01 341 | 8.709891882868062707e-01 342 | 8.709891882868062707e-01 343 | 8.710053908045968241e-01 344 | 8.713070510855674966e-01 345 | 8.716087113665381692e-01 346 | 8.719103716475087307e-01 347 | 8.722120319284792922e-01 348 | 8.725136922094499647e-01 349 | 8.721958294106887388e-01 350 | 8.715763063309570624e-01 351 | 8.712746460499863899e-01 352 | 8.718941691297180663e-01 353 | 8.725136922094499647e-01 354 | 8.728153524904206373e-01 355 | 8.719103716475086197e-01 356 | 8.713070510855674966e-01 357 | 8.707037305236262625e-01 358 | 8.716087113665381692e-01 359 | 8.722120319284792922e-01 360 | 8.722120319284792922e-01 361 | 8.722120319284792922e-01 362 | 8.719103716475086197e-01 363 | 8.722120319284792922e-01 364 | 8.719103716475087307e-01 365 | 8.719103716475087307e-01 366 | 8.719103716475087307e-01 367 | 8.725136922094499647e-01 368 | 8.731170127713911988e-01 369 | 8.737203333333324329e-01 370 | 8.737203333333324329e-01 371 | 8.737203333333324329e-01 372 | 8.737203333333324329e-01 373 | 8.737203333333324329e-01 374 | 8.737203333333324329e-01 375 | 8.737203333333324329e-01 376 | 8.737203333333324329e-01 377 | 8.737203333333324329e-01 378 | 8.740219936143031054e-01 379 | 8.743236538952737780e-01 380 | 8.749269744572149010e-01 381 | 8.755302950191562461e-01 382 | 8.764352758620681527e-01 383 | 8.770385964240093868e-01 384 | 8.767369361430387142e-01 385 | 8.767369361430387142e-01 386 | 8.764352758620681527e-01 387 | 8.764352758620681527e-01 388 | 8.758319553001268076e-01 389 | 8.758319553001268076e-01 390 | 8.749269744572151231e-01 391 | 8.754751281451600420e-01 392 | 8.757216215521342884e-01 393 | 8.763249421140755224e-01 394 | 8.754751281451600420e-01 395 | 8.740219936143031054e-01 396 | 8.743236538952737780e-01 397 | 8.737203333333325439e-01 398 | 8.743236538952737780e-01 399 | 8.740219936143031054e-01 400 | 8.746253141762443395e-01 401 | 8.746253141762443395e-01 402 | 8.760673160338995347e-01 403 | 8.760673160338994236e-01 404 | 8.766706365958407687e-01 405 | 8.758319553001268076e-01 406 | 8.764352758620681527e-01 407 | 8.764352758620681527e-01 408 | 8.772739571577821138e-01 409 | 8.772739571577821138e-01 410 | 8.772739571577821138e-01 411 | 8.764352758620681527e-01 412 | 8.764352758620681527e-01 413 | 8.764352758620681527e-01 414 | 8.772739571577821138e-01 415 | 8.781126384534959639e-01 416 | 8.793192795773784320e-01 417 | 8.796872394055470501e-01 418 | 8.796872394055469391e-01 419 | 8.793192795773784320e-01 420 | 8.793192795773784320e-01 421 | 8.793855791245763776e-01 422 | 8.794518786717743231e-01 423 | 8.790839188436058160e-01 424 | 8.790176192964079815e-01 425 | 8.789513197492099250e-01 426 | 8.789513197492099250e-01 427 | 8.787159590154370870e-01 428 | 8.793081469041768017e-01 429 | 8.799777670133158702e-01 430 | 8.799777670133160923e-01 431 | 8.799777670133160923e-01 432 | 8.796761067323454197e-01 433 | 8.807997492992275523e-01 434 | 8.805755212386564557e-01 435 | 8.810958432435972432e-01 436 | 8.810958432435972432e-01 437 | 8.816991638055385883e-01 438 | 8.817821623625389238e-01 439 | 8.815635006385686978e-01 440 | 8.814805020815682512e-01 441 | 8.805092216914585102e-01 442 | 8.805092216914585102e-01 443 | 8.802905599674882842e-01 444 | 8.808827478562278879e-01 445 | 8.811844081371985604e-01 446 | 8.811069759167988735e-01 447 | 8.802794272942867648e-01 448 | 8.799003347929165164e-01 449 | 8.790727861704041857e-01 450 | 8.790727861704041857e-01 451 | 8.794518786717743231e-01 452 | 8.794518786717744341e-01 453 | 8.802794272942865428e-01 454 | 8.796042408485466035e-01 455 | 8.804317894710589343e-01 456 | 8.804317894710589343e-01 457 | 8.804317894710589343e-01 458 | 8.808108819724291827e-01 459 | 8.805147880280593808e-01 460 | 8.805147880280593808e-01 461 | 8.798396015823193306e-01 462 | 8.793081469041768017e-01 463 | 8.793081469041768017e-01 464 | 8.793800127879755069e-01 465 | 8.799114674661181468e-01 466 | 8.799114674661180358e-01 467 | 8.798396015823193306e-01 468 | 8.798396015823193306e-01 469 | 8.798396015823193306e-01 470 | 8.787048263422355676e-01 471 | 8.787048263422355676e-01 472 | 8.787048263422355676e-01 473 | 8.804317894710589343e-01 474 | 8.810239773597986490e-01 475 | 8.804925226816560091e-01 476 | 8.784638992718619699e-01 477 | 8.769834295500130716e-01 478 | 8.778109781725254024e-01 479 | 8.795435076379495287e-01 480 | 8.802019950738871890e-01 481 | 8.802019950738871890e-01 482 | 8.790727861704041857e-01 483 | 8.784142987344666365e-01 484 | 8.781182047900969456e-01 485 | 8.789513197492099250e-01 486 | 8.798396015823193306e-01 487 | 8.799114674661181468e-01 488 | 8.799114674661181468e-01 489 | 8.796153735217483449e-01 490 | 8.795435076379495287e-01 491 | 8.792474136935797269e-01 492 | 8.789513197492099250e-01 493 | 8.783591318604703213e-01 494 | 8.780630379161005195e-01 495 | 8.780630379161005195e-01 496 | 8.786552258048402342e-01 497 | 8.786552258048402342e-01 498 | 8.798396015823192196e-01 499 | 8.795435076379495287e-01 500 | 8.798396015823192196e-01 501 | -------------------------------------------------------------------------------- /opt_weight/acc/dqn_0.3.txt: -------------------------------------------------------------------------------- 1 | 2.907000000000000139e-01 2 | 3.482726187739463297e-01 3 | 3.750049987228606940e-01 4 | 3.938010737547891771e-01 5 | 4.085176459770113455e-01 6 | 4.456643946360151487e-01 7 | 4.615920574712641944e-01 8 | 4.758907547892718415e-01 9 | 4.876555057471261279e-01 10 | 4.983342796934863150e-01 11 | 5.099180344827582978e-01 12 | 5.207778045977008441e-01 13 | 5.298276130268195772e-01 14 | 5.394204099616854986e-01 15 | 5.486512145593865908e-01 16 | 5.571580344827582465e-01 17 | 5.654838582375475431e-01 18 | 5.739906781609191988e-01 19 | 5.803255440613023231e-01 20 | 5.859364252873560108e-01 21 | 5.904613295019152108e-01 22 | 5.948052375478922738e-01 23 | 5.996921340996164140e-01 24 | 6.063889923371643675e-01 25 | 6.125428620689650216e-01 26 | 6.183347394636010685e-01 27 | 6.244886091954018337e-01 28 | 6.295565019157083331e-01 29 | 6.339004099616853960e-01 30 | 6.377013295019151595e-01 31 | 6.425882260536394108e-01 32 | 6.478371149425281583e-01 33 | 6.516380344827581439e-01 34 | 6.565249310344822842e-01 35 | 6.605068467432945178e-01 36 | 6.639457739463596742e-01 37 | 6.673847011494247194e-01 38 | 6.726335900383135780e-01 39 | 6.773394904214553591e-01 40 | 6.829503716475089359e-01 41 | 6.880182643678154353e-01 42 | 6.930861570881219347e-01 43 | 6.976110613026813567e-01 44 | 7.017739731800760605e-01 45 | 7.055748927203058241e-01 46 | 7.100997969348653571e-01 47 | 7.133577279693480433e-01 48 | 7.171586475095779178e-01 49 | 7.204165785440606040e-01 50 | 7.242174980842905896e-01 51 | 7.269324406130260874e-01 52 | 7.296473831417618072e-01 53 | 7.316383409961678685e-01 54 | 7.332673065134093227e-01 55 | 7.348962720306506657e-01 56 | 7.368872298850568381e-01 57 | 7.396021724137924469e-01 58 | 7.423171149425280557e-01 59 | 7.453940498084283828e-01 60 | 7.482899885057465728e-01 61 | 7.510049310344820706e-01 62 | 7.533578812260529611e-01 63 | 7.555298352490413816e-01 64 | 7.575207931034475539e-01 65 | 7.589687624521066489e-01 66 | 7.609597203065127102e-01 67 | 7.624076896551716942e-01 68 | 7.638556590038307892e-01 69 | 7.653036283524896621e-01 70 | 7.672945862068958345e-01 71 | 7.687425555555548184e-01 72 | 7.703715210727961615e-01 73 | 7.718194904214552565e-01 74 | 7.727244712643670521e-01 75 | 7.736294521072790698e-01 76 | 7.748964252873555836e-01 77 | 7.759824022988498493e-01 78 | 7.772493754789264742e-01 79 | 7.786973448275855691e-01 80 | 7.805073065134091603e-01 81 | 7.823172681992329736e-01 82 | 7.841272298850567868e-01 83 | 7.857561954022982409e-01 84 | 7.870231685823747547e-01 85 | 7.881091455938691315e-01 86 | 7.886521340996162088e-01 87 | 7.895571149425280044e-01 88 | 7.908240881226046293e-01 89 | 7.920910613026812541e-01 90 | 7.931770383141756309e-01 91 | 7.944440114942521447e-01 92 | 7.957109846743287696e-01 93 | 7.966159655172406762e-01 94 | 7.978829386973173010e-01 95 | 7.986069233716467375e-01 96 | 7.995119042145585331e-01 97 | 7.996929003831410032e-01 98 | 8.005978812260530209e-01 99 | 8.011408697317999872e-01 100 | 8.022268467432942529e-01 101 | 8.029508314176239114e-01 102 | 8.040368084291179551e-01 103 | 8.042178045977003142e-01 104 | 8.049417892720299728e-01 105 | 8.056657739463594092e-01 106 | 8.065707547892714269e-01 107 | 8.078377279693478297e-01 108 | 8.091047011494245655e-01 109 | 8.101906781609187203e-01 110 | 8.109146628352483788e-01 111 | 8.114576513409954561e-01 112 | 8.118196436781601744e-01 113 | 8.125436283524896108e-01 114 | 8.129056206896544401e-01 115 | 8.136296053639838766e-01 116 | 8.141725938697309539e-01 117 | 8.141725938697310649e-01 118 | 8.147155823754781423e-01 119 | 8.156205632183899379e-01 120 | 8.161635517241372373e-01 121 | 8.165255440613019555e-01 122 | 8.181545095785432986e-01 123 | 8.183355057471256577e-01 124 | 8.186974980842904870e-01 125 | 8.194214827586199235e-01 126 | 8.206884559386965483e-01 127 | 8.210504482758613776e-01 128 | 8.221364252873556433e-01 129 | 8.223174214559378914e-01 130 | 8.228604099616850798e-01 131 | 8.226794137931026096e-01 132 | 8.232224022988499090e-01 133 | 8.234033984674322681e-01 134 | 8.244893754789265339e-01 135 | 8.252133601532559704e-01 136 | 8.261183409961677659e-01 137 | 8.266613295019148433e-01 138 | 8.281092988505738273e-01 139 | 8.291952758620680930e-01 140 | 8.297382643678152814e-01 141 | 8.306432452107271880e-01 142 | 8.315482260536389836e-01 143 | 8.319102183908038128e-01 144 | 8.319102183908038128e-01 145 | 8.324532068965510012e-01 146 | 8.333581877394629078e-01 147 | 8.339011762452098742e-01 148 | 8.346251609195393106e-01 149 | 8.348061570881217808e-01 150 | 8.351681494252864990e-01 151 | 8.349871532567043619e-01 152 | 8.353491455938689692e-01 153 | 8.351681494252864990e-01 154 | 8.358921340996159355e-01 155 | 8.371591072796927824e-01 156 | 8.384260804597692962e-01 157 | 8.391500651340987327e-01 158 | 8.405980344827577166e-01 159 | 8.418650076628344525e-01 160 | 8.429509846743286072e-01 161 | 8.436749693486582657e-01 162 | 8.443989540229877022e-01 163 | 8.449419425287348906e-01 164 | 8.456659272030643271e-01 165 | 8.458469233716467972e-01 166 | 8.463899118773937635e-01 167 | 8.471138965517234221e-01 168 | 8.476568850574703884e-01 169 | 8.483808697317998249e-01 170 | 8.489238582375471243e-01 171 | 8.496478429118765607e-01 172 | 8.501908314176237491e-01 173 | 8.510958122605355447e-01 174 | 8.516388007662826221e-01 175 | 8.520007931034474513e-01 176 | 8.523627854406121696e-01 177 | 8.530867701149418281e-01 178 | 8.532677662835240762e-01 179 | 8.534487624521064353e-01 180 | 8.543537432950183419e-01 181 | 8.547157356321830601e-01 182 | 8.548967318007655303e-01 183 | 8.558017126436773259e-01 184 | 8.561637049808419331e-01 185 | 8.561637049808421551e-01 186 | 8.568876896551715916e-01 187 | 8.574306781609187800e-01 188 | 8.579736666666658573e-01 189 | 8.586976513409952938e-01 190 | 8.592406398467424822e-01 191 | 8.596026321839073114e-01 192 | 8.603266168582367479e-01 193 | 8.597836283524895595e-01 194 | 8.599646245210719187e-01 195 | 8.605076130268189960e-01 196 | 8.608696053639837142e-01 197 | 8.608696053639837142e-01 198 | 8.615935900383133728e-01 199 | 8.619555823754780910e-01 200 | 8.619555823754780910e-01 201 | 8.619555823754780910e-01 202 | 8.619555823754780910e-01 203 | 8.623175747126428092e-01 204 | 8.626795670498076385e-01 205 | 8.630415593869722457e-01 206 | 8.637655440613019042e-01 207 | 8.641275363984665114e-01 208 | 8.641275363984665114e-01 209 | 8.641275363984665114e-01 210 | 8.641275363984666225e-01 211 | 8.637655440613017932e-01 212 | 8.637655440613017932e-01 213 | 8.637655440613017932e-01 214 | 8.641275363984665114e-01 215 | 8.641275363984665114e-01 216 | 8.643085325670490926e-01 217 | 8.646705249042136998e-01 218 | 8.653945095785431363e-01 219 | 8.657565019157079655e-01 220 | 8.664804865900374020e-01 221 | 8.670234750957845904e-01 222 | 8.673854674329493086e-01 223 | 8.675664636015316677e-01 224 | 8.677474597701140269e-01 225 | 8.681094521072788561e-01 226 | 8.684714444444436854e-01 227 | 8.690144329501906517e-01 228 | 8.693764252873554810e-01 229 | 8.697384176245203102e-01 230 | 8.699194137931025583e-01 231 | 8.702814061302672766e-01 232 | 8.701004099616849174e-01 233 | 8.701004099616849174e-01 234 | 8.701004099616849174e-01 235 | 8.701004099616849174e-01 236 | 8.699194137931025583e-01 237 | 8.701004099616849174e-01 238 | 8.701004099616849174e-01 239 | 8.701004099616849174e-01 240 | 8.704624022988497467e-01 241 | 8.706433984674321058e-01 242 | 8.710053908045969351e-01 243 | 8.713673831417615423e-01 244 | 8.717293754789263716e-01 245 | 8.717293754789263716e-01 246 | 8.719103716475087307e-01 247 | 8.719103716475087307e-01 248 | 8.722723639846734489e-01 249 | 8.722723639846734489e-01 250 | 8.720913678160909788e-01 251 | 8.720913678160912008e-01 252 | 8.719103716475086197e-01 253 | 8.715483793103440124e-01 254 | 8.715483793103440124e-01 255 | 8.719103716475087307e-01 256 | 8.722723639846734489e-01 257 | 8.729963486590029964e-01 258 | 8.735393371647500738e-01 259 | 8.742633218390796213e-01 260 | 8.748063103448266986e-01 261 | 8.749873065134090577e-01 262 | 8.749873065134090577e-01 263 | 8.749873065134090577e-01 264 | 8.748063103448266986e-01 265 | 8.746253141762443395e-01 266 | 8.746253141762443395e-01 267 | 8.746253141762443395e-01 268 | 8.746253141762443395e-01 269 | 8.746253141762443395e-01 270 | 8.748063103448266986e-01 271 | 8.748063103448266986e-01 272 | 8.749873065134090577e-01 273 | 8.753492988505738870e-01 274 | 8.758922873563209643e-01 275 | 8.762542796934857936e-01 276 | 8.769782643678152301e-01 277 | 8.775212528735624185e-01 278 | 8.777022490421447776e-01 279 | 8.780642413793093848e-01 280 | 8.786072298850566842e-01 281 | 8.789692222222214024e-01 282 | 8.793312145593861207e-01 283 | 8.798742030651333090e-01 284 | 8.800551992337155571e-01 285 | 8.800551992337155571e-01 286 | 8.800551992337155571e-01 287 | 8.800551992337155571e-01 288 | 8.798742030651333090e-01 289 | 8.800551992337156682e-01 290 | 8.800551992337155571e-01 291 | 8.800551992337156682e-01 292 | 8.802361954022979162e-01 293 | 8.804171915708802754e-01 294 | 8.802361954022979162e-01 295 | 8.802361954022979162e-01 296 | 8.805981877394627455e-01 297 | 8.804171915708802754e-01 298 | 8.804171915708802754e-01 299 | 8.804171915708802754e-01 300 | 8.804171915708802754e-01 301 | 8.804171915708802754e-01 302 | 8.805981877394627455e-01 303 | 8.809601800766275748e-01 304 | 8.811411762452099339e-01 305 | 8.809601800766275748e-01 306 | 8.809601800766275748e-01 307 | 8.809601800766275748e-01 308 | 8.809601800766275748e-01 309 | 8.811411762452099339e-01 310 | 8.816841647509570112e-01 311 | 8.816841647509570112e-01 312 | 8.820461570881217295e-01 313 | 8.822271532567041996e-01 314 | 8.824081494252865587e-01 315 | 8.824081494252865587e-01 316 | 8.824081494252865587e-01 317 | 8.822271532567039776e-01 318 | 8.820461570881217295e-01 319 | 8.818651609195393704e-01 320 | 8.815031685823745411e-01 321 | 8.815031685823745411e-01 322 | 8.815031685823745411e-01 323 | 8.813221724137921820e-01 324 | 8.811411762452099339e-01 325 | 8.815031685823747631e-01 326 | 8.816841647509570112e-01 327 | 8.822271532567041996e-01 328 | 8.822271532567039776e-01 329 | 8.822271532567041996e-01 330 | 8.824081494252865587e-01 331 | 8.820461570881217295e-01 332 | 8.815031685823745411e-01 333 | 8.815031685823745411e-01 334 | 8.815031685823745411e-01 335 | 8.811411762452099339e-01 336 | 8.816841647509570112e-01 337 | 8.816841647509570112e-01 338 | 8.822271532567041996e-01 339 | 8.829511379310336361e-01 340 | 8.834941264367806024e-01 341 | 8.831321340996159952e-01 342 | 8.834941264367806024e-01 343 | 8.833131302681982433e-01 344 | 8.827701417624511659e-01 345 | 8.824081494252864477e-01 346 | 8.824081494252864477e-01 347 | 8.818651609195393704e-01 348 | 8.818651609195393704e-01 349 | 8.818651609195393704e-01 350 | 8.818651609195393704e-01 351 | 8.816841647509570112e-01 352 | 8.820461570881217295e-01 353 | 8.816841647509570112e-01 354 | 8.815031685823745411e-01 355 | 8.816841647509570112e-01 356 | 8.816841647509570112e-01 357 | 8.813221724137921820e-01 358 | 8.815031685823745411e-01 359 | 8.815031685823745411e-01 360 | 8.815031685823745411e-01 361 | 8.822271532567041996e-01 362 | 8.825891455938690289e-01 363 | 8.827701417624513880e-01 364 | 8.833131302681984653e-01 365 | 8.833131302681984653e-01 366 | 8.831321340996159952e-01 367 | 8.833131302681984653e-01 368 | 8.834941264367806024e-01 369 | 8.834941264367806024e-01 370 | 8.836751226053630726e-01 371 | 8.836751226053630726e-01 372 | 8.836751226053630726e-01 373 | 8.838561187739454317e-01 374 | 8.838561187739454317e-01 375 | 8.842181111111102609e-01 376 | 8.845801034482748681e-01 377 | 8.849420957854396974e-01 378 | 8.851230919540220565e-01 379 | 8.854850842911868858e-01 380 | 8.856660804597693559e-01 381 | 8.860280727969340742e-01 382 | 8.860280727969339631e-01 383 | 8.863900651340987924e-01 384 | 8.869330536398457587e-01 385 | 8.869330536398459808e-01 386 | 8.867520574712635106e-01 387 | 8.869330536398459808e-01 388 | 8.867520574712635106e-01 389 | 8.867520574712635106e-01 390 | 8.869330536398459808e-01 391 | 8.869330536398457587e-01 392 | 8.872950459770105880e-01 393 | 8.872950459770105880e-01 394 | 8.872950459770105880e-01 395 | 8.874760421455929471e-01 396 | 8.878380344827577764e-01 397 | 8.880190306513402465e-01 398 | 8.885620191570872128e-01 399 | 8.887430153256696830e-01 400 | 8.889240114942520421e-01 401 | 8.892860038314166493e-01 402 | 8.892860038314168714e-01 403 | 8.896479961685814786e-01 404 | 8.898289923371638377e-01 405 | 8.901909846743285559e-01 406 | 8.900099885057463078e-01 407 | 8.903719808429109150e-01 408 | 8.901909846743285559e-01 409 | 8.900099885057463078e-01 410 | 8.896479961685814786e-01 411 | 8.896479961685814786e-01 412 | 8.898289923371638377e-01 413 | 8.898289923371638377e-01 414 | 8.898289923371638377e-01 415 | 8.900099885057463078e-01 416 | 8.905529770114932742e-01 417 | 8.901909846743285559e-01 418 | 8.901909846743285559e-01 419 | 8.905529770114932742e-01 420 | 8.910959655172405736e-01 421 | 8.910959655172405736e-01 422 | 8.914579578544051808e-01 423 | 8.914579578544051808e-01 424 | 8.916389540229877619e-01 425 | 8.910959655172405736e-01 426 | 8.910959655172405736e-01 427 | 8.910959655172405736e-01 428 | 8.910959655172405736e-01 429 | 8.910959655172405736e-01 430 | 8.914579578544052918e-01 431 | 8.914579578544051808e-01 432 | 8.914579578544052918e-01 433 | 8.918199501915700100e-01 434 | 8.918199501915700100e-01 435 | 8.918199501915700100e-01 436 | 8.918199501915700100e-01 437 | 8.918199501915700100e-01 438 | 8.918199501915700100e-01 439 | 8.918199501915700100e-01 440 | 8.918199501915700100e-01 441 | 8.918199501915700100e-01 442 | 8.918199501915700100e-01 443 | 8.918199501915700100e-01 444 | 8.921819425287347283e-01 445 | 8.921819425287347283e-01 446 | 8.921819425287347283e-01 447 | 8.921819425287347283e-01 448 | 8.923629386973171984e-01 449 | 8.923629386973171984e-01 450 | 8.923629386973171984e-01 451 | 8.923629386973171984e-01 452 | 8.923629386973171984e-01 453 | 8.925439348658995575e-01 454 | 8.921819425287347283e-01 455 | 8.921819425287347283e-01 456 | 8.921819425287347283e-01 457 | 8.920009463601523692e-01 458 | 8.912769616858229327e-01 459 | 8.910959655172405736e-01 460 | 8.907339731800757443e-01 461 | 8.905529770114932742e-01 462 | 8.905529770114932742e-01 463 | 8.907339731800757443e-01 464 | 8.907339731800757443e-01 465 | 8.909149693486581034e-01 466 | 8.909149693486581034e-01 467 | 8.909149693486581034e-01 468 | 8.910959655172405736e-01 469 | 8.909149693486581034e-01 470 | 8.910959655172405736e-01 471 | 8.909149693486581034e-01 472 | 8.912769616858229327e-01 473 | 8.912769616858229327e-01 474 | 8.916389540229875399e-01 475 | 8.916389540229877619e-01 476 | 8.920009463601523692e-01 477 | 8.916389540229875399e-01 478 | 8.916389540229875399e-01 479 | 8.916389540229875399e-01 480 | 8.916389540229875399e-01 481 | 8.916389540229875399e-01 482 | 8.916389540229877619e-01 483 | 8.914579578544052918e-01 484 | 8.912769616858229327e-01 485 | 8.907339731800757443e-01 486 | 8.907339731800757443e-01 487 | 8.907339731800757443e-01 488 | 8.909149693486581034e-01 489 | 8.910959655172405736e-01 490 | 8.914579578544052918e-01 491 | 8.912769616858227106e-01 492 | 8.912769616858229327e-01 493 | 8.910959655172405736e-01 494 | 8.909149693486581034e-01 495 | 8.909149693486581034e-01 496 | 8.909149693486581034e-01 497 | 8.907339731800757443e-01 498 | 8.910959655172405736e-01 499 | 8.910959655172405736e-01 500 | 8.910959655172405736e-01 501 | -------------------------------------------------------------------------------- /opt_weight/acc/dqn_0.5.txt: -------------------------------------------------------------------------------- 1 | 2.907000000000000139e-01 2 | 4.256899999999999573e-01 3 | 4.530666666666668951e-01 4 | 4.707933333333332304e-01 5 | 5.036866666666665049e-01 6 | 5.363766666666666127e-01 7 | 5.557666666666661870e-01 8 | 5.655366666666665765e-01 9 | 5.739299999999999402e-01 10 | 5.822166666666664936e-01 11 | 5.954966666666664521e-01 12 | 6.054299999999999127e-01 13 | 6.130166666666665432e-01 14 | 6.201633333333330667e-01 15 | 6.256466666666665732e-01 16 | 6.313366666666664351e-01 17 | 6.381066666666665999e-01 18 | 6.429500000000000215e-01 19 | 6.480966666666666542e-01 20 | 6.527833333333332710e-01 21 | 6.591966666666666530e-01 22 | 6.639766666666666595e-01 23 | 6.682366666666667010e-01 24 | 6.725233333333332508e-01 25 | 6.777533333333333188e-01 26 | 6.816966666666666175e-01 27 | 6.851599999999999913e-01 28 | 6.902566666666667405e-01 29 | 6.943166666666668041e-01 30 | 6.997533333333334493e-01 31 | 7.035666666666668956e-01 32 | 7.064566666666668437e-01 33 | 7.095400000000002816e-01 34 | 7.118566666666670262e-01 35 | 7.148433333333337192e-01 36 | 7.176433333333336329e-01 37 | 7.209866666666671087e-01 38 | 7.224300000000005717e-01 39 | 7.261000000000005228e-01 40 | 7.290866666666672158e-01 41 | 7.332466666666671573e-01 42 | 7.363466666666670379e-01 43 | 7.385433333333337735e-01 44 | 7.410700000000005616e-01 45 | 7.447100000000005382e-01 46 | 7.471533333333338911e-01 47 | 7.491066666666672536e-01 48 | 7.512166666666671988e-01 49 | 7.542433333333338208e-01 50 | 7.561266666666672798e-01 51 | 7.588233333333339603e-01 52 | 7.606066666666674303e-01 53 | 7.626166666666674976e-01 54 | 7.639000000000008006e-01 55 | 7.658633333333340065e-01 56 | 7.678300000000006786e-01 57 | 7.693633333333340651e-01 58 | 7.709733333333339544e-01 59 | 7.726400000000005486e-01 60 | 7.744000000000004214e-01 61 | 7.758700000000005037e-01 62 | 7.788700000000002843e-01 63 | 7.808800000000002406e-01 64 | 7.827366666666667472e-01 65 | 7.850133333333334518e-01 66 | 7.853366666666669049e-01 67 | 7.867466666666668162e-01 68 | 7.893933333333333913e-01 69 | 7.897733333333332162e-01 70 | 7.911866666666665937e-01 71 | 7.928633333333332533e-01 72 | 7.942600000000000771e-01 73 | 7.957566666666664457e-01 74 | 7.968033333333330859e-01 75 | 7.980166666666664854e-01 76 | 7.995833333333329795e-01 77 | 8.009133333333328109e-01 78 | 8.025799999999994050e-01 79 | 8.031966666666660037e-01 80 | 8.052833333333324628e-01 81 | 8.054033333333324718e-01 82 | 8.060999999999988175e-01 83 | 8.074966666666651971e-01 84 | 8.088799999999987111e-01 85 | 8.101299999999987955e-01 86 | 8.108033333333319881e-01 87 | 8.116533333333317835e-01 88 | 8.127166666666648664e-01 89 | 8.139666666666651729e-01 90 | 8.144933333333319592e-01 91 | 8.154799999999985394e-01 92 | 8.147366666666653323e-01 93 | 8.153133333333322241e-01 94 | 8.161599999999989974e-01 95 | 8.170466666666655886e-01 96 | 8.190233333333319932e-01 97 | 8.200699999999988554e-01 98 | 8.206933333333320535e-01 99 | 8.220799999999987007e-01 100 | 8.230099999999987981e-01 101 | 8.221299999999990282e-01 102 | 8.226466666666657490e-01 103 | 8.233499999999992491e-01 104 | 8.246133333333323101e-01 105 | 8.241266666666656748e-01 106 | 8.245799999999988694e-01 107 | 8.251566666666657612e-01 108 | 8.252666666666660378e-01 109 | 8.252999999999995895e-01 110 | 8.254733333333329481e-01 111 | 8.263799999999993373e-01 112 | 8.266966666666661911e-01 113 | 8.272166666666663781e-01 114 | 8.277299999999996327e-01 115 | 8.284866666666663715e-01 116 | 8.292066666666665364e-01 117 | 8.304166666666669139e-01 118 | 8.311433333333340112e-01 119 | 8.313266666666673244e-01 120 | 8.321466666666670342e-01 121 | 8.321033333333337501e-01 122 | 8.338333333333338704e-01 123 | 8.342766666666672215e-01 124 | 8.348400000000002485e-01 125 | 8.348166666666670954e-01 126 | 8.353033333333338417e-01 127 | 8.360833333333336226e-01 128 | 8.369433333333338165e-01 129 | 8.371366666666674172e-01 130 | 8.375600000000005263e-01 131 | 8.390133333333338328e-01 132 | 8.389333333333335307e-01 133 | 8.389200000000002211e-01 134 | 8.386933333333336238e-01 135 | 8.398033333333335682e-01 136 | 8.402066666666669903e-01 137 | 8.413133333333334685e-01 138 | 8.415233333333332899e-01 139 | 8.430666666666667419e-01 140 | 8.438966666666668504e-01 141 | 8.444400000000001905e-01 142 | 8.454100000000001058e-01 143 | 8.458866666666670087e-01 144 | 8.464833333333335874e-01 145 | 8.469100000000001627e-01 146 | 8.477033333333333642e-01 147 | 8.484533333333327265e-01 148 | 8.490466666666658391e-01 149 | 8.499199999999992317e-01 150 | 8.504799999999997917e-01 151 | 8.511899999999996691e-01 152 | 8.515799999999994485e-01 153 | 8.522666666666661728e-01 154 | 8.526266666666661997e-01 155 | 8.532433333333325765e-01 156 | 8.535633333333326744e-01 157 | 8.536899999999992827e-01 158 | 8.540699999999991077e-01 159 | 8.547199999999989251e-01 160 | 8.546499999999994657e-01 161 | 8.550166666666664250e-01 162 | 8.557199999999994811e-01 163 | 8.564466666666665784e-01 164 | 8.568833333333329971e-01 165 | 8.570833333333335302e-01 166 | 8.571566666666664558e-01 167 | 8.570899999999994634e-01 168 | 8.579933333333324974e-01 169 | 8.583266666666660161e-01 170 | 8.586266666666659830e-01 171 | 8.588799999999991996e-01 172 | 8.594566666666660915e-01 173 | 8.601199999999996626e-01 174 | 8.603633333333330357e-01 175 | 8.599433333333327267e-01 176 | 8.603733333333328792e-01 177 | 8.601433333333337039e-01 178 | 8.605400000000003047e-01 179 | 8.606600000000005357e-01 180 | 8.607266666666665289e-01 181 | 8.611366666666668834e-01 182 | 8.614066666666673200e-01 183 | 8.617100000000003091e-01 184 | 8.624300000000004740e-01 185 | 8.628966666666675334e-01 186 | 8.631600000000010375e-01 187 | 8.629066666666678209e-01 188 | 8.631666666666679699e-01 189 | 8.633200000000016416e-01 190 | 8.637066666666678438e-01 191 | 8.646133333333343440e-01 192 | 8.653233333333351096e-01 193 | 8.657833333333343484e-01 194 | 8.666766666666679830e-01 195 | 8.670866666666673384e-01 196 | 8.677300000000012226e-01 197 | 8.680866666666683384e-01 198 | 8.684566666666683199e-01 199 | 8.689600000000012869e-01 200 | 8.692333333333341905e-01 201 | 8.695866666666679512e-01 202 | 8.694033333333341940e-01 203 | 8.691266666666668250e-01 204 | 8.690533333333330113e-01 205 | 8.695699999999997321e-01 206 | 8.695266666666668920e-01 207 | 8.697566666666659563e-01 208 | 8.698133333333326611e-01 209 | 8.698766666666651881e-01 210 | 8.703066666666653406e-01 211 | 8.700999999999984302e-01 212 | 8.702399999999983482e-01 213 | 8.707833333333316883e-01 214 | 8.710833333333312112e-01 215 | 8.713133333333312747e-01 216 | 8.715699999999979575e-01 217 | 8.724233333333312190e-01 218 | 8.728533333333312605e-01 219 | 8.733733333333304483e-01 220 | 8.739133333333304332e-01 221 | 8.739599999999967395e-01 222 | 8.737533333333298291e-01 223 | 8.740966666666631912e-01 224 | 8.738466666666634408e-01 225 | 8.735166666666638324e-01 226 | 8.731366666666635634e-01 227 | 8.731399999999970296e-01 228 | 8.732966666666641675e-01 229 | 8.733799999999973807e-01 230 | 8.734766666666644586e-01 231 | 8.731766666666639365e-01 232 | 8.738366666666640414e-01 233 | 8.743899999999977801e-01 234 | 8.752433333333319299e-01 235 | 8.757733333333325154e-01 236 | 8.760899999999982590e-01 237 | 8.764899999999983260e-01 238 | 8.765466666666649198e-01 239 | 8.768966666666652143e-01 240 | 8.766833333333323708e-01 241 | 8.769133333333324343e-01 242 | 8.776133333333320241e-01 243 | 8.773433333333324757e-01 244 | 8.774466666666663750e-01 245 | 8.770333333333326653e-01 246 | 8.767433333333324308e-01 247 | 8.761433333333324969e-01 248 | 8.763099999999989231e-01 249 | 8.763999999999990687e-01 250 | 8.762499999999988631e-01 251 | 8.760699999999995713e-01 252 | 8.762199999999997768e-01 253 | 8.762433333333338181e-01 254 | 8.767200000000002769e-01 255 | 8.775700000000000722e-01 256 | 8.783899999999997821e-01 257 | 8.788566666666668414e-01 258 | 8.789366666666665884e-01 259 | 8.789266666666663008e-01 260 | 8.792466666666665098e-01 261 | 8.800266666666668458e-01 262 | 8.797933333333333161e-01 263 | 8.796333333333327120e-01 264 | 8.797666666666656976e-01 265 | 8.799299999999987687e-01 266 | 8.800199999999989142e-01 267 | 8.800299999999993128e-01 268 | 8.802433333333330445e-01 269 | 8.805400000000001004e-01 270 | 8.811933333333333840e-01 271 | 8.817566666666664110e-01 272 | 8.811599999999998323e-01 273 | 8.813599999999998102e-01 274 | 8.815733333333326538e-01 275 | 8.824333333333328477e-01 276 | 8.831699999999993445e-01 277 | 8.842199999999991178e-01 278 | 8.843599999999990358e-01 279 | 8.843766666666662557e-01 280 | 8.847433333333327710e-01 281 | 8.852966666666655104e-01 282 | 8.855799999999988126e-01 283 | 8.859333333333315741e-01 284 | 8.859133333333317761e-01 285 | 8.860733333333314921e-01 286 | 8.861699999999984589e-01 287 | 8.862399999999979183e-01 288 | 8.862466666666648507e-01 289 | 8.863699999999984369e-01 290 | 8.866366666666645191e-01 291 | 8.866799999999973592e-01 292 | 8.865833333333312805e-01 293 | 8.869933333333316350e-01 294 | 8.866566666666642060e-01 295 | 8.867733333333309709e-01 296 | 8.869133333333308888e-01 297 | 8.870399999999970531e-01 298 | 8.873333333333306427e-01 299 | 8.873299999999962884e-01 300 | 8.872133333333295235e-01 301 | 8.873066666666640234e-01 302 | 8.876266666666642324e-01 303 | 8.879133333333300016e-01 304 | 8.876266666666642324e-01 305 | 8.876599999999986723e-01 306 | 8.872533333333326722e-01 307 | 8.868399999999998506e-01 308 | 8.866066666666664320e-01 309 | 8.864500000000001823e-01 310 | 8.867300000000000182e-01 311 | 8.868333333333330293e-01 312 | 8.867733333333328583e-01 313 | 8.866699999999989590e-01 314 | 8.868133333333313439e-01 315 | 8.868733333333315150e-01 316 | 8.866833333333318246e-01 317 | 8.864666666666655148e-01 318 | 8.868199999999991645e-01 319 | 8.871499999999987729e-01 320 | 8.870366666666654742e-01 321 | 8.876166666666658323e-01 322 | 8.883166666666663103e-01 323 | 8.885166666666672874e-01 324 | 8.886300000000005861e-01 325 | 8.886200000000011867e-01 326 | 8.885600000000011267e-01 327 | 8.887766666666683246e-01 328 | 8.885866666666667468e-01 329 | 8.885700000000004151e-01 330 | 8.886266666666661207e-01 331 | 8.887166666666643788e-01 332 | 8.889299999999972224e-01 333 | 8.888133333333314567e-01 334 | 8.888233333333308561e-01 335 | 8.887333333333307106e-01 336 | 8.891499999999969983e-01 337 | 8.896299999999958130e-01 338 | 8.897499999999960441e-01 339 | 8.899466666666626669e-01 340 | 8.892733333333296963e-01 341 | 8.890833333333300059e-01 342 | 8.893633333333298419e-01 343 | 8.891399999999975989e-01 344 | 8.890533333333318078e-01 345 | 8.892566666666652520e-01 346 | 8.893999999999986361e-01 347 | 8.894799999999974949e-01 348 | 8.892766666666640507e-01 349 | 8.892099999999970583e-01 350 | 8.891899999999982596e-01 351 | 8.887266666666656656e-01 352 | 8.883133333333319559e-01 353 | 8.881933333333317249e-01 354 | 8.880899999999997130e-01 355 | 8.878599999999986503e-01 356 | 8.881099999999985117e-01 357 | 8.881633333333316394e-01 358 | 8.884399999999990083e-01 359 | 8.886333333333330531e-01 360 | 8.886366666666674075e-01 361 | 8.887400000000014177e-01 362 | 8.890100000000018543e-01 363 | 8.891933333333346123e-01 364 | 8.893966666666680565e-01 365 | 8.896433333333334526e-01 366 | 8.899166666666663561e-01 367 | 8.897633333333335726e-01 368 | 8.899999999999995692e-01 369 | 8.902166666666649908e-01 370 | 8.910433333333325212e-01 371 | 8.912233333333328122e-01 372 | 8.912966666666667370e-01 373 | 8.915066666666670026e-01 374 | 8.914233333333337894e-01 375 | 8.912433333333334984e-01 376 | 8.914866666666664274e-01 377 | 8.918933333333333158e-01 378 | 8.918599999999988759e-01 379 | 8.919333333333326896e-01 380 | 8.918099999999981042e-01 381 | 8.918466666666650111e-01 382 | 8.923599999999983767e-01 383 | 8.925333333333317354e-01 384 | 8.928533333333310562e-01 385 | 8.935033333333308736e-01 386 | 8.937933333333318853e-01 387 | 8.938899999999989632e-01 388 | 8.940866666666654750e-01 389 | 8.937866666666650639e-01 390 | 8.938666666666639227e-01 391 | 8.936233333333309936e-01 392 | 8.935799999999971543e-01 393 | 8.936299999999979260e-01 394 | 8.940199999999985936e-01 395 | 8.944333333333323033e-01 396 | 8.941599999999993997e-01 397 | 8.943900000000003514e-01 398 | 8.943900000000003514e-01 399 | 8.946266666666683465e-01 400 | 8.947833333333334860e-01 401 | 8.950900000000009404e-01 402 | 8.949899999999995082e-01 403 | 8.949299999999993371e-01 404 | 8.951233333333316056e-01 405 | 8.951899999999984869e-01 406 | 8.952266666666655048e-01 407 | 8.952599999999999447e-01 408 | 8.954300000000008364e-01 409 | 8.949966666666682169e-01 410 | 8.952900000000018066e-01 411 | 8.954833333333340750e-01 412 | 8.952933333333343846e-01 413 | 8.953433333333331579e-01 414 | 8.955533333333335344e-01 415 | 8.953366666666682239e-01 416 | 8.951533333333353548e-01 417 | 8.948466666666680114e-01 418 | 8.945733333333351078e-01 419 | 8.948200000000023913e-01 420 | 8.949433333333369767e-01 421 | 8.953866666666707719e-01 422 | 8.953033333333375587e-01 423 | 8.954166666666708574e-01 424 | 8.953366666666701112e-01 425 | 8.951066666666709359e-01 426 | 8.953366666666701112e-01 427 | 8.954033333333352163e-01 428 | 8.952700000000031189e-01 429 | 8.951233333333353803e-01 430 | 8.950533333333358099e-01 431 | 8.947566666666678659e-01 432 | 8.948966666666687830e-01 433 | 8.950666666666677873e-01 434 | 8.954133333333345046e-01 435 | 8.954400000000021231e-01 436 | 8.953333333333356459e-01 437 | 8.953500000000019776e-01 438 | 8.957233333333344261e-01 439 | 8.963466666666666249e-01 440 | 8.966633333333333677e-01 441 | 8.967933333333329982e-01 442 | 8.969466666666657817e-01 443 | 8.967633333333329126e-01 444 | 8.966166666666651741e-01 445 | 8.965433333333313604e-01 446 | 8.964833333333311893e-01 447 | 8.965133333333312748e-01 448 | 8.965599999999975811e-01 449 | 8.965833333333307342e-01 450 | 8.965599999999975811e-01 451 | 8.963566666666641369e-01 452 | 8.963899999999985768e-01 453 | 8.961999999999988864e-01 454 | 8.963266666666659388e-01 455 | 8.962966666666659643e-01 456 | 8.961200000000000276e-01 457 | 8.961266666666669600e-01 458 | 8.960800000000006538e-01 459 | 8.961100000000006283e-01 460 | 8.959366666666672696e-01 461 | 8.960366666666687019e-01 462 | 8.959900000000023956e-01 463 | 8.960866666666693625e-01 464 | 8.960100000000029707e-01 465 | 8.959833333333354632e-01 466 | 8.958933333333353177e-01 467 | 8.957633333333357983e-01 468 | 8.957500000000038209e-01 469 | 8.956900000000037609e-01 470 | 8.955733333333379953e-01 471 | 8.956400000000049877e-01 472 | 8.955400000000054428e-01 473 | 8.957633333333395731e-01 474 | 8.958900000000066255e-01 475 | 8.959866666666737034e-01 476 | 8.958666666666734724e-01 477 | 8.957933333333414350e-01 478 | 8.955333333333422852e-01 479 | 8.954100000000076998e-01 480 | 8.955000000000078453e-01 481 | 8.956633333333400282e-01 482 | 8.954700000000059834e-01 483 | 8.955666666666710629e-01 484 | 8.954700000000040960e-01 485 | 8.955300000000041560e-01 486 | 8.956333333333380553e-01 487 | 8.958100000000058794e-01 488 | 8.960166666666717905e-01 489 | 8.959833333333392380e-01 490 | 8.961733333333389284e-01 491 | 8.958800000000053387e-01 492 | 8.957000000000050477e-01 493 | 8.956900000000056483e-01 494 | 8.952866666666731144e-01 495 | 8.952866666666731144e-01 496 | 8.954800000000072702e-01 497 | 8.955933333333405688e-01 498 | 8.954400000000058979e-01 499 | 8.954900000000065585e-01 500 | 8.954700000000059834e-01 501 | -------------------------------------------------------------------------------- /opt_weight/acc/dqn_0.7.txt: -------------------------------------------------------------------------------- 1 | 2.907000000000000139e-01 2 | 3.537025038314175474e-01 3 | 3.870714099616857085e-01 4 | 4.507926194125158048e-01 5 | 4.791486858237545832e-01 6 | 5.008682260536395647e-01 7 | 5.165545606641120946e-01 8 | 5.304309335887609222e-01 9 | 5.406873831417621235e-01 10 | 5.509438326947634357e-01 11 | 5.587869999999997006e-01 12 | 5.666301673052359655e-01 13 | 5.738700140485309964e-01 14 | 5.814115210727965888e-01 15 | 5.889530280970621812e-01 16 | 5.955895542784159780e-01 17 | 6.019244201787991022e-01 18 | 6.076559655172409924e-01 19 | 6.127841902937415375e-01 20 | 6.176107547892716321e-01 21 | 6.230406398467428497e-01 22 | 6.290738454661553014e-01 23 | 6.345037305236266301e-01 24 | 6.399336155810978477e-01 25 | 6.444585197956572697e-01 26 | 6.492850842911872533e-01 27 | 6.535083282247761138e-01 28 | 6.583348927203059864e-01 29 | 6.631614572158359699e-01 30 | 6.673847011494246084e-01 31 | 6.707029642401015623e-01 32 | 6.740212273307785162e-01 33 | 6.776411507024260317e-01 34 | 6.821660549169853427e-01 35 | 6.854843180076622966e-01 36 | 6.894059016602803736e-01 37 | 6.927241647509573275e-01 38 | 6.969474086845459659e-01 39 | 7.002656717752229198e-01 40 | 7.038855951468704353e-01 41 | 7.066005376756060441e-01 42 | 7.090138199233709804e-01 43 | 7.111254418901653551e-01 44 | 7.135387241379304024e-01 45 | 7.162536666666660112e-01 46 | 7.189686091954016200e-01 47 | 7.216835517241372289e-01 48 | 7.250018148148141828e-01 49 | 7.274150970625791190e-01 50 | 7.298283793103442774e-01 51 | 7.313366807151973070e-01 52 | 7.334483026819916818e-01 53 | 7.352582643678154950e-01 54 | 7.370682260536391972e-01 55 | 7.385765274584922269e-01 56 | 7.403864891443160401e-01 57 | 7.415931302681985082e-01 58 | 7.434030919540223215e-01 59 | 7.452130536398460237e-01 60 | 7.467213550446992754e-01 61 | 7.482296564495523050e-01 62 | 7.488329770114936501e-01 63 | 7.503412784163466798e-01 64 | 7.515479195402292589e-01 65 | 7.533578812260529611e-01 66 | 7.551678429118767744e-01 67 | 7.557711634738178974e-01 68 | 7.572794648786711491e-01 69 | 7.587877662835241788e-01 70 | 7.608993882503186645e-01 71 | 7.618043690932304601e-01 72 | 7.627093499361423667e-01 73 | 7.639159910600247239e-01 74 | 7.648209719029367415e-01 75 | 7.654242924648779756e-01 76 | 7.663292733077898822e-01 77 | 7.675359144316723503e-01 78 | 7.687425555555548184e-01 79 | 7.693458761174961635e-01 80 | 7.708541775223491932e-01 81 | 7.720608186462317724e-01 82 | 7.732674597701142405e-01 83 | 7.732674597701142405e-01 84 | 7.729657994891435679e-01 85 | 7.732674597701142405e-01 86 | 7.741724406130261471e-01 87 | 7.753790817369085042e-01 88 | 7.768873831417616449e-01 89 | 7.777923639846736625e-01 90 | 7.786973448275854581e-01 91 | 7.799039859514680373e-01 92 | 7.811106270753503944e-01 93 | 7.829205887611742076e-01 94 | 7.832222490421448802e-01 95 | 7.835239093231155527e-01 96 | 7.835239093231155527e-01 97 | 7.841272298850566758e-01 98 | 7.841272298850566758e-01 99 | 7.850322107279685824e-01 100 | 7.850322107279685824e-01 101 | 7.874454929757336297e-01 102 | 7.886521340996162088e-01 103 | 7.907637560664104726e-01 104 | 7.910654163473811451e-01 105 | 7.910654163473811451e-01 106 | 7.910654163473811451e-01 107 | 7.916687369093223792e-01 108 | 7.928753780332048473e-01 109 | 7.940820191570873154e-01 110 | 7.952886602809700056e-01 111 | 7.967969616858230353e-01 112 | 7.986069233716467375e-01 113 | 7.989085836526174100e-01 114 | 7.980036028097056144e-01 115 | 7.983052630906760649e-01 116 | 7.992102439335879716e-01 117 | 8.007185453384412233e-01 118 | 8.007185453384412233e-01 119 | 8.010202056194116738e-01 120 | 8.019251864623235804e-01 121 | 8.022268467432942529e-01 122 | 8.025285070242649255e-01 123 | 8.028301673052355980e-01 124 | 8.034334878671768321e-01 125 | 8.040368084291180661e-01 126 | 8.049417892720299728e-01 127 | 8.058467701149417683e-01 128 | 8.076567318007654706e-01 129 | 8.079583920817361431e-01 130 | 8.091650332056187223e-01 131 | 8.094666934865891728e-01 132 | 8.097683537675598453e-01 133 | 8.097683537675598453e-01 134 | 8.094666934865891728e-01 135 | 8.103716743295010794e-01 136 | 8.103716743295011904e-01 137 | 8.103716743295011904e-01 138 | 8.106733346104717519e-01 139 | 8.121816360153250036e-01 140 | 8.133882771392073607e-01 141 | 8.142932579821192673e-01 142 | 8.139915977011487058e-01 143 | 8.154998991060017355e-01 144 | 8.164048799489136421e-01 145 | 8.176115210727961102e-01 146 | 8.176115210727961102e-01 147 | 8.176115210727961102e-01 148 | 8.176115210727961102e-01 149 | 8.179131813537666718e-01 150 | 8.188181621966786894e-01 151 | 8.197231430395905960e-01 152 | 8.197231430395905960e-01 153 | 8.194214827586199235e-01 154 | 8.203264636015318301e-01 155 | 8.218347650063849708e-01 156 | 8.230414061302674389e-01 157 | 8.230414061302674389e-01 158 | 8.236447266922085619e-01 159 | 8.248513678160911411e-01 160 | 8.263596692209441708e-01 161 | 8.266613295019148433e-01 162 | 8.269629897828855158e-01 163 | 8.269629897828855158e-01 164 | 8.272646500638561884e-01 165 | 8.275663103448267499e-01 166 | 8.278679706257974225e-01 167 | 8.284712911877386565e-01 168 | 8.287729514687093291e-01 169 | 8.299795925925917972e-01 170 | 8.311862337164742653e-01 171 | 8.320912145593861720e-01 172 | 8.326945351213274060e-01 173 | 8.339011762452099852e-01 174 | 8.348061570881216698e-01 175 | 8.348061570881218918e-01 176 | 8.345044968071512193e-01 177 | 8.348061570881216698e-01 178 | 8.357111379310336874e-01 179 | 8.372194393358868281e-01 180 | 8.378227598978281732e-01 181 | 8.387277407407399688e-01 182 | 8.384260804597692962e-01 183 | 8.390294010217105303e-01 184 | 8.384260804597692962e-01 185 | 8.393310613026812028e-01 186 | 8.387277407407398577e-01 187 | 8.399343818646224369e-01 188 | 8.399343818646224369e-01 189 | 8.408393627075342325e-01 190 | 8.414426832694755776e-01 191 | 8.414426832694755776e-01 192 | 8.420460038314168116e-01 193 | 8.417443435504461391e-01 194 | 8.426493243933580457e-01 195 | 8.432526449552991687e-01 196 | 8.432526449552991687e-01 197 | 8.432526449552993908e-01 198 | 8.432526449552991687e-01 199 | 8.441576257982111864e-01 200 | 8.447609463601524205e-01 201 | 8.447609463601524205e-01 202 | 8.450626066411230930e-01 203 | 8.444592860791817479e-01 204 | 8.456659272030643271e-01 205 | 8.462692477650054501e-01 206 | 8.468725683269467952e-01 207 | 8.468725683269467952e-01 208 | 8.465709080459761227e-01 209 | 8.471742286079173567e-01 210 | 8.471742286079173567e-01 211 | 8.474758888888880293e-01 212 | 8.474758888888880293e-01 213 | 8.480792094508293744e-01 214 | 8.483808697318000469e-01 215 | 8.489841902937412810e-01 216 | 8.489841902937410589e-01 217 | 8.486825300127706084e-01 218 | 8.483808697317999359e-01 219 | 8.480792094508293744e-01 220 | 8.486825300127706084e-01 221 | 8.489841902937410589e-01 222 | 8.495875108556824040e-01 223 | 8.498891711366530766e-01 224 | 8.501908314176237491e-01 225 | 8.501908314176237491e-01 226 | 8.501908314176237491e-01 227 | 8.504924916985944217e-01 228 | 8.507941519795649832e-01 229 | 8.510958122605355447e-01 230 | 8.510958122605355447e-01 231 | 8.510958122605355447e-01 232 | 8.510958122605355447e-01 233 | 8.510958122605355447e-01 234 | 8.513974725415062172e-01 235 | 8.513974725415062172e-01 236 | 8.513974725415062172e-01 237 | 8.510958122605355447e-01 238 | 8.510958122605355447e-01 239 | 8.510958122605355447e-01 240 | 8.513974725415062172e-01 241 | 8.526041136653886854e-01 242 | 8.532074342273299195e-01 243 | 8.538107547892712645e-01 244 | 8.535090945083005920e-01 245 | 8.544140753512124986e-01 246 | 8.550173959131536217e-01 247 | 8.553190561941242942e-01 248 | 8.565256973180068734e-01 249 | 8.568273575989774349e-01 250 | 8.571290178799481074e-01 251 | 8.559223767560656393e-01 252 | 8.565256973180068734e-01 253 | 8.574306781609187800e-01 254 | 8.589389795657718096e-01 255 | 8.595423001277131547e-01 256 | 8.598439604086837162e-01 257 | 8.592406398467424822e-01 258 | 8.589389795657718096e-01 259 | 8.592406398467424822e-01 260 | 8.598439604086837162e-01 261 | 8.604472809706248393e-01 262 | 8.613522618135367459e-01 263 | 8.622572426564487635e-01 264 | 8.622572426564487635e-01 265 | 8.616539220945074184e-01 266 | 8.610506015325661844e-01 267 | 8.610506015325661844e-01 268 | 8.610506015325661844e-01 269 | 8.610506015325661844e-01 270 | 8.610506015325661844e-01 271 | 8.610506015325661844e-01 272 | 8.607489412515955118e-01 273 | 8.604472809706248393e-01 274 | 8.601456206896542778e-01 275 | 8.604472809706248393e-01 276 | 8.613522618135368569e-01 277 | 8.619555823754780910e-01 278 | 8.622572426564487635e-01 279 | 8.619555823754780910e-01 280 | 8.622572426564487635e-01 281 | 8.625589029374193251e-01 282 | 8.628605632183899976e-01 283 | 8.631622234993606702e-01 284 | 8.634638837803311207e-01 285 | 8.631622234993604481e-01 286 | 8.631622234993606702e-01 287 | 8.625589029374193251e-01 288 | 8.631622234993606702e-01 289 | 8.625589029374193251e-01 290 | 8.628605632183899976e-01 291 | 8.625589029374194361e-01 292 | 8.631622234993606702e-01 293 | 8.634638837803311207e-01 294 | 8.640672043422723547e-01 295 | 8.643688646232430273e-01 296 | 8.643688646232430273e-01 297 | 8.640672043422724657e-01 298 | 8.640672043422724657e-01 299 | 8.643688646232430273e-01 300 | 8.652738454661550449e-01 301 | 8.658771660280962790e-01 302 | 8.658771660280962790e-01 303 | 8.658771660280962790e-01 304 | 8.658771660280962790e-01 305 | 8.658771660280962790e-01 306 | 8.658771660280962790e-01 307 | 8.652738454661550449e-01 308 | 8.652738454661550449e-01 309 | 8.643688646232430273e-01 310 | 8.643688646232430273e-01 311 | 8.640672043422723547e-01 312 | 8.646705249042136998e-01 313 | 8.649721851851843724e-01 314 | 8.649721851851843724e-01 315 | 8.649721851851843724e-01 316 | 8.643688646232430273e-01 317 | 8.655755057471256064e-01 318 | 8.661788263090667295e-01 319 | 8.670838071519787471e-01 320 | 8.661788263090667295e-01 321 | 8.658771660280962790e-01 322 | 8.658771660280962790e-01 323 | 8.661788263090669515e-01 324 | 8.661788263090669515e-01 325 | 8.661788263090669515e-01 326 | 8.661788263090667295e-01 327 | 8.667821468710080746e-01 328 | 8.667821468710080746e-01 329 | 8.676871277139199812e-01 330 | 8.676871277139199812e-01 331 | 8.676871277139199812e-01 332 | 8.676871277139199812e-01 333 | 8.676871277139199812e-01 334 | 8.682904482758612152e-01 335 | 8.682904482758612152e-01 336 | 8.679887879948905427e-01 337 | 8.673854674329493086e-01 338 | 8.667821468710080746e-01 339 | 8.664804865900375130e-01 340 | 8.664804865900375130e-01 341 | 8.664804865900375130e-01 342 | 8.664804865900375130e-01 343 | 8.667821468710080746e-01 344 | 8.670838071519787471e-01 345 | 8.670838071519786361e-01 346 | 8.676871277139199812e-01 347 | 8.676871277139199812e-01 348 | 8.679887879948906537e-01 349 | 8.673854674329493086e-01 350 | 8.673854674329493086e-01 351 | 8.673854674329493086e-01 352 | 8.673854674329493086e-01 353 | 8.673854674329493086e-01 354 | 8.682904482758612152e-01 355 | 8.685921085568318878e-01 356 | 8.685921085568318878e-01 357 | 8.676871277139198702e-01 358 | 8.673854674329493086e-01 359 | 8.673854674329493086e-01 360 | 8.673854674329493086e-01 361 | 8.670838071519787471e-01 362 | 8.670838071519787471e-01 363 | 8.673854674329493086e-01 364 | 8.679887879948905427e-01 365 | 8.685921085568318878e-01 366 | 8.691954291187730108e-01 367 | 8.697987496807142449e-01 368 | 8.697987496807142449e-01 369 | 8.697987496807142449e-01 370 | 8.701004099616849174e-01 371 | 8.704020702426555900e-01 372 | 8.704020702426555900e-01 373 | 8.701004099616849174e-01 374 | 8.701004099616849174e-01 375 | 8.697987496807142449e-01 376 | 8.697987496807142449e-01 377 | 8.694970893997436834e-01 378 | 8.694970893997436834e-01 379 | 8.691954291187731219e-01 380 | 8.691954291187731219e-01 381 | 8.691954291187731219e-01 382 | 8.691954291187731219e-01 383 | 8.694970893997436834e-01 384 | 8.697987496807142449e-01 385 | 8.701004099616849174e-01 386 | 8.697987496807143559e-01 387 | 8.694970893997436834e-01 388 | 8.701004099616850285e-01 389 | 8.704020702426555900e-01 390 | 8.707037305236262625e-01 391 | 8.707037305236261515e-01 392 | 8.710053908045968241e-01 393 | 8.716087113665379471e-01 394 | 8.716087113665381692e-01 395 | 8.719103716475087307e-01 396 | 8.719103716475087307e-01 397 | 8.719103716475087307e-01 398 | 8.719103716475087307e-01 399 | 8.719103716475087307e-01 400 | 8.722120319284792922e-01 401 | 8.725136922094499647e-01 402 | 8.728153524904206373e-01 403 | 8.722120319284792922e-01 404 | 8.722120319284792922e-01 405 | 8.722120319284792922e-01 406 | 8.731170127713911988e-01 407 | 8.731170127713913098e-01 408 | 8.731170127713911988e-01 409 | 8.728153524904206373e-01 410 | 8.728153524904206373e-01 411 | 8.734186730523618714e-01 412 | 8.734186730523618714e-01 413 | 8.734186730523618714e-01 414 | 8.728153524904206373e-01 415 | 8.728153524904206373e-01 416 | 8.734186730523618714e-01 417 | 8.746253141762444505e-01 418 | 8.752286347381855736e-01 419 | 8.755302950191561351e-01 420 | 8.755302950191561351e-01 421 | 8.755302950191562461e-01 422 | 8.755302950191562461e-01 423 | 8.749269744572149010e-01 424 | 8.749269744572149010e-01 425 | 8.746253141762443395e-01 426 | 8.749269744572149010e-01 427 | 8.755302950191562461e-01 428 | 8.758319553001268076e-01 429 | 8.764352758620681527e-01 430 | 8.767369361430387142e-01 431 | 8.773402567049799483e-01 432 | 8.779435772669211824e-01 433 | 8.779435772669211824e-01 434 | 8.779435772669211824e-01 435 | 8.776419169859505098e-01 436 | 8.779435772669211824e-01 437 | 8.779435772669211824e-01 438 | 8.776419169859505098e-01 439 | 8.773402567049799483e-01 440 | 8.773402567049799483e-01 441 | 8.773402567049799483e-01 442 | 8.770385964240093868e-01 443 | 8.770385964240093868e-01 444 | 8.770385964240093868e-01 445 | 8.773402567049799483e-01 446 | 8.773402567049799483e-01 447 | 8.770385964240093868e-01 448 | 8.767369361430388253e-01 449 | 8.764352758620681527e-01 450 | 8.767369361430387142e-01 451 | 8.767369361430387142e-01 452 | 8.770385964240093868e-01 453 | 8.770385964240093868e-01 454 | 8.770385964240093868e-01 455 | 8.770385964240093868e-01 456 | 8.764352758620681527e-01 457 | 8.764352758620681527e-01 458 | 8.764352758620681527e-01 459 | 8.770385964240093868e-01 460 | 8.773402567049799483e-01 461 | 8.773402567049799483e-01 462 | 8.773402567049799483e-01 463 | 8.773402567049799483e-01 464 | 8.773402567049799483e-01 465 | 8.773402567049799483e-01 466 | 8.770385964240093868e-01 467 | 8.767369361430388253e-01 468 | 8.764352758620681527e-01 469 | 8.764352758620681527e-01 470 | 8.764352758620681527e-01 471 | 8.764352758620681527e-01 472 | 8.764352758620681527e-01 473 | 8.764352758620681527e-01 474 | 8.770385964240093868e-01 475 | 8.770385964240093868e-01 476 | 8.770385964240093868e-01 477 | 8.764352758620681527e-01 478 | 8.770385964240094978e-01 479 | 8.767369361430388253e-01 480 | 8.764352758620681527e-01 481 | 8.755302950191562461e-01 482 | 8.755302950191562461e-01 483 | 8.752286347381855736e-01 484 | 8.752286347381855736e-01 485 | 8.752286347381855736e-01 486 | 8.752286347381855736e-01 487 | 8.752286347381855736e-01 488 | 8.752286347381855736e-01 489 | 8.755302950191562461e-01 490 | 8.755302950191562461e-01 491 | 8.755302950191562461e-01 492 | 8.755302950191562461e-01 493 | 8.755302950191562461e-01 494 | 8.755302950191562461e-01 495 | 8.758319553001268076e-01 496 | 8.761336155810974802e-01 497 | 8.764352758620681527e-01 498 | 8.761336155810974802e-01 499 | 8.761336155810974802e-01 500 | 8.761336155810974802e-01 501 | -------------------------------------------------------------------------------- /opt_weight/acc/dqn_0.9.txt: -------------------------------------------------------------------------------- 1 | 2.907000000000000139e-01 2 | 3.559649559386972584e-01 3 | 3.876747305236269425e-01 4 | 4.100907289272028855e-01 5 | 4.293322053639844205e-01 6 | 4.760717509578541451e-01 7 | 5.005062337164748465e-01 8 | 5.209588007662832032e-01 9 | 5.379724406130265146e-01 10 | 5.508231685823752333e-01 11 | 5.616829386973176685e-01 12 | 5.707327471264364016e-01 13 | 5.799635517241374938e-01 14 | 5.891943563218386970e-01 15 | 5.980631685823750709e-01 16 | 6.063889923371643675e-01 17 | 6.141718275862064758e-01 18 | 6.212306781609191475e-01 19 | 6.279275363984669900e-01 20 | 6.342624022988501142e-01 21 | 6.409592605363979567e-01 22 | 6.478371149425281583e-01 23 | 6.539909846743290345e-01 24 | 6.596018659003826112e-01 25 | 6.648507547892714697e-01 26 | 6.695566551724132509e-01 27 | 6.728145862068959371e-01 28 | 6.764345095785435635e-01 29 | 6.800544329501909679e-01 30 | 6.838553524904209535e-01 31 | 6.876562720306507170e-01 32 | 6.916381877394630617e-01 33 | 6.950771149425281070e-01 34 | 6.981540498084285451e-01 35 | 7.014119808429113423e-01 36 | 7.041269233716468401e-01 37 | 7.072038582375472782e-01 38 | 7.106427854406124345e-01 39 | 7.137197203065127615e-01 40 | 7.166156590038308405e-01 41 | 7.195115977011486974e-01 42 | 7.224075363984667764e-01 43 | 7.247604865900376669e-01 44 | 7.278374214559379940e-01 45 | 7.303713678160913547e-01 46 | 7.329053141762446044e-01 47 | 7.354392605363978541e-01 48 | 7.381542030651334629e-01 49 | 7.405071532567043535e-01 50 | 7.435840881226046806e-01 51 | 7.466610229885051186e-01 52 | 7.495569616858229756e-01 53 | 7.517289157088116180e-01 54 | 7.540818659003825086e-01 55 | 7.557108314176238517e-01 56 | 7.575207931034475539e-01 57 | 7.587877662835242898e-01 58 | 7.605977279693479920e-01 59 | 7.622266934865893351e-01 60 | 7.638556590038307892e-01 61 | 7.654846245210721323e-01 62 | 7.674755823754783046e-01 63 | 7.692855440613020068e-01 64 | 7.707335134099608798e-01 65 | 7.720004865900376156e-01 66 | 7.732674597701142405e-01 67 | 7.741724406130260361e-01 68 | 7.752584176245204128e-01 69 | 7.763443946360146786e-01 70 | 7.777923639846736625e-01 71 | 7.790593371647502874e-01 72 | 7.801453141762444421e-01 73 | 7.815932835249034261e-01 74 | 7.830412528735625211e-01 75 | 7.837652375478919575e-01 76 | 7.843082260536390349e-01 77 | 7.857561954022981299e-01 78 | 7.864801800766276774e-01 79 | 7.875661570881218321e-01 80 | 7.891951226053632862e-01 81 | 7.910050842911869884e-01 82 | 7.924530536398459724e-01 83 | 7.940820191570873154e-01 84 | 7.951679961685815812e-01 85 | 7.962539731800759579e-01 86 | 7.969779578544053944e-01 87 | 7.978829386973173010e-01 88 | 7.986069233716468485e-01 89 | 7.998738965517234734e-01 90 | 8.011408697317999872e-01 91 | 8.020458505747118938e-01 92 | 8.029508314176239114e-01 93 | 8.038558122605357070e-01 94 | 8.043988007662827844e-01 95 | 8.049417892720297507e-01 96 | 8.058467701149417683e-01 97 | 8.063897586206889567e-01 98 | 8.074757356321831114e-01 99 | 8.081997203065126589e-01 100 | 8.085617126436772661e-01 101 | 8.094666934865892838e-01 102 | 8.103716743295011904e-01 103 | 8.109146628352481567e-01 104 | 8.112766551724129860e-01 105 | 8.121816360153248926e-01 106 | 8.125436283524896108e-01 107 | 8.130866168582369102e-01 108 | 8.134486091954015174e-01 109 | 8.143535900383133130e-01 110 | 8.150775747126429716e-01 111 | 8.158015593869724080e-01 112 | 8.161635517241372373e-01 113 | 8.168875363984666738e-01 114 | 8.176115210727961102e-01 115 | 8.181545095785432986e-01 116 | 8.186974980842904870e-01 117 | 8.192404865900375643e-01 118 | 8.194214827586199235e-01 119 | 8.197834750957847527e-01 120 | 8.201454674329493599e-01 121 | 8.205074597701141892e-01 122 | 8.212314444444436257e-01 123 | 8.214124406130259848e-01 124 | 8.221364252873556433e-01 125 | 8.223174214559378914e-01 126 | 8.230414061302674389e-01 127 | 8.230414061302674389e-01 128 | 8.241273831417617046e-01 129 | 8.243083793103440637e-01 130 | 8.250323639846735002e-01 131 | 8.253943563218383295e-01 132 | 8.261183409961677659e-01 133 | 8.259373448275854068e-01 134 | 8.261183409961677659e-01 135 | 8.261183409961677659e-01 136 | 8.261183409961677659e-01 137 | 8.261183409961677659e-01 138 | 8.261183409961677659e-01 139 | 8.261183409961677659e-01 140 | 8.259373448275854068e-01 141 | 8.255753524904207996e-01 142 | 8.255753524904205776e-01 143 | 8.261183409961677659e-01 144 | 8.257563486590029367e-01 145 | 8.257563486590029367e-01 146 | 8.262993371647502361e-01 147 | 8.259373448275854068e-01 148 | 8.259373448275854068e-01 149 | 8.259373448275854068e-01 150 | 8.266613295019149543e-01 151 | 8.266613295019148433e-01 152 | 8.268423256704972024e-01 153 | 8.272043180076620317e-01 154 | 8.275663103448268609e-01 155 | 8.272043180076620317e-01 156 | 8.273853141762443908e-01 157 | 8.281092988505738273e-01 158 | 8.282902950191562974e-01 159 | 8.288332835249034858e-01 160 | 8.299192605363977515e-01 161 | 8.301002567049801106e-01 162 | 8.311862337164743764e-01 163 | 8.317292222222214537e-01 164 | 8.328151992337156084e-01 165 | 8.333581877394629078e-01 166 | 8.340821724137923443e-01 167 | 8.342631685823747034e-01 168 | 8.348061570881217808e-01 169 | 8.349871532567041399e-01 170 | 8.351681494252864990e-01 171 | 8.351681494252864990e-01 172 | 8.346251609195395327e-01 173 | 8.340821724137923443e-01 174 | 8.337201800766276261e-01 175 | 8.333581877394629078e-01 176 | 8.337201800766275150e-01 177 | 8.340821724137923443e-01 178 | 8.344441647509570625e-01 179 | 8.346251609195393106e-01 180 | 8.348061570881217808e-01 181 | 8.344441647509570625e-01 182 | 8.346251609195393106e-01 183 | 8.349871532567041399e-01 184 | 8.353491455938689692e-01 185 | 8.358921340996161575e-01 186 | 8.371591072796926714e-01 187 | 8.378830919540222189e-01 188 | 8.382450842911868261e-01 189 | 8.386070766283516553e-01 190 | 8.387880727969341255e-01 191 | 8.391500651340988437e-01 192 | 8.389690689655164846e-01 193 | 8.396930536398459211e-01 194 | 8.400550459770107503e-01 195 | 8.407790306513401868e-01 196 | 8.405980344827579387e-01 197 | 8.409600268199225459e-01 198 | 8.405980344827577166e-01 199 | 8.402360421455931094e-01 200 | 8.400550459770107503e-01 201 | 8.402360421455931094e-01 202 | 8.402360421455931094e-01 203 | 8.404170383141755796e-01 204 | 8.409600268199225459e-01 205 | 8.407790306513401868e-01 206 | 8.405980344827579387e-01 207 | 8.407790306513401868e-01 208 | 8.409600268199225459e-01 209 | 8.411410229885050160e-01 210 | 8.416840114942519824e-01 211 | 8.424079961685816409e-01 212 | 8.429509846743286072e-01 213 | 8.433129770114934365e-01 214 | 8.436749693486582657e-01 215 | 8.438559655172405138e-01 216 | 8.438559655172405138e-01 217 | 8.438559655172405138e-01 218 | 8.438559655172405138e-01 219 | 8.440369616858228730e-01 220 | 8.440369616858228730e-01 221 | 8.442179578544053431e-01 222 | 8.443989540229877022e-01 223 | 8.445799501915700613e-01 224 | 8.447609463601523094e-01 225 | 8.451229386973171387e-01 226 | 8.453039348658994978e-01 227 | 8.454849310344819679e-01 228 | 8.460279195402291563e-01 229 | 8.460279195402289343e-01 230 | 8.465709080459762337e-01 231 | 8.471138965517234221e-01 232 | 8.476568850574703884e-01 233 | 8.478378812260528585e-01 234 | 8.485618659003822950e-01 235 | 8.480188773946352176e-01 236 | 8.480188773946352176e-01 237 | 8.480188773946352176e-01 238 | 8.483808697318000469e-01 239 | 8.485618659003822950e-01 240 | 8.491048544061294834e-01 241 | 8.491048544061294834e-01 242 | 8.491048544061294834e-01 243 | 8.483808697318000469e-01 244 | 8.480188773946352176e-01 245 | 8.480188773946352176e-01 246 | 8.478378812260528585e-01 247 | 8.478378812260528585e-01 248 | 8.481998735632174657e-01 249 | 8.481998735632174657e-01 250 | 8.483808697317998249e-01 251 | 8.489238582375471243e-01 252 | 8.491048544061294834e-01 253 | 8.492858505747118425e-01 254 | 8.494668467432940906e-01 255 | 8.494668467432943126e-01 256 | 8.494668467432940906e-01 257 | 8.496478429118766718e-01 258 | 8.500098352490412790e-01 259 | 8.503718275862061082e-01 260 | 8.510958122605355447e-01 261 | 8.516388007662826221e-01 262 | 8.520007931034474513e-01 263 | 8.525437816091946397e-01 264 | 8.532677662835240762e-01 265 | 8.536297586206889054e-01 266 | 8.539917509578535126e-01 267 | 8.547157356321830601e-01 268 | 8.552587241379303595e-01 269 | 8.552587241379301375e-01 270 | 8.554397203065124966e-01 271 | 8.554397203065124966e-01 272 | 8.554397203065124966e-01 273 | 8.552587241379301375e-01 274 | 8.556207164750949667e-01 275 | 8.558017126436773259e-01 276 | 8.559827088122597960e-01 277 | 8.558017126436773259e-01 278 | 8.558017126436773259e-01 279 | 8.556207164750949667e-01 280 | 8.556207164750949667e-01 281 | 8.558017126436773259e-01 282 | 8.561637049808421551e-01 283 | 8.563447011494244032e-01 284 | 8.565256973180068734e-01 285 | 8.568876896551715916e-01 286 | 8.570686858237539507e-01 287 | 8.574306781609187800e-01 288 | 8.577926704980833872e-01 289 | 8.581546628352482164e-01 290 | 8.581546628352482164e-01 291 | 8.588786475095776529e-01 292 | 8.590596436781601231e-01 293 | 8.592406398467424822e-01 294 | 8.596026321839073114e-01 295 | 8.596026321839070894e-01 296 | 8.590596436781601231e-01 297 | 8.590596436781601231e-01 298 | 8.592406398467424822e-01 299 | 8.594216360153247303e-01 300 | 8.599646245210719187e-01 301 | 8.605076130268191070e-01 302 | 8.610506015325661844e-01 303 | 8.614125938697310136e-01 304 | 8.615935900383133728e-01 305 | 8.617745862068957319e-01 306 | 8.623175747126428092e-01 307 | 8.626795670498076385e-01 308 | 8.626795670498076385e-01 309 | 8.630415593869724677e-01 310 | 8.635845478927194341e-01 311 | 8.635845478927194341e-01 312 | 8.635845478927194341e-01 313 | 8.639465402298840413e-01 314 | 8.637655440613019042e-01 315 | 8.634035517241370750e-01 316 | 8.634035517241370750e-01 317 | 8.634035517241370750e-01 318 | 8.632225555555546048e-01 319 | 8.634035517241370750e-01 320 | 8.634035517241370750e-01 321 | 8.630415593869724677e-01 322 | 8.630415593869722457e-01 323 | 8.630415593869724677e-01 324 | 8.630415593869722457e-01 325 | 8.634035517241370750e-01 326 | 8.639465402298840413e-01 327 | 8.637655440613019042e-01 328 | 8.641275363984666225e-01 329 | 8.643085325670488706e-01 330 | 8.643085325670488706e-01 331 | 8.643085325670488706e-01 332 | 8.650325172413785291e-01 333 | 8.650325172413785291e-01 334 | 8.653945095785433583e-01 335 | 8.657565019157079655e-01 336 | 8.661184942528727948e-01 337 | 8.657565019157079655e-01 338 | 8.657565019157079655e-01 339 | 8.653945095785431363e-01 340 | 8.652135134099608882e-01 341 | 8.648515210727960589e-01 342 | 8.648515210727960589e-01 343 | 8.648515210727960589e-01 344 | 8.648515210727960589e-01 345 | 8.648515210727960589e-01 346 | 8.646705249042136998e-01 347 | 8.648515210727960589e-01 348 | 8.646705249042136998e-01 349 | 8.646705249042136998e-01 350 | 8.644895287356313407e-01 351 | 8.643085325670490926e-01 352 | 8.641275363984665114e-01 353 | 8.643085325670490926e-01 354 | 8.643085325670490926e-01 355 | 8.639465402298842633e-01 356 | 8.643085325670488706e-01 357 | 8.639465402298842633e-01 358 | 8.635845478927194341e-01 359 | 8.632225555555546048e-01 360 | 8.634035517241370750e-01 361 | 8.632225555555546048e-01 362 | 8.632225555555548269e-01 363 | 8.632225555555546048e-01 364 | 8.632225555555546048e-01 365 | 8.630415593869724677e-01 366 | 8.630415593869724677e-01 367 | 8.630415593869724677e-01 368 | 8.632225555555546048e-01 369 | 8.634035517241370750e-01 370 | 8.635845478927194341e-01 371 | 8.639465402298842633e-01 372 | 8.644895287356313407e-01 373 | 8.648515210727960589e-01 374 | 8.655755057471254954e-01 375 | 8.662994904214551539e-01 376 | 8.662994904214551539e-01 377 | 8.662994904214549319e-01 378 | 8.662994904214549319e-01 379 | 8.659374980842903247e-01 380 | 8.659374980842903247e-01 381 | 8.664804865900375130e-01 382 | 8.664804865900375130e-01 383 | 8.668424789272022313e-01 384 | 8.670234750957845904e-01 385 | 8.666614827586199832e-01 386 | 8.661184942528727948e-01 387 | 8.662994904214551539e-01 388 | 8.661184942528727948e-01 389 | 8.662994904214549319e-01 390 | 8.662994904214551539e-01 391 | 8.664804865900375130e-01 392 | 8.664804865900374020e-01 393 | 8.664804865900375130e-01 394 | 8.662994904214551539e-01 395 | 8.666614827586197611e-01 396 | 8.672044712643669495e-01 397 | 8.672044712643669495e-01 398 | 8.677474597701142489e-01 399 | 8.677474597701140269e-01 400 | 8.675664636015317788e-01 401 | 8.670234750957845904e-01 402 | 8.670234750957845904e-01 403 | 8.664804865900375130e-01 404 | 8.664804865900375130e-01 405 | 8.666614827586199832e-01 406 | 8.668424789272022313e-01 407 | 8.668424789272022313e-01 408 | 8.666614827586197611e-01 409 | 8.666614827586197611e-01 410 | 8.662994904214551539e-01 411 | 8.664804865900375130e-01 412 | 8.662994904214551539e-01 413 | 8.666614827586197611e-01 414 | 8.670234750957845904e-01 415 | 8.673854674329494197e-01 416 | 8.670234750957845904e-01 417 | 8.672044712643669495e-01 418 | 8.666614827586197611e-01 419 | 8.659374980842903247e-01 420 | 8.657565019157079655e-01 421 | 8.653945095785431363e-01 422 | 8.657565019157079655e-01 423 | 8.664804865900375130e-01 424 | 8.673854674329494197e-01 425 | 8.677474597701140269e-01 426 | 8.688334367816082926e-01 427 | 8.691954291187731219e-01 428 | 8.695574214559378401e-01 429 | 8.697384176245203102e-01 430 | 8.699194137931025583e-01 431 | 8.701004099616849174e-01 432 | 8.701004099616849174e-01 433 | 8.699194137931026694e-01 434 | 8.699194137931026694e-01 435 | 8.699194137931025583e-01 436 | 8.697384176245200882e-01 437 | 8.697384176245200882e-01 438 | 8.699194137931025583e-01 439 | 8.701004099616849174e-01 440 | 8.702814061302672766e-01 441 | 8.702814061302672766e-01 442 | 8.702814061302672766e-01 443 | 8.704624022988497467e-01 444 | 8.701004099616849174e-01 445 | 8.701004099616849174e-01 446 | 8.701004099616849174e-01 447 | 8.701004099616849174e-01 448 | 8.699194137931025583e-01 449 | 8.701004099616849174e-01 450 | 8.701004099616849174e-01 451 | 8.701004099616849174e-01 452 | 8.699194137931026694e-01 453 | 8.697384176245203102e-01 454 | 8.691954291187731219e-01 455 | 8.690144329501908738e-01 456 | 8.686524406130260445e-01 457 | 8.684714444444436854e-01 458 | 8.682904482758612152e-01 459 | 8.684714444444434633e-01 460 | 8.682904482758612152e-01 461 | 8.682904482758612152e-01 462 | 8.682904482758612152e-01 463 | 8.682904482758612152e-01 464 | 8.684714444444436854e-01 465 | 8.684714444444436854e-01 466 | 8.684714444444436854e-01 467 | 8.684714444444436854e-01 468 | 8.684714444444436854e-01 469 | 8.682904482758612152e-01 470 | 8.682904482758612152e-01 471 | 8.682904482758612152e-01 472 | 8.682904482758612152e-01 473 | 8.682904482758612152e-01 474 | 8.686524406130260445e-01 475 | 8.686524406130260445e-01 476 | 8.690144329501906517e-01 477 | 8.690144329501906517e-01 478 | 8.690144329501906517e-01 479 | 8.686524406130260445e-01 480 | 8.686524406130260445e-01 481 | 8.682904482758612152e-01 482 | 8.682904482758612152e-01 483 | 8.682904482758612152e-01 484 | 8.682904482758612152e-01 485 | 8.682904482758612152e-01 486 | 8.682904482758612152e-01 487 | 8.682904482758612152e-01 488 | 8.682904482758612152e-01 489 | 8.686524406130260445e-01 490 | 8.686524406130258225e-01 491 | 8.686524406130260445e-01 492 | 8.686524406130260445e-01 493 | 8.686524406130260445e-01 494 | 8.682904482758612152e-01 495 | 8.684714444444436854e-01 496 | 8.686524406130260445e-01 497 | 8.688334367816084036e-01 498 | 8.690144329501906517e-01 499 | 8.690144329501906517e-01 500 | 8.688334367816084036e-01 501 | -------------------------------------------------------------------------------- /opt_weight/qerror.txt: -------------------------------------------------------------------------------- 1 | 0.038 2 | 0.097 3 | 0.265 4 | 0.534 5 | 0.6487 -------------------------------------------------------------------------------- /opt_weight/reward.txt: -------------------------------------------------------------------------------- 1 | -5882343.379201 2 | -5602683.283127 3 | -5578671.158516 4 | -5772002.832691 5 | -6173285.203756 -------------------------------------------------------------------------------- /opt_weight/traintime.txt: -------------------------------------------------------------------------------- 1 | 10527.925 2 | 11006.8739 3 | 11157.3423 4 | 11464.573 5 | 11695.3744 -------------------------------------------------------------------------------- /options.py: -------------------------------------------------------------------------------- 1 | import argparse # 引入模块 2 | 3 | def args_parser(): 4 | parser = argparse.ArgumentParser( 5 | description='Gradient Quantization Samples') 6 | parser.add_argument('--network', type=str, default='fcn') 7 | parser.add_argument('--dataset', type=str, default='mnist') 8 | parser.add_argument('--num-classes', type=int, default=10) 9 | parser.add_argument('--quantizer', type=str, default='qsgd') 10 | parser.add_argument('--mode', type=str, default='ps') 11 | parser.add_argument('--scale', type=str, default="exp") 12 | 13 | parser.add_argument('--c-dim', type=int, default=128) 14 | parser.add_argument('--k-bit', type=int, default=8) 15 | parser.add_argument('--n-bit', type=int, default=2) 16 | parser.add_argument('--cr', type=int, default=256) 17 | parser.add_argument('--random', type=int, default=True) 18 | 19 | parser.add_argument('--num-users', type=int, default=4, metavar='N', 20 | help='num of users for training (default: 8)') 21 | parser.add_argument('--logdir', type=str, default='logs_qsgd', 22 | help='For Saving the logs') 23 | parser.add_argument('--batch-size', type=int, default=128, metavar='N', 24 | help='input batch size for training (default: 32)') 25 | parser.add_argument('--test-batch-size', type=int, default=1000, metavar='N', 26 | help='input batch size for testing (default: 1000)') 27 | parser.add_argument('--epochs', type=int, default=350, metavar='N', 28 | help='number of epochs to train (default: 350)') 29 | 30 | parser.add_argument('--momentum', type=float, default=0.9, metavar='M', 31 | help='SGD momentum (default: 0.9)') 32 | parser.add_argument('--weight-decay', type=float, default=5e-4, metavar='M', 33 | help='weight decay momentum (default: 5e-4)') 34 | parser.add_argument('--no-cuda', action='store_true', default=False, 35 | help='disables CUDA training') 36 | parser.add_argument('--ef', action='store_true', default=False, 37 | help='enable error feedback') 38 | parser.add_argument('--seed', type=int, default=1, metavar='S', 39 | help='random seed (default: 1)') 40 | parser.add_argument('--log-epoch', type=int, default=1, metavar='N', 41 | help='logging training status at each epoch') 42 | parser.add_argument('--save-model', action='store_true', default=False, 43 | help='For Saving the current Model') 44 | parser.add_argument('--two-phase', action='store_true', default=False, 45 | help='For Compression two phases') 46 | args = parser.parse_args() # 属性给予args实例 47 | return args 48 | -------------------------------------------------------------------------------- /pe.py: -------------------------------------------------------------------------------- 1 | import os 2 | os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE" 3 | # os.environ['CUDA_VISIBLE_DEVICES'] = '-1' 4 | import numpy as np 5 | import ipdb as pdb 6 | import matplotlib.pyplot as plt 7 | 8 | plt.rcParams['font.sans-serif']=['SimSun'] #显示中文 9 | plt.rcParams['axes.unicode_minus'] = False 10 | plt.rc("font",family="SimSun",size="15") 11 | 12 | 13 | def p_e(): 14 | 15 | dir = 'test_results/' 16 | a = np.loadtxt(dir + 'longtermreward1.txt') 17 | 18 | name = ["Method"] 19 | x = np.arange(len(name)) 20 | width = 0.25 21 | fig = plt.figure() 22 | plt.tick_params(bottom=False) 23 | plt.bar(x + width, a[0], width=width, label='固定 (10-比特)', color='#CC6600', tick_label="") 24 | plt.bar(x + 3 * width, a[1], width=width, label='固定 (6-比特)', color='#66CCFF') 25 | # plt.plot(tick_label="") 26 | plt.bar(x + 2 * width, a[2], width=width, label='自适应-梯度量化', color='m') 27 | plt.bar(x, a[3], width=width, label='DQN-梯度量化', color='r') 28 | plt.xticks() 29 | plt.ylabel('长期折扣奖励') 30 | plt.xlabel('方案') 31 | plt.grid(axis='y', linestyle=':') 32 | plt.legend() 33 | plt.show() 34 | 35 | b = np.loadtxt(dir + 'qerror1.txt') 36 | 37 | width = 0.25 38 | fig = plt.figure() 39 | plt.tick_params(bottom=False) 40 | plt.bar(x + width, b[0], width=width, label='固定 (10-比特)', color='#CC6600', tick_label="") 41 | plt.bar(x + 3 * width, b[1], width=width, label='固定 (6-比特)', color='#66CCFF') 42 | # plt.plot(tick_label="") 43 | plt.bar(x + 2 * width, b[2], width=width, label='自适应-梯度量化', color='m') 44 | plt.bar(x, b[3], width=width, label='DQN-梯度量化', color='r') 45 | plt.xticks() 46 | plt.ylim(0, 1) 47 | plt.ylabel('平均量化误差') 48 | plt.xlabel('方案') 49 | plt.grid(axis='y', linestyle=':') 50 | plt.legend() 51 | # plt.subplots_adjust(left=0.15) 52 | plt.show() 53 | 54 | c = np.loadtxt(dir + 'traintime1.txt') 55 | 56 | name = ["Method"] 57 | x = np.arange(len(name)) 58 | width = 0.25 59 | fig = plt.figure() 60 | plt.tick_params(bottom=False) 61 | plt.bar(x + width, c[0], width=width, label='固定 (10-比特)', color='#CC6600', tick_label="") 62 | plt.bar(x + 3 * width, c[1], width=width, label='固定 (6-比特)', color='#66CCFF') 63 | # plt.plot(tick_label="") 64 | plt.bar(x + 2 * width, c[2], width=width, label='自适应-梯度量化', color='m') 65 | plt.bar(x, c[3], width=width, label='DQN-梯度量化', color='r') 66 | plt.xticks() 67 | 68 | plt.ylabel('平均总训练时间') 69 | plt.xlabel('方案') 70 | plt.grid(axis='y', linestyle=':') 71 | plt.legend() 72 | # plt.subplots_adjust(left=0.15) 73 | plt.show() 74 | 75 | fileList = os.listdir(dir + 'loss/') 76 | fileList = [name for name in fileList if '.txt' in name] 77 | d = [np.loadtxt(dir + 'loss/' + i) for i in fileList] 78 | 79 | plt.plot(range(len(d[0])), d[0], label='自适应-梯度量化', linestyle=(0, (1, 2, 3)), color='m', lw=1.5) 80 | plt.plot(range(len(d[1])), d[1], label='DQN-梯度量化', linestyle='-', color='r', lw=1.5) 81 | plt.plot(range(len(d[3])), d[3], label='固定 (2-比特)', linestyle='-.', color='g', lw=1.5) 82 | plt.plot(range(len(d[4])), d[4], label='固定 (6-比特)', linestyle='--', color='#66CCFF', lw=1.5) 83 | plt.plot(range(len(d[2])), d[2], label='固定 (10-比特)', linestyle=':', color='#CC6600', lw=1.5) 84 | plt.legend() 85 | plt.grid(linestyle=':') 86 | plt.legend() 87 | plt.ylabel("训练损失") 88 | plt.xlabel("通信轮次") 89 | plt.show() 90 | 91 | fileList1 = os.listdir(dir + 'acc/') 92 | fileList1 = [name for name in fileList if '.txt' in name] 93 | e = [np.loadtxt(dir + 'acc/' + j) for j in fileList1] 94 | 95 | plt.plot(range(len(e[0])), e[0], label='自适应-梯度量化', linestyle=(0, (1, 2, 3)), color='m', lw=1.5) 96 | plt.plot(range(len(e[1])), e[1], label='DQN-梯度量化', linestyle='-', color='r', lw=1.5) 97 | plt.plot(range(len(e[3])), e[3], label='固定 (2-比特)', linestyle='-.', color='g', lw=1.5) 98 | plt.plot(range(len(e[4])), e[4], label='固定 (6-比特)', linestyle='--', color='#66CCFF', lw=1.5) 99 | plt.plot(range(len(e[2])), e[2], label='固定 (10-比特)', linestyle=':', color='#CC6600', lw=1.5) 100 | plt.legend() 101 | plt.grid(linestyle=':') 102 | plt.legend() 103 | plt.ylabel("测试精度") 104 | plt.xlabel("通信轮次") 105 | plt.show() 106 | 107 | fix_10 = np.loadtxt(dir + 'fix_10_time.txt') 108 | fix_6 = np.loadtxt(dir + 'fix_6_time.txt') 109 | ada = np.loadtxt(dir + 'ada_time.txt') 110 | dqn = np.loadtxt(dir + 'dqn_q_time.txt') 111 | x = [4, 6, 8, 10, 12] 112 | my_x_ticks = np.arange(4, 13, 2) # 原始数据有13个点,故此处为设置从0开始,间隔为1 113 | plt.xticks(my_x_ticks) 114 | plt.plot(x, fix_10, label='固定 (10-比特)', marker='s', color='#CC6600') 115 | plt.plot(x, fix_6, label='固定 (6-比特)', marker='d', color='#66CCFF') 116 | plt.plot(x, ada, label='自适应-梯度量化', marker='*', color='m') 117 | plt.plot(x, dqn, label='DQN-梯度量化', marker='o', color='r') 118 | plt.subplots_adjust(left=0.15) 119 | plt.subplots_adjust(bottom=0.13) 120 | plt.legend() 121 | plt.grid(linestyle=':') 122 | plt.legend() 123 | plt.ylabel("总训练时间 (s)") 124 | plt.xlabel("参与车辆数") 125 | plt.show() 126 | 127 | error_10 = np.loadtxt(dir + 'error10.txt') 128 | error_6 = np.loadtxt(dir + 'error6.txt') 129 | ada = np.loadtxt(dir + 'error_ada.txt') 130 | dqn = np.loadtxt(dir + 'error_dqn.txt') 131 | x = [4, 6, 8, 10, 12] 132 | my_x_ticks = np.arange(4, 13, 2) # 原始数据有13个点,故此处为设置从0开始,间隔为1 133 | plt.xticks(my_x_ticks) 134 | plt.plot(x, error_10, label='固定 (10-比特)', marker='s', color='#CC6600') 135 | plt.plot(x, error_6, label='固定 (6-比特)', marker='d', color='#66CCFF') 136 | plt.plot(x, ada, label='自适应-梯度量化', marker='*', color='m') 137 | plt.plot(x, dqn, label='DQN-梯度量化', marker='o', color='r') 138 | plt.xticks() 139 | plt.ylim(0, 1) 140 | plt.legend(loc=1) 141 | plt.grid(linestyle=':') 142 | plt.ylabel("量化误差") 143 | plt.xlabel("参与车辆数") 144 | plt.subplots_adjust(bottom=0.15) 145 | plt.show() 146 | 147 | reward_10 = np.loadtxt(dir + 'reward10.txt') 148 | reward_6 = np.loadtxt(dir + 'reward6.txt') 149 | ada = np.loadtxt(dir + 'rewardada.txt') 150 | dqn = np.loadtxt(dir + 'rewarddqn.txt') 151 | x = [4, 6, 8, 10, 12] 152 | my_x_ticks = np.arange(4, 13, 2) # 原始数据有13个点,故此处为设置从0开始,间隔为1 153 | 154 | plt.xticks(my_x_ticks) 155 | 156 | plt.plot(x, reward_10, label='固定 (10-比特)', marker='s', color='#CC6600') 157 | plt.plot(x, reward_6, label='固定 (6-比特)', marker='d', color='#66CCFF') 158 | plt.plot(x, ada, label='自适应-梯度量化', marker='*', color='m') 159 | plt.plot(x, dqn, label='DQN-梯度量化', marker='o', color='r') 160 | plt.ylabel('长期折扣奖励') 161 | plt.xlabel('参与车辆数') 162 | plt.grid(linestyle=':') 163 | plt.legend() 164 | # plt.subplots_adjust(bottom=0.15) 165 | plt.show() 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | -------------------------------------------------------------------------------- /plot_reward.py: -------------------------------------------------------------------------------- 1 | import os 2 | os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE" 3 | # os.environ['CUDA_VISIBLE_DEVICES'] = '-1' 4 | import numpy as np 5 | import ipdb as pdb 6 | import matplotlib.pyplot as plt 7 | 8 | 9 | def moving_average(a, n=10): 10 | ret = np.cumsum(a, dtype=float, axis=0) 11 | ret[n:] = ret[n:] - ret[:-n] 12 | return ret[n - 1:] / n 13 | 14 | def output_avg(dir): 15 | dir_path = dir 16 | fileList = os.listdir(dir_path) 17 | fileList = [name for name in fileList if '.npz' in name] 18 | avg_rs = [] 19 | for name in fileList[0:3]: 20 | path = dir_path + name 21 | np.load.__defaults__=(None, True, True, 'ASCII') 22 | res = np.load(path) 23 | np.load.__defaults__=(None, False, True, 'ASCII') 24 | temp_rs = np.array(res['arr_0']) 25 | avg_rs.append(temp_rs) 26 | avg_rs = moving_average(np.mean(avg_rs, axis=0, keepdims=True)[0],20) 27 | return avg_rs 28 | 29 | test_acc = output_avg('train/') 30 | test1 = test_acc.tolist() 31 | test = [i/1000 for i in test1] 32 | plt.plot(range(len(test1)), test1, label='reward', color='orange') 33 | #plt.legend() 34 | 35 | plt.grid(linestyle=':') 36 | plt.legend() 37 | plt.ylabel("reward") 38 | plt.xlabel("Episodes") 39 | plt.show() -------------------------------------------------------------------------------- /ps_quantizer.py: -------------------------------------------------------------------------------- 1 | import math 2 | import torch 3 | from identical_compressor import IdenticalCompressor 4 | 5 | 6 | class Quantizer(): 7 | def __init__(self, Compressor, parameters, args, level): 8 | self.parameters = list(parameters) # 模型权重 9 | self.num_layers = len(self.parameters) # 网络层数 10 | self.compressors = list() # 初始化量化器 11 | self.compressed_gradients = [list() for _ in range(self.num_layers)] # 压缩后的梯度 12 | self.args = args # 参数 13 | self.error_feedback = args.ef # False 14 | self.two_phase = self.args.two_phase # False 15 | for param in self.parameters: # 对每层的权重 16 | param_size = param.flatten().shape[0] # 权重降维后的尺寸 17 | self.compressors.append( 18 | Compressor(param_size, param.shape, args, level) if param_size > 1000 # 添加量化器 19 | else IdenticalCompressor() 20 | ) 21 | if self.error_feedback: 22 | param.error = [torch.zeros_like(param) 23 | for _ in range(args.num_users)] 24 | if self.error_feedback and self.two_phase: 25 | param.server_error = torch.zeros_like(param) 26 | 27 | def record(self, user, epoch): 28 | if self.args.scale == 'exp': 29 | scale = (2 / (math.exp(-epoch) + 1) - 1) 30 | else: 31 | scale = float(self.args.scale) 32 | 33 | for i, param in enumerate(self.parameters): 34 | if self.error_feedback: 35 | param.grad.data.add_(scale * param.error[user]) 36 | decompressed_g = self.compressors[i].decompress( 37 | self.compressors[i].compress(param.grad.data) 38 | ) 39 | param.error[user].data = param.grad.data - decompressed_g 40 | else: 41 | decompressed_g = self.compressors[i].decompress( 42 | self.compressors[i].compress(param.grad.data) 43 | ) 44 | self.compressed_gradients[i].append(decompressed_g) 45 | 46 | def apply(self): 47 | for i, param in enumerate(self.parameters): 48 | g = torch.stack(self.compressed_gradients[i], dim=0).mean(dim=0) 49 | 50 | # if compress gradient on two phase, i.e., 51 | # compress the sum of decompressed gradient 52 | if self.two_phase: 53 | if self.error_feedback: 54 | g.add_(param.server_error) 55 | decompressed_g = self.compressors[i].decompress( 56 | self.compressors[i].compress(g)) 57 | param.server_error = g - decompressed_g 58 | g = decompressed_g 59 | else: 60 | g = self.compressors[i].decompress( 61 | self.compressors[i].compress(g)) 62 | 63 | param.grad.data = g 64 | for compressed in self.compressed_gradients: 65 | compressed.clear() 66 | -------------------------------------------------------------------------------- /q_fl_dqn.py: -------------------------------------------------------------------------------- 1 | # FL相关 2 | import tflearn 3 | 4 | 5 | from qsgd_compressor import * 6 | from datetime import datetime 7 | from identical_compressor import * 8 | import torch.nn as nn 9 | import torch.optim as optim 10 | import time 11 | from fcn import FCN 12 | from resnet import * 13 | from dataloaders import mnist 14 | from ps_quantizer import * 15 | import os 16 | from logger import Logger 17 | 18 | from mec_env import MecTerm, MecTermDQN, MecSvrEnv 19 | 20 | from pe import * 21 | from helper import * 22 | from agent import * 23 | import tensorflow as tf 24 | import matplotlib 25 | import matplotlib.pyplot as plt 26 | 27 | from options import * 28 | 29 | 30 | # DDPG相关 31 | os.environ['CUDA_VISIBLE_DEVICES'] = '-1' 32 | 33 | # FL相关初始化 34 | os.environ['KMP_DUPLICATE_LIB_OK'] = 'True' 35 | 36 | # DQN相关设置 37 | tf.compat.v1.reset_default_graph() 38 | MAX_EPISODE = 2001 39 | MAX_EPISODE_LEN = 1001 40 | NUM_R = args.num_users #天线数 跟信道数有关 41 | 42 | SIGMA2 = 1e-9 # 噪声平方 10 -9 43 | 44 | config = {'state_dim': 4, 'action_dim': 2}; 45 | train_config = {'minibatch_size': 64, 46 | 'actor_lr': 0.0001, 47 | 'tau': 0.001, 48 | 'critic_lr': 0.05, # 0.001 49 | 'gamma': 0.99, 50 | 'buffer_size': 250000, # 250000 51 | 'random_seed': int(time.perf_counter() * 1000 % 1000), 52 | 'sigma2': SIGMA2, 53 | 'epsilon': 0.5} # 0.5 54 | 55 | IS_TRAIN = False 56 | 57 | res_path = 'train/' 58 | model_fold = 'model/' 59 | model_path = 'model/train_model-q' 60 | 61 | # 创建目录,用来保存dqn模型 62 | if not os.path.exists(res_path): 63 | os.mkdir(res_path) 64 | if not os.path.exists(model_fold): 65 | os.mkdir(model_fold) 66 | 67 | init_path = '' 68 | 69 | # choose the vehicle for training 70 | Train_vehicle_ID = 1 71 | 72 | # action_bound是需要后面调的 73 | user_config = [{'id': '1', 'model': 'AR', 'num_r': NUM_R, 'action_bound': 1}] 74 | 75 | # 0. initialize the session object 76 | sess = tf.compat.v1.Session() 77 | 78 | # 1. include all user in the system according to the user_config 79 | user_list = []; 80 | for info in user_config: 81 | info.update(config) 82 | info['model_path'] = model_path 83 | info['meta_path'] = info['model_path'] + '.meta' 84 | info['init_path'] = init_path 85 | info['action_level'] = 5 86 | user_list.append(MecTermDQN(sess, info, train_config)) 87 | print('Initialization OK!----> user ') 88 | 89 | # 2. create the simulation env 90 | env = MecSvrEnv(user_list, Train_vehicle_ID, SIGMA2, MAX_EPISODE_LEN) 91 | 92 | sess.run(tf.compat.v1.global_variables_initializer()) 93 | 94 | tflearn.config.is_training(is_training=IS_TRAIN, session=sess) 95 | 96 | env.init_target_network() 97 | 98 | res_r = [] # 每一步的平均奖励 99 | res_p = [] # 每个回合的平均动作 100 | 101 | args = args_parser() 102 | if args.logdir is None: 103 | assert False, "The logdir is not defined" 104 | LOGGER = Logger(args.logdir) 105 | 106 | args.no_cuda = args.no_cuda or not torch.cuda.is_available() 107 | 108 | torch.manual_seed(args.seed) 109 | device = torch.device("cpu" if args.no_cuda else "cuda") 110 | 111 | #train_loader, test_loader = mnist(args) # 235 10 112 | #model = FCN(num_classes=args.num_classes).to(device) 113 | #optimizer = optim.SGD(model.parameters(), lr=0.1, 114 | # momentum=args.momentum, weight_decay=args.weight_decay) 115 | ave_reward_ep = [] 116 | ave_ground_ep = [] 117 | ave_T_ep = [] 118 | ave_delay_ep = [] 119 | ave_error_ep = [] 120 | reward_step = [] 121 | train_loss, testing_accuracy = [], [] 122 | maxs = [] 123 | mins = [] 124 | # 开始训练DQN episode 125 | for episode in range(1, MAX_EPISODE): 126 | print(f'\n | Global Training Round/episode : {episode} |\n') 127 | #model.train() 128 | #batch_size = args.batch_size # 32 129 | #num_users = args.num_users # 8 130 | #train_data = list() 131 | #iteration = len(train_loader.dataset)//(num_users*batch_size) + \ 132 | # int(len(train_loader.dataset) % (num_users*batch_size) != 0) # 235 133 | # 记录间隔 # [23, 46, 69, 92, 115, 138, 161, 184, 207, 230] 134 | #log_interval = [iteration // args.log_epoch * (i+1) for i in range(args.log_epoch)] 135 | # Training 136 | 137 | tr_step_loss = [] 138 | tr_step_acc = [] 139 | val_acc_list, net_list = [], [] 140 | cv_loss, cv_acc = [], [] 141 | print_every = 2 142 | val_loss_pre, counter = 0, 0 143 | 144 | # DQN相关 145 | plt.ion() # 打开交互模式,画动态图 146 | cur_init_ds_ep = env.reset() # 环境重置 147 | cur_r_ep = 0 # 一个回合的总奖励 148 | cur_g_ep = 0 149 | cur_T_ep = 0 150 | cur_d_ep = 0 151 | cur_e_ep = 0 152 | step_cur_r_ep = [] 153 | count = 0 154 | # here the real batch size is (num_users * batch_size) 155 | # DQN时间步 & FL的一个通信轮次 156 | for epoch in range(1, MAX_EPISODE_LEN): 157 | i = Train_vehicle_ID - 1 158 | #if epoch == 1: 159 | #q_level1 = 1 160 | #if epoch % 5 == 0: 161 | actions = user_list[i].predict(True) 162 | print('step is : {}, q_level is: {}, power is: {}'.format(epoch,actions[0],actions[1])) 163 | #quantizer = Quantizer(QSGDCompressor, model.parameters(), args, actions[0]) 164 | #para = list(model.parameters()) 165 | #ini_para = para 166 | # FL本地训练迭代 167 | #for batch_idx, (data, target) in enumerate(train_loader): 168 | # user_batch_size = len(data) // num_users # 32 = 256//8 169 | # train_data.clear() 170 | # 给每个用户分配训练数据 171 | # for user_id in range(num_users-1): 172 | # train_data.append((data[user_id*user_batch_size:(user_id+1)*user_batch_size], 173 | # target[user_id*user_batch_size:(user_id+1)*user_batch_size])) 174 | # train_data.append((data[(num_users-1)*user_batch_size:], 175 | # target[(num_users-1)*user_batch_size:])) 176 | 177 | # 计算一次迭代的全局损失 178 | # loss = one_iter(model, device, LOSS_FUNC, optimizer, 179 | # quantizer, train_data, num_users, epoch=epoch) 180 | 181 | # 记录一个epoch的2个损失和测试精度 182 | # if (batch_idx+1) in log_interval: 183 | # train_loss.append(loss.item()) 184 | # test_accuracy = test(args, model, device, test_loader) 185 | # testing_accuracy.append(test_accuracy*100) 186 | #print('Train Episode: {} Train epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}\t Test Accuracy: {:.2f}%'.format( 187 | # episode, 188 | # epoch, 189 | # batch_idx * num_users * batch_size + len(data), 190 | # len(train_loader.dataset), 191 | # 100. * batch_idx / len(train_loader), 192 | # loss.item(), 193 | # test_accuracy*100)) 194 | 195 | # info = {'loss': loss.item(), 'accuracy(%)': test_accuracy*100} 196 | 197 | # for tag, value in info.items(): 198 | # LOGGER.scalar_summary( 199 | # tag, value, iteration*(epoch-1)+batch_idx) 200 | #para1 = list(model.parameters()) 201 | #maxx = max(para1[0].detach().numpy().reshape(1,200704).flatten()) 202 | #minn = min(abs(para1[0].detach().numpy().reshape(1,200704).flatten())) 203 | #maxs.append(maxx) 204 | #mins.append(minn) 205 | 206 | #print('Train Epoch: {} Done.\tLoss: {:.6f}'.format(epoch, loss.item())) 207 | 208 | reward = 0 209 | trs = 0 210 | deltas = 0 211 | diss = 0 212 | mini_ground = 0 213 | T_total = 0 214 | 215 | max_len = 1000 # MAX_EPISODE_LEN 216 | count += 1 217 | 218 | i = Train_vehicle_ID - 1 219 | # feedback the sinr to each user 220 | [reward, mini_ground, T_total, trs, deltas, diss, q_level, power, delay, q_error] = user_list[i].feedback(actions[0], actions[1]) 221 | print("reward is: {}, delay is: {}".format(reward,delay)) 222 | 223 | reward_step.append(reward) 224 | 225 | user_list[i].AgentUpdate(count >= max_len) # 训练数据个数逐渐增加 大于buffer的大小时 进行更新agent 226 | cur_r = reward 227 | cur_mg = mini_ground 228 | cur_T = T_total 229 | cur_q = q_level 230 | cur_d = delay 231 | cur_e = q_error 232 | done = count >= max_len # max_len即为MAX_EPISODE_LEN 233 | 234 | cur_r_ep += cur_r # 一个回合的总奖励 所有step的奖励之和 235 | cur_g_ep += cur_mg 236 | cur_T_ep += cur_T 237 | cur_d_ep += cur_d 238 | cur_e_ep += cur_e 239 | # for m in range(args.num_users): 240 | # cur_p_ep[m] += cur_p[m] 241 | 242 | # if done: # 一个episode结束 243 | # res_r.append(cur_r_ep / MAX_EPISODE_LEN) # 后面为了存储进模型 每一步的平均奖励 244 | 245 | # cur_p_ep1 = [0] * args.num_users 246 | # for m in range(args.num_users): 247 | # cur_p_ep1[m] = cur_p_ep[m] / MAX_EPISODE_LEN # 一个回合里平均每一个step的动作 248 | # res_p.append(cur_p_ep1) # 用来存储每个回合的平均动作 249 | 250 | print("episode = ", episode) 251 | print("r = ", cur_r_ep / MAX_EPISODE_LEN) 252 | print("delay = ", cur_d_ep / MAX_EPISODE_LEN) 253 | print("error = ", cur_e_ep / MAX_EPISODE_LEN) 254 | ave_reward_ep.append(cur_r_ep / MAX_EPISODE_LEN) 255 | ave_ground_ep.append(cur_g_ep / MAX_EPISODE_LEN) 256 | ave_T_ep.append(cur_T_ep / MAX_EPISODE_LEN) 257 | ave_delay_ep.append(cur_d_ep / MAX_EPISODE_LEN) 258 | ave_error_ep.append(cur_e_ep / MAX_EPISODE_LEN) 259 | # print("p_lambda = ", cur_p_ep1) # this is wrong 260 | # print("cur_r_ep = ", cur_r_ep) 261 | 262 | # line_reward = ax.plot(range(0, MAX_EPISODE), cur_r_ep, '#ff7f0e', label='reward', lw=1) 263 | # line_pro = ax2.plot(range(0, MAX_EPISODE), step_cur_r_ep[0], '#ff7f0e', label='第1辆车的the probility(选择每辆车的概率,即动作输出)', lw=1) 264 | plt.ioff() 265 | #upper = max(maxs) 266 | #lower = min(mins) 267 | #print("upper is", upper) 268 | #print("lower is", lower) 269 | # DDPG模型保存 270 | name = res_path + 'a1bathnormal_env_max_ep2000_tep_1000_buffersize250000_maxstep500000_prestep25000_lr0.05_plot_minig+T_tfacter0.5_num4' 271 | #np.savez(name, train_loss, testing_accuracy, ave_reward_ep, ave_delay_ep, ave_error_ep) # 保存平均每一步的q_level和奖励 # 为了后面的画图 272 | np.savez(name, ave_reward_ep, ave_ground_ep, ave_T_ep, ave_delay_ep, ave_error_ep) 273 | 274 | tflearn.config.is_training(is_training=False, session=sess) 275 | # Create a saver object which will save all the variables # 即保存模型参数 276 | saver = tf.compat.v1.train.Saver() 277 | saver.save(sess, model_path) 278 | sess.close() 279 | 280 | #if args.save_model: 281 | # filename = "saved_{}_{}.pt".format(args.network, datetime.now()) 282 | # torch.save(model.state_dict(), filename) 283 | 284 | matplotlib.use('TkAgg') 285 | os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE" 286 | 287 | ''' 288 | plt.figure() 289 | plt.plot(range(len(ave_reward_ep)), ave_reward_ep, color='b') 290 | plt.ylabel('Training reward') 291 | plt.xlabel('Episode') 292 | plt.rcParams['axes.unicode_minus']=False 293 | plt.show() 294 | # plt.savefig('train_reward.png') 295 | 296 | plt.figure() 297 | # plt.title('Training loss') 298 | plt.plot(range(len(train_loss)), train_loss, color='b') 299 | plt.ylabel('Training loss') 300 | plt.xlabel('Episode') 301 | plt.show() 302 | # plt.savefig('train_loss.png') 303 | 304 | plt.figure() 305 | # plt.title('Training loss') 306 | plt.plot(range(len(train_loss)), train_loss, color='b') 307 | plt.ylabel('Training loss') 308 | plt.xlabel('Episode') 309 | plt.show() 310 | # plt.savefig('train_loss.png') 311 | 312 | plt.figure() 313 | # plt.title('Test Accuracy') 314 | plt.plot(range(len(ave_error_ep)), ave_error_ep, color='r') 315 | plt.ylabel('Average error') 316 | plt.xlabel('Episode') 317 | plt.show() 318 | 319 | plt.figure() 320 | # plt.title('Test Accuracy') 321 | plt.plot(range(len(ave_delay_ep)), ave_delay_ep, color='r') 322 | plt.ylabel('Average delay') 323 | plt.xlabel('Episode') 324 | plt.show() 325 | ''' 326 | 327 | ''' 328 | plt.figure() 329 | # plt.title('Test Accuracy') 330 | plt.plot(range(len(testing_accuracy)), testing_accuracy, color='r') 331 | plt.ylabel('Testing Accuracy') 332 | plt.xlabel('Episode') 333 | plt.show() 334 | # plt.savefig('train_accuracy.png') 335 | 336 | plt.figure() 337 | # plt.title('Test Accuracy') 338 | plt.plot(range(len(ave_delay_ep)), ave_delay_ep, color='r') 339 | plt.ylabel('Average delay') 340 | plt.xlabel('Episode') 341 | plt.show() 342 | 343 | plt.figure() 344 | # plt.title('Test Accuracy') 345 | plt.plot(range(len(ave_error_ep)), ave_error_ep, color='r') 346 | plt.ylabel('Average error') 347 | plt.xlabel('Episode') 348 | plt.show() 349 | ''' 350 | p_e() 351 | 352 | -------------------------------------------------------------------------------- /qsgd_compressor.py: -------------------------------------------------------------------------------- 1 | import torch 2 | 3 | 4 | class QSGDCompressor(object): 5 | def __init__(self, size, shape, args, q_level): 6 | self.random = args.random 7 | self.bit = q_level # 量化电平(动作) 8 | c_dim = args.c_dim # 桶? 9 | assert self.bit > 0 # 量化电平大于零 10 | 11 | self.cuda = not args.no_cuda # False 12 | self.s = 2 ** self.bit 13 | self.size = size # 权重的尺寸 14 | self.shape = shape # 权重的形状 15 | 16 | if c_dim == 0 or self.size < args.c_dim: 17 | self.dim = self.size 18 | else: 19 | self.dim = c_dim # 桶大小 20 | for i in range(0, 10): 21 | if size % self.dim != 0: 22 | self.dim = self.dim // 2 * 3 23 | 24 | if c_dim != self.dim: 25 | print("alternate dimension form" 26 | " {} to {}, size {} shape {}" 27 | .format(c_dim, self.dim, size, shape)) 28 | 29 | assert self.dim != 0, \ 30 | "0 sub dimension size {} " \ 31 | "c_dim {} self.dim {}"\ 32 | .format(size, c_dim, self.dim) 33 | assert size % self.dim == 0, \ 34 | "not divisible size {} " \ 35 | " c_dim {} self.dim {}"\ 36 | .format(size, c_dim, self.dim) 37 | 38 | self.M = size // self.dim 39 | self.code_dtype = torch.int32 40 | 41 | 42 | def compress(self, vec): 43 | """ 44 | :param vec: torch tensor 45 | :return: norm, signs, quantized_intervals 46 | """ 47 | vec = vec.view(-1, self.dim) 48 | # norm = torch.norm(vec, dim=1, keepdim=True) 49 | norm = torch.max(torch.abs(vec), dim=1, keepdim=True)[0] 50 | normalized_vec = vec / norm 51 | 52 | scaled_vec = torch.abs(normalized_vec) * self.s 53 | l = torch.clamp(scaled_vec, 0, self.s-1).type(self.code_dtype) 54 | 55 | if self.random: 56 | # l[i] <- l[i] + 1 with probability |v_i| / ||v|| * s - l 57 | probabilities = scaled_vec - l.type(torch.float32) 58 | r = torch.rand(l.size()) 59 | if self.cuda: 60 | r = r.cuda() 61 | l[:] += (probabilities > r).type(self.code_dtype) 62 | 63 | signs = torch.sign(vec) > 0 64 | return [norm, signs.view(self.shape), l.view(self.shape)] 65 | 66 | def decompress(self, signature): 67 | [norm, signs, l] = signature 68 | assert l.shape == signs.shape 69 | scaled_vec = l.type(torch.float32) * (2 * signs.type(torch.float32) - 1) 70 | compressed = (scaled_vec.view((-1, self.dim))) * norm / self.s 71 | return compressed.view(self.shape) 72 | -------------------------------------------------------------------------------- /resnet.py: -------------------------------------------------------------------------------- 1 | '''ResNet-18 Image classfication for cifar-10 with PyTorch 2 | 3 | Author 'Sun-qian'. 4 | https://blog.csdn.net/sunqiande88/article/details/80100891 5 | ''' 6 | import torch 7 | import torch.nn as nn 8 | import torch.nn.functional as F 9 | 10 | 11 | class ResidualBlock(nn.Module): 12 | expansion = 1 13 | 14 | def __init__(self, inchannel, outchannel, stride=1): 15 | super(ResidualBlock, self).__init__() 16 | self.left = nn.Sequential( 17 | nn.Conv2d(inchannel, outchannel, kernel_size=3, 18 | stride=stride, padding=1, bias=False), 19 | nn.BatchNorm2d(outchannel), 20 | nn.ReLU(inplace=True), 21 | nn.Conv2d(outchannel, outchannel, kernel_size=3, 22 | stride=1, padding=1, bias=False), 23 | nn.BatchNorm2d(outchannel) 24 | ) 25 | self.shortcut = nn.Sequential() 26 | if stride != 1 or inchannel != outchannel: 27 | self.shortcut = nn.Sequential( 28 | nn.Conv2d(inchannel, outchannel, kernel_size=1, 29 | stride=stride, bias=False), 30 | nn.BatchNorm2d(outchannel) 31 | ) 32 | 33 | def forward(self, x): 34 | out = self.left(x) 35 | out += self.shortcut(x) 36 | out = F.relu(out) 37 | return out 38 | 39 | 40 | class Bottleneck(nn.Module): 41 | expansion = 4 42 | 43 | def __init__(self, in_planes, planes, stride=1): 44 | super(Bottleneck, self).__init__() 45 | self.conv1 = nn.Conv2d(in_planes, planes, kernel_size=1, bias=False) 46 | self.bn1 = nn.BatchNorm2d(planes) 47 | self.conv2 = nn.Conv2d(planes, planes, kernel_size=3, stride=stride, padding=1, bias=False) 48 | self.bn2 = nn.BatchNorm2d(planes) 49 | self.conv3 = nn.Conv2d(planes, self.expansion*planes, kernel_size=1, bias=False) 50 | self.bn3 = nn.BatchNorm2d(self.expansion*planes) 51 | 52 | self.shortcut = nn.Sequential() 53 | if stride != 1 or in_planes != self.expansion*planes: 54 | self.shortcut = nn.Sequential( 55 | nn.Conv2d(in_planes, self.expansion*planes, kernel_size=1, stride=stride, bias=False), 56 | nn.BatchNorm2d(self.expansion*planes) 57 | ) 58 | 59 | def forward(self, x): 60 | out = F.relu(self.bn1(self.conv1(x))) 61 | out = F.relu(self.bn2(self.conv2(out))) 62 | out = self.bn3(self.conv3(out)) 63 | out += self.shortcut(x) 64 | out = F.relu(out) 65 | return out 66 | 67 | 68 | class ResNet(nn.Module): 69 | def __init__(self, block, num_blocks, num_classes=10): 70 | super(ResNet, self).__init__() 71 | self.inchannel = 64 72 | self.conv1 = nn.Sequential( 73 | nn.Conv2d(3, 64, kernel_size=3, stride=1, padding=1, bias=False), 74 | nn.BatchNorm2d(64), 75 | nn.ReLU(), 76 | ) 77 | self.layer1 = self.make_layer(block, 64, num_blocks[0], stride=1) 78 | self.layer2 = self.make_layer(block, 128, num_blocks[1], stride=2) 79 | self.layer3 = self.make_layer(block, 256, num_blocks[2], stride=2) 80 | self.layer4 = self.make_layer(block, 512, num_blocks[3], stride=2) 81 | self.fc = nn.Linear(512 * block.expansion, num_classes) # 512 82 | 83 | def make_layer(self, block, channels, num_blocks, stride): 84 | strides = [stride] + [1] * (num_blocks - 1) # strides=[1,1] 85 | layers = [] 86 | for stride in strides: 87 | layers.append(block(self.inchannel, channels, stride)) 88 | self.inchannel = channels * block.expansion 89 | return nn.Sequential(*layers) 90 | 91 | def forward(self, x): 92 | out = self.conv1(x) 93 | out = self.layer1(out) 94 | out = self.layer2(out) 95 | out = self.layer3(out) 96 | out = self.layer4(out) 97 | out = F.avg_pool2d(out, 4) # 4 98 | out = out.view(out.size(0), -1) 99 | out = self.fc(out) 100 | return out 101 | 102 | def ResNet18(**kwargs): 103 | return ResNet(ResidualBlock, [1,1,1,1], **kwargs) 104 | 105 | def ResNet34(**kwargs): 106 | return ResNet(ResidualBlock, [3,4,6,3], **kwargs) 107 | 108 | def ResNet50(**kwargs): 109 | return ResNet(Bottleneck, [3,4,6,3], **kwargs) 110 | 111 | def ResNet101(**kwargs): 112 | return ResNet(Bottleneck, [3,4,23,3], **kwargs) 113 | 114 | def ResNet152(**kwargs): 115 | return ResNet(Bottleneck, [3,8,36,3], **kwargs) 116 | -------------------------------------------------------------------------------- /test/dir/testNov_03_2022_01_11_51.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/test/dir/testNov_03_2022_01_11_51.npz -------------------------------------------------------------------------------- /test/dir/testNov_03_2022_17_30_04.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/test/dir/testNov_03_2022_17_30_04.npz -------------------------------------------------------------------------------- /test/step_result/dir/step_resultNov_02_2022_15_21_32.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/test/step_result/dir/step_resultNov_02_2022_15_21_32.npz -------------------------------------------------------------------------------- /test/step_result/dir/step_resultNov_02_2022_16_35_09.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/test/step_result/dir/step_resultNov_02_2022_16_35_09.npz -------------------------------------------------------------------------------- /test/step_result/dir/step_resultNov_02_2022_17_48_54.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/test/step_result/dir/step_resultNov_02_2022_17_48_54.npz -------------------------------------------------------------------------------- /test/step_result/dir/step_resultNov_02_2022_19_02_37.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/test/step_result/dir/step_resultNov_02_2022_19_02_37.npz -------------------------------------------------------------------------------- /test/step_result/dir/step_resultNov_02_2022_20_16_47.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/test/step_result/dir/step_resultNov_02_2022_20_16_47.npz -------------------------------------------------------------------------------- /test/step_result/dir/step_resultNov_02_2022_21_30_58.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/test/step_result/dir/step_resultNov_02_2022_21_30_58.npz -------------------------------------------------------------------------------- /test/step_result/dir/step_resultNov_02_2022_22_44_32.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/test/step_result/dir/step_resultNov_02_2022_22_44_32.npz -------------------------------------------------------------------------------- /test/step_result/dir/step_resultNov_02_2022_23_58_06.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/test/step_result/dir/step_resultNov_02_2022_23_58_06.npz -------------------------------------------------------------------------------- /test/step_result/dir/step_resultNov_03_2022_01_11_51.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/test/step_result/dir/step_resultNov_03_2022_01_11_51.npz -------------------------------------------------------------------------------- /test/step_result/dir/step_resultNov_03_2022_17_30_04.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/test/step_result/dir/step_resultNov_03_2022_17_30_04.npz -------------------------------------------------------------------------------- /test_q_fl_dqn.py: -------------------------------------------------------------------------------- 1 | # FL相关 2 | from qsgd_compressor import * 3 | from datetime import datetime 4 | from identical_compressor import * 5 | import torch.nn as nn 6 | import torch.optim as optim 7 | import time 8 | from fcn import FCN 9 | from resnet import * 10 | from dataloaders import mnist 11 | from ps_quantizer import * 12 | import os 13 | from logger import Logger 14 | 15 | from mec_env import * 16 | from helper import * 17 | from agent import * 18 | import tensorflow as tf 19 | import matplotlib 20 | import matplotlib.pyplot as plt 21 | 22 | from options import * 23 | 24 | # DDPG相关 25 | os.environ['CUDA_VISIBLE_DEVICES'] = '-1' 26 | 27 | # FL相关初始化 28 | os.environ['KMP_DUPLICATE_LIB_OK'] = 'True' 29 | 30 | # DQN相关设置 31 | tf.compat.v1.reset_default_graph() 32 | MAX_EPISODE = 2 33 | MAX_EPISODE_LEN = 501 34 | NUM_R = args.num_users # 天线数 跟信道数有关 35 | 36 | SIGMA2 = 1e-9 # 噪声平方 10 -9 37 | 38 | config = {'state_dim': 4, 'action_dim': 2}; 39 | train_config = {'minibatch_size': 64, 40 | 'actor_lr': 0.0001, 41 | 'tau': 0.001, 42 | 'critic_lr': 0.05, # 0.001 43 | 'gamma': 0.99, 44 | 'buffer_size': 250000, # 250000 45 | 'random_seed': int(time.perf_counter() * 1000 % 1000), 46 | 'sigma2': SIGMA2, 47 | 'epsilon': 0.5} # 0.5 48 | 49 | IS_TRAIN = False 50 | 51 | res_path = 'test/' 52 | step_result_path = res_path + 'step_result/' 53 | model_fold = 'model/' 54 | model_path = 'model/train_model-q' 55 | 56 | # 创建目录,用来保存dqn模型 57 | if not os.path.exists(res_path): 58 | os.mkdir(res_path) 59 | if not os.path.exists(step_result_path): 60 | os.mkdir(step_result_path) 61 | if not os.path.exists(model_fold): 62 | os.mkdir(model_fold) 63 | 64 | # meta_path = model_path + '.meta' 65 | init_path = '' 66 | # init_seqCnt = 40 67 | 68 | # choose the vehicle for training 69 | Train_vehicle_ID = 1 70 | 71 | # action_bound是需要后面调的 72 | user_config = [{'id': '1', 'model': 'AR', 'num_r': NUM_R, 'action_bound': 1}] 73 | 74 | # 0. initialize the session object 75 | sess = tf.compat.v1.Session() 76 | 77 | # 1. include all user in the system according to the user_config 78 | user_list = []; 79 | for info in user_config: 80 | info.update(config) 81 | info['model_path'] = model_path 82 | info['meta_path'] = info['model_path'] + '.meta' 83 | info['init_path'] = init_path 84 | info['action_level'] = 5 85 | user_list.append(MecTermDQN_LD(sess, info, train_config)) 86 | print('Initialization OK!----> user ') 87 | 88 | # 2. create the simulation env 89 | env = MecSvrEnv(user_list, Train_vehicle_ID, SIGMA2, MAX_EPISODE_LEN, mode='test') 90 | 91 | res_r = [] # 每一步的平均奖励 92 | res_a = [] # 每个回合的平均动作 93 | res_q = [] 94 | res_p = [] 95 | 96 | args = args_parser() 97 | 98 | args.no_cuda = args.no_cuda or not torch.cuda.is_available() 99 | 100 | torch.manual_seed(args.seed) 101 | device = torch.device("cpu" if args.no_cuda else "cuda") 102 | 103 | train_loader, test_loader = mnist(args) # 235 10 104 | model = FCN(num_classes=args.num_classes).to(device) 105 | optimizer = optim.SGD(model.parameters(), lr=0.1, 106 | momentum=args.momentum, weight_decay=args.weight_decay) 107 | ave_reward_ep = [] 108 | ave_delay_ep = [] 109 | ave_error_ep = [] 110 | #reward_step = [] 111 | train_loss, testing_accuracy = [], [] 112 | 113 | # 开始训练DQN episode 114 | for episode in range(1, MAX_EPISODE): 115 | print(f'\n | Global Training Round/episode : {episode} |\n') 116 | model.train() 117 | batch_size = args.batch_size # 32 118 | num_users = args.num_users # 8 119 | train_data = list() 120 | iteration = len(train_loader.dataset) // (num_users * batch_size) + \ 121 | int(len(train_loader.dataset) % (num_users * batch_size) != 0) # 235 122 | # 记录间隔 # [23, 46, 69, 92, 115, 138, 161, 184, 207, 230] 123 | log_interval = [iteration // args.log_epoch * (i + 1) for i in range(args.log_epoch)] 124 | # Training 125 | 126 | tr_step_loss = [] 127 | tr_step_acc = [] 128 | val_acc_list, net_list = [], [] 129 | cv_loss, cv_acc = [], [] 130 | print_every = 2 131 | val_loss_pre, counter = 0, 0 132 | step_r = [] 133 | step_mg = [] 134 | step_T = [] 135 | step_q = [] 136 | step_p = [] 137 | step_d = [] 138 | step_e = [] 139 | step_tr = [] 140 | step_delta = [] 141 | step_diss = [] 142 | 143 | # DQN相关 144 | # plt.ion() # 打开交互模式,画动态图 145 | cur_init_ds_ep = env.reset() # 环境重置 146 | cur_r_ep = 0 # 一个回合的总奖励 147 | cur_d_ep = 0 148 | cur_e_ep = 0 149 | step_cur_r_ep = [] 150 | count = 0 151 | # here the real batch size is (num_users * batch_size) 152 | # DQN时间步 & FL的一个通信轮次 153 | for epoch in range(1, MAX_EPISODE_LEN): 154 | i = Train_vehicle_ID - 1 155 | # if epoch == 1: 156 | # q_level1 = 1 157 | # if epoch % 5 == 0: 158 | actions = user_list[i].predict1(True) 159 | print('step is : {}, q_level is: {}, power is: {}'.format(epoch, actions[0], actions[1])) 160 | quantizer = Quantizer(QSGDCompressor, model.parameters(), args, actions[0]) 161 | # para = list(model.parameters()) 162 | # ini_para = para 163 | # FL本地训练迭代 164 | for batch_idx, (data, target) in enumerate(train_loader): 165 | user_batch_size = len(data) // num_users # 32 = 256//8 166 | train_data.clear() 167 | # 给每个用户分配训练数据 168 | for user_id in range(num_users - 1): 169 | train_data.append((data[user_id * user_batch_size:(user_id + 1) * user_batch_size], 170 | target[user_id * user_batch_size:(user_id + 1) * user_batch_size])) 171 | train_data.append((data[(num_users - 1) * user_batch_size:], 172 | target[(num_users - 1) * user_batch_size:])) 173 | 174 | # 计算一次迭代的全局损失 175 | loss = one_iter(model, device, LOSS_FUNC, optimizer, 176 | quantizer, train_data, num_users, epoch=epoch) 177 | 178 | # 记录一个epoch的2个损失和测试精度 179 | if (batch_idx + 1) in log_interval: 180 | train_loss.append(loss.item()) 181 | test_accuracy = test(args, model, device, test_loader) 182 | testing_accuracy.append(test_accuracy * 100) 183 | # print('Train Episode: {} Train epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}\t Test Accuracy: {:.2f}%'.format( 184 | # episode, 185 | # epoch, 186 | # batch_idx * num_users * batch_size + len(data), 187 | # len(train_loader.dataset), 188 | # 100. * batch_idx / len(train_loader), 189 | # loss.item(), 190 | # test_accuracy*100)) 191 | 192 | # info = {'loss': loss.item(), 'accuracy(%)': test_accuracy*100} 193 | 194 | # for tag, value in info.items(): 195 | # LOGGER.scalar_summary( 196 | # tag, value, iteration*(epoch-1)+batch_idx) 197 | # para1 = list(model.parameters()) 198 | # maxx = max(para1[0].detach().numpy().reshape(1,200704).flatten()) 199 | # minn = min(abs(para1[0].detach().numpy().reshape(1,200704).flatten())) 200 | # maxs.append(maxx) 201 | # mins.append(minn) 202 | 203 | print('Train Epoch: {} Done.\tLoss: {:.6f}'.format(epoch, loss.item())) 204 | 205 | reward = 0 206 | trs = 0 207 | deltas = 0 208 | diss = 0 209 | 210 | max_len = 500 # MAX_EPISODE_LEN 211 | count += 1 212 | 213 | i = Train_vehicle_ID - 1 214 | # feedback the sinr to each user 215 | [reward, mini_ground, T_total, trs, deltas, diss, q_level, power, delay, q_error] = user_list[i].feedback1(actions[0], actions[1]) 216 | print("reward is: {}, delay is: {}".format(reward, delay)) 217 | #reward_step.append(reward) 218 | 219 | # user_list[i].AgentUpdate(count >= max_len) # 训练数据个数逐渐增加 大于buffer的大小时 进行更新agent 220 | cur_r = reward 221 | cur_mg = mini_ground 222 | cur_T = T_total 223 | cur_q = q_level 224 | cur_p = power 225 | cur_d = delay 226 | cur_e = q_error 227 | cur_tr = trs 228 | cur_delta = deltas 229 | cur_diss = diss 230 | # done = count >= max_len # max_len即为MAX_EPISODE_LEN 231 | 232 | step_r.append(cur_r) 233 | step_mg.append(cur_mg) 234 | step_T.append(cur_T) 235 | step_q.append(cur_q) 236 | step_p.append(cur_p) 237 | step_d.append(cur_d) 238 | step_e.append(cur_e) 239 | step_tr.append(cur_tr) 240 | step_delta.append(cur_delta) 241 | step_diss.append(cur_diss) 242 | 243 | #cur_r_ep += cur_r # 一个回合的总奖励 所有step的奖励之和 244 | #cur_d_ep += cur_d 245 | #cur_e_ep += cur_e 246 | # for m in range(args.num_users): 247 | # cur_p_ep[m] += cur_p[m] 248 | 249 | # if done: # 一个episode结束 250 | # res_r.append(cur_r_ep / MAX_EPISODE_LEN) # 后面为了存储进模型 每一步的平均奖励 251 | 252 | # cur_p_ep1 = [0] * args.num_users 253 | # for m in range(args.num_users): 254 | # cur_p_ep1[m] = cur_p_ep[m] / MAX_EPISODE_LEN # 一个回合里平均每一个step的动作 255 | # res_p.append(cur_p_ep1) # 用来存储每个回合的平均动作 256 | 257 | #print("episode = ", episode) 258 | #print("r = ", cur_r_ep / MAX_EPISODE_LEN) 259 | #print("delay = ", cur_d_ep / MAX_EPISODE_LEN) 260 | #print("error = ", cur_e_ep / MAX_EPISODE_LEN) 261 | #ave_reward_ep.append(cur_r_ep / MAX_EPISODE_LEN) 262 | #ave_delay_ep.append(cur_d_ep / MAX_EPISODE_LEN) 263 | #ave_error_ep.append(cur_e_ep / MAX_EPISODE_LEN) 264 | 265 | step_result = step_result_path + 'step_result' + time.strftime("%b_%d_%Y_%H_%M_%S", time.localtime(time.time())) 266 | np.savez(step_result, step_r, step_mg, step_T, step_q, step_p, step_d, step_e, step_tr, step_delta, step_diss) 267 | # print("p_lambda = ", cur_p_ep1) # this is wrong 268 | # print("cur_r_ep = ", cur_r_ep) 269 | 270 | # line_reward = ax.plot(range(0, MAX_EPISODE), cur_r_ep, '#ff7f0e', label='reward', lw=1) 271 | # line_pro = ax2.plot(range(0, MAX_EPISODE), step_cur_r_ep[0], '#ff7f0e', label='第1辆车的the probility(选择每辆车的概率,即动作输出)', lw=1) 272 | # plt.ioff() 273 | 274 | # 模型保存 275 | name = res_path + 'test' + time.strftime("%b_%d_%Y_%H_%M_%S", time.localtime(time.time())) 276 | # np.savez(name, train_loss, testing_accuracy, ave_reward_ep, ave_delay_ep, ave_error_ep) # 保存平均每一步的q_level和奖励 # 为了后面的画图 277 | np.savez(name, train_loss, testing_accuracy) 278 | 279 | sess.close() -------------------------------------------------------------------------------- /test_results/acc/ada.txt: -------------------------------------------------------------------------------- 1 | 3.327250000000000485e-01 2 | 3.444800000000000084e-01 3 | 3.557500000000000107e-01 4 | 3.703450000000000353e-01 5 | 3.823300000000001142e-01 6 | 3.959450000000001024e-01 7 | 4.074550000000001226e-01 8 | 4.177650000000001640e-01 9 | 4.300150000000001471e-01 10 | 4.396550000000001290e-01 11 | 4.480200000000001959e-01 12 | 4.551000000000001711e-01 13 | 4.630350000000001964e-01 14 | 4.708150000000001500e-01 15 | 4.783400000000000984e-01 16 | 4.859100000000001751e-01 17 | 4.923900000000000499e-01 18 | 4.993800000000000461e-01 19 | 5.059750000000000636e-01 20 | 5.133550000000000058e-01 21 | 5.198650000000000215e-01 22 | 5.267199999999999660e-01 23 | 5.336250000000000160e-01 24 | 5.418800000000000283e-01 25 | 5.479799999999999116e-01 26 | 5.536349999999998772e-01 27 | 5.608799999999998231e-01 28 | 5.669699999999998630e-01 29 | 5.724299999999999944e-01 30 | 5.778600000000000403e-01 31 | 5.851699999999999680e-01 32 | 5.912549999999999750e-01 33 | 5.965599999999999792e-01 34 | 6.015700000000000491e-01 35 | 6.066050000000000608e-01 36 | 6.121100000000001540e-01 37 | 6.170050000000000257e-01 38 | 6.231650000000000800e-01 39 | 6.285950000000001259e-01 40 | 6.324650000000001659e-01 41 | 6.370800000000003127e-01 42 | 6.413050000000002360e-01 43 | 6.458150000000001389e-01 44 | 6.494600000000001483e-01 45 | 6.540250000000004116e-01 46 | 6.590150000000003505e-01 47 | 6.619450000000002277e-01 48 | 6.648400000000002086e-01 49 | 6.656250000000001332e-01 50 | 6.678650000000002640e-01 51 | 6.695100000000003826e-01 52 | 6.727800000000003777e-01 53 | 6.734200000000003516e-01 54 | 6.760150000000002546e-01 55 | 6.794900000000001494e-01 56 | 6.811250000000003135e-01 57 | 6.856850000000003220e-01 58 | 6.884200000000001429e-01 59 | 6.911749999999999838e-01 60 | 6.953149999999999054e-01 61 | 6.982899999999997442e-01 62 | 7.006599999999998385e-01 63 | 7.013199999999999434e-01 64 | 7.037599999999997191e-01 65 | 7.066899999999997073e-01 66 | 7.094449999999998813e-01 67 | 7.123599999999999932e-01 68 | 7.152699999999999614e-01 69 | 7.207399999999999363e-01 70 | 7.243449999999999056e-01 71 | 7.271899999999998920e-01 72 | 7.290499999999997538e-01 73 | 7.345849999999998214e-01 74 | 7.378750000000000586e-01 75 | 7.383050000000001001e-01 76 | 7.401399999999999091e-01 77 | 7.423749999999997851e-01 78 | 7.447399999999998466e-01 79 | 7.453800000000001535e-01 80 | 7.466950000000001086e-01 81 | 7.491150000000000864e-01 82 | 7.520800000000000818e-01 83 | 7.577750000000001984e-01 84 | 7.600200000000004730e-01 85 | 7.626500000000003832e-01 86 | 7.646700000000002939e-01 87 | 7.660100000000003018e-01 88 | 7.688600000000004320e-01 89 | 7.704700000000006543e-01 90 | 7.737150000000003747e-01 91 | 7.760400000000003962e-01 92 | 7.783450000000005087e-01 93 | 7.796900000000004383e-01 94 | 7.820550000000003887e-01 95 | 7.852950000000002984e-01 96 | 7.872250000000005077e-01 97 | 7.868800000000003569e-01 98 | 7.838550000000001905e-01 99 | 7.862200000000001410e-01 100 | 7.883700000000004593e-01 101 | 7.896100000000003671e-01 102 | 7.893200000000000216e-01 103 | 7.894899999999995810e-01 104 | 7.894649999999998613e-01 105 | 7.893499999999999961e-01 106 | 7.902400000000000535e-01 107 | 7.921600000000001973e-01 108 | 7.933950000000002944e-01 109 | 7.943750000000001643e-01 110 | 7.942700000000002536e-01 111 | 7.939799999999997970e-01 112 | 7.936849999999999739e-01 113 | 7.945250000000001478e-01 114 | 7.948850000000000637e-01 115 | 7.957199999999999829e-01 116 | 7.974699999999999012e-01 117 | 7.993650000000002143e-01 118 | 8.044100000000007356e-01 119 | 8.056150000000009692e-01 120 | 8.063000000000009049e-01 121 | 8.070800000000012409e-01 122 | 8.082050000000016166e-01 123 | 8.100050000000017514e-01 124 | 8.123950000000015326e-01 125 | 8.137550000000011163e-01 126 | 8.141000000000012671e-01 127 | 8.149150000000012772e-01 128 | 8.153200000000012659e-01 129 | 8.154450000000010856e-01 130 | 8.165550000000010300e-01 131 | 8.193600000000010875e-01 132 | 8.207600000000006002e-01 133 | 8.221050000000005298e-01 134 | 8.228650000000001796e-01 135 | 8.238200000000006629e-01 136 | 8.249700000000004252e-01 137 | 8.272899999999999698e-01 138 | 8.274349999999998095e-01 139 | 8.278949999999994924e-01 140 | 8.286549999999991423e-01 141 | 8.281199999999990791e-01 142 | 8.286999999999992150e-01 143 | 8.282699999999991736e-01 144 | 8.287099999999988365e-01 145 | 8.292899999999988614e-01 146 | 8.308999999999990838e-01 147 | 8.320749999999990099e-01 148 | 8.334399999999988484e-01 149 | 8.351949999999987995e-01 150 | 8.350549999999991035e-01 151 | 8.353649999999994691e-01 152 | 8.367249999999998300e-01 153 | 8.367249999999998300e-01 154 | 8.362200000000001854e-01 155 | 8.372849999999999460e-01 156 | 8.377850000000002240e-01 157 | 8.379450000000006060e-01 158 | 8.384850000000007020e-01 159 | 8.390500000000009617e-01 160 | 8.389450000000010510e-01 161 | 8.398400000000009191e-01 162 | 8.411250000000010107e-01 163 | 8.426650000000008855e-01 164 | 8.429550000000013421e-01 165 | 8.424250000000015337e-01 166 | 8.426650000000016627e-01 167 | 8.424000000000013699e-01 168 | 8.429150000000014131e-01 169 | 8.434350000000009340e-01 170 | 8.452400000000011016e-01 171 | 8.458050000000006952e-01 172 | 8.463799999999999102e-01 173 | 8.477150000000002183e-01 174 | 8.492950000000007993e-01 175 | 8.495200000000003859e-01 176 | 8.499549999999999050e-01 177 | 8.495249999999991974e-01 178 | 8.499349999999992189e-01 179 | 8.508049999999982571e-01 180 | 8.517499999999976756e-01 181 | 8.526249999999976348e-01 182 | 8.528049999999971487e-01 183 | 8.530999999999970829e-01 184 | 8.539849999999965524e-01 185 | 8.555099999999959959e-01 186 | 8.557299999999955498e-01 187 | 8.564749999999961005e-01 188 | 8.561099999999953747e-01 189 | 8.563949999999962426e-01 190 | 8.564649999999958130e-01 191 | 8.571499999999957486e-01 192 | 8.574199999999961852e-01 193 | 8.572699999999955356e-01 194 | 8.574899999999943123e-01 195 | 8.576999999999941338e-01 196 | 8.577699999999950364e-01 197 | 8.573299999999960397e-01 198 | 8.580849999999955457e-01 199 | 8.575799999999957901e-01 200 | 8.570249999999959289e-01 201 | 8.574199999999961852e-01 202 | 8.582549999999968815e-01 203 | 8.586799999999967792e-01 204 | 8.589449999999970720e-01 205 | 8.588549999999983697e-01 206 | 8.595749999999980906e-01 207 | 8.597049999999981651e-01 208 | 8.603299999999990400e-01 209 | 8.600749999999990347e-01 210 | 8.596849999999989222e-01 211 | 8.592299999999994942e-01 212 | 8.590299999999999603e-01 213 | 8.591200000000001058e-01 214 | 8.590200000000010050e-01 215 | 8.582000000000007400e-01 216 | 8.582050000000009948e-01 217 | 8.591700000000003223e-01 218 | 8.599100000000007293e-01 219 | 8.613450000000014706e-01 220 | 8.626350000000015950e-01 221 | 8.632950000000008117e-01 222 | 8.635950000000007787e-01 223 | 8.635600000000011045e-01 224 | 8.638800000000017576e-01 225 | 8.647950000000008686e-01 226 | 8.650350000000017747e-01 227 | 8.657700000000005947e-01 228 | 8.666099999999999914e-01 229 | 8.674149999999997140e-01 230 | 8.682500000000004103e-01 231 | 8.689599999999998436e-01 232 | 8.694549999999992007e-01 233 | 8.698200000000000376e-01 234 | 8.706999999999993634e-01 235 | 8.720799999999997443e-01 236 | 8.721049999999991309e-01 237 | 8.731600000000000472e-01 238 | 8.730099999999992866e-01 239 | 8.724949999999992434e-01 240 | 8.724499999999991706e-01 241 | 8.725549999999998585e-01 242 | 8.728299999999989955e-01 243 | 8.726599999999991031e-01 244 | 8.728399999999979508e-01 245 | 8.722599999999985920e-01 246 | 8.721099999999978314e-01 247 | 8.716399999999978609e-01 248 | 8.712099999999978195e-01 249 | 8.701649999999971907e-01 250 | 8.703099999999963643e-01 251 | 8.705449999999970156e-01 252 | 8.709649999999967696e-01 253 | 8.712449999999961614e-01 254 | 8.713849999999965235e-01 255 | 8.703849999999974107e-01 256 | 8.713699999999974244e-01 257 | 8.714149999999974971e-01 258 | 8.717699999999979354e-01 259 | 8.727599999999980929e-01 260 | 8.733049999999991098e-01 261 | 8.735149999999990422e-01 262 | 8.736849999999989347e-01 263 | 8.744749999999996692e-01 264 | 8.746650000000002478e-01 265 | 8.756500000000002615e-01 266 | 8.754900000000006566e-01 267 | 8.758150000000014535e-01 268 | 8.752550000000013375e-01 269 | 8.756850000000013790e-01 270 | 8.755000000000023874e-01 271 | 8.755550000000027477e-01 272 | 8.750050000000030304e-01 273 | 8.750700000000037893e-01 274 | 8.747100000000032072e-01 275 | 8.761000000000024324e-01 276 | 8.759350000000025727e-01 277 | 8.765000000000015001e-01 278 | 8.763000000000019662e-01 279 | 8.758750000000020686e-01 280 | 8.757900000000020668e-01 281 | 8.758850000000023561e-01 282 | 8.747300000000024500e-01 283 | 8.739100000000021851e-01 284 | 8.735450000000014592e-01 285 | 8.732800000000011664e-01 286 | 8.736250000000012061e-01 287 | 8.736900000000005218e-01 288 | 8.742900000000005667e-01 289 | 8.748100000000007537e-01 290 | 8.751450000000005058e-01 291 | 8.750850000000000017e-01 292 | 8.758949999999998681e-01 293 | 8.764799999999993707e-01 294 | 8.770799999999994156e-01 295 | 8.775300000000001432e-01 296 | 8.779849999999995713e-01 297 | 8.777450000000002195e-01 298 | 8.780500000000003302e-01 299 | 8.773399999999995647e-01 300 | 8.768149999999991229e-01 301 | 8.770849999999995594e-01 302 | 8.784300000000001551e-01 303 | 8.792699999999996630e-01 304 | 8.788300000000006662e-01 305 | 8.788200000000003786e-01 306 | 8.784900000000007703e-01 307 | 8.786400000000014199e-01 308 | 8.792650000000022947e-01 309 | 8.795150000000020452e-01 310 | 8.798800000000014387e-01 311 | 8.800950000000014040e-01 312 | 8.805050000000023136e-01 313 | 8.805850000000020605e-01 314 | 8.799700000000015843e-01 315 | 8.794500000000013973e-01 316 | 8.790250000000028319e-01 317 | 8.788800000000023260e-01 318 | 8.783800000000028252e-01 319 | 8.793700000000029826e-01 320 | 8.800200000000018008e-01 321 | 8.803800000000023829e-01 322 | 8.805100000000010141e-01 323 | 8.807750000000027502e-01 324 | 8.818250000000020794e-01 325 | 8.820350000000019008e-01 326 | 8.827550000000016217e-01 327 | 8.822250000000024794e-01 328 | 8.824850000000026284e-01 329 | 8.821200000000033459e-01 330 | 8.817750000000046384e-01 331 | 8.819750000000056156e-01 332 | 8.815800000000038050e-01 333 | 8.816250000000053211e-01 334 | 8.823850000000078575e-01 335 | 8.830600000000060623e-01 336 | 8.839750000000037300e-01 337 | 8.847900000000038512e-01 338 | 8.857000000000028184e-01 339 | 8.859950000000026415e-01 340 | 8.857000000000028184e-01 341 | 8.851700000000022328e-01 342 | 8.845900000000028740e-01 343 | 8.847150000000028047e-01 344 | 8.846300000000042463e-01 345 | 8.849300000000056565e-01 346 | 8.844800000000049289e-01 347 | 8.850550000000027007e-01 348 | 8.843500000000034111e-01 349 | 8.839950000000044161e-01 350 | 8.837600000000037648e-01 351 | 8.823500000000024102e-01 352 | 8.819550000000049295e-01 353 | 8.818750000000022959e-01 354 | 8.812800000000009515e-01 355 | 8.810650000000009863e-01 356 | 8.807150000000006917e-01 357 | 8.800600000000002865e-01 358 | 8.799100000000009691e-01 359 | 8.801100000000019463e-01 360 | 8.807950000000033253e-01 361 | 8.812950000000029371e-01 362 | 8.817950000000024380e-01 363 | 8.817350000000004906e-01 364 | 8.815550000000001996e-01 365 | 8.812249999999977046e-01 366 | 8.813599999999979229e-01 367 | 8.811299999999988586e-01 368 | 8.813949999999977081e-01 369 | 8.823399999999963494e-01 370 | 8.831599999999951711e-01 371 | 8.850949999999955242e-01 372 | 8.849699999999955935e-01 373 | 8.843799999999959471e-01 374 | 8.848649999999963489e-01 375 | 8.848749999999967475e-01 376 | 8.845799999999968133e-01 377 | 8.849849999999974681e-01 378 | 8.852649999999983033e-01 379 | 8.849299999999971078e-01 380 | 8.847149999999970316e-01 381 | 8.847299999999961306e-01 382 | 8.847349999999977177e-01 383 | 8.843899999999991213e-01 384 | 8.844249999999987955e-01 385 | 8.847550000000012904e-01 386 | 8.857400000000013041e-01 387 | 8.861800000000016331e-01 388 | 8.863150000000018514e-01 389 | 8.855900000000019867e-01 390 | 8.854150000000032827e-01 391 | 8.849750000000028427e-01 392 | 8.852550000000007913e-01 393 | 8.854000000000012971e-01 394 | 8.854050000000001086e-01 395 | 8.855700000000013006e-01 396 | 8.858850000000018099e-01 397 | 8.857400000000013041e-01 398 | 8.854700000000008675e-01 399 | 8.853400000000022363e-01 400 | 8.853600000000028114e-01 401 | 8.855100000000021288e-01 402 | 8.853900000000010095e-01 403 | 8.852200000000010061e-01 404 | 8.852900000000005765e-01 405 | 8.858249999999998625e-01 406 | 8.852399999999989166e-01 407 | 8.846899999999976449e-01 408 | 8.849999999999965672e-01 409 | 8.858049999999962898e-01 410 | 8.857299999999952433e-01 411 | 8.859199999999958219e-01 412 | 8.854099999999960335e-01 413 | 8.861199999999967991e-01 414 | 8.857749999999982027e-01 415 | 8.859949999999969794e-01 416 | 8.857699999999966156e-01 417 | 8.860199999999963660e-01 418 | 8.860149999999947790e-01 419 | 8.861599999999925092e-01 420 | 8.866049999999916498e-01 421 | 8.865049999999939923e-01 422 | 8.866799999999954718e-01 423 | 8.868949999999955480e-01 424 | 8.870149999999966672e-01 425 | 8.863849999999956486e-01 426 | 8.858849999999961478e-01 427 | 8.858849999999961478e-01 428 | 8.858499999999963626e-01 429 | 8.861949999999978456e-01 430 | 8.862649999999974160e-01 431 | 8.863849999999985352e-01 432 | 8.873149999999980775e-01 433 | 8.865599999999972392e-01 434 | 8.864749999999957941e-01 435 | 8.859699999999974818e-01 436 | 8.864049999999992213e-01 437 | 8.863900000000001222e-01 438 | 8.864699999999998692e-01 439 | 8.868100000000026517e-01 440 | 8.865700000000031888e-01 441 | 8.864400000000017821e-01 442 | 8.861250000000012728e-01 443 | 8.861299999999999732e-01 444 | 8.858199999999982754e-01 445 | 8.858649999999983482e-01 446 | 8.865649999999988262e-01 447 | 8.869249999999994083e-01 448 | 8.867150000000009191e-01 449 | 8.865949999999997999e-01 450 | 8.861299999999999732e-01 451 | 8.860549999999989268e-01 452 | 8.859600000000000808e-01 453 | 8.859900000000010545e-01 454 | 8.864550000000008811e-01 455 | 8.871900000000010333e-01 456 | 8.871149999999999869e-01 457 | 8.869049999999987222e-01 458 | 8.868850000000009226e-01 459 | 8.869249999999994083e-01 460 | 8.869149999999990097e-01 461 | 8.870199999999982543e-01 462 | 8.870599999999967400e-01 463 | 8.869599999999963069e-01 464 | 8.871999999999957698e-01 465 | 8.870749999999958391e-01 466 | 8.869599999999963069e-01 467 | 8.874549999999971073e-01 468 | 8.874199999999973221e-01 469 | 8.875949999999960260e-01 470 | 8.881499999999959982e-01 471 | 8.879999999999966809e-01 472 | 8.880399999999980531e-01 473 | 8.883899999999982366e-01 474 | 8.881849999999985590e-01 475 | 8.877199999999987323e-01 476 | 8.880650000000003264e-01 477 | 8.881200000000006867e-01 478 | 8.883250000000003643e-01 479 | 8.880700000000019134e-01 480 | 8.883050000000025648e-01 481 | 8.880350000000050148e-01 482 | 8.884000000000071839e-01 483 | 8.889700000000090307e-01 484 | 8.887100000000088817e-01 485 | 8.892600000000101534e-01 486 | 8.897100000000108810e-01 487 | 8.893300000000096128e-01 488 | 8.891200000000083481e-01 489 | 8.886150000000100357e-01 490 | 8.891900000000105830e-01 491 | 8.896100000000103369e-01 492 | 8.894750000000101187e-01 493 | 8.898500000000097998e-01 494 | 8.901650000000103091e-01 495 | 8.900850000000104512e-01 496 | 8.897950000000094395e-01 497 | 8.900900000000092627e-01 498 | 8.902200000000078939e-01 499 | 8.896600000000063346e-01 500 | 8.888500000000050250e-01 501 | -------------------------------------------------------------------------------- /test_results/acc/dqn_q.txt: -------------------------------------------------------------------------------- 1 | 2.907000000000000139e-01 2 | 4.256899999999999573e-01 3 | 4.530666666666668951e-01 4 | 4.707933333333332304e-01 5 | 5.036866666666665049e-01 6 | 5.363766666666666127e-01 7 | 5.557666666666661870e-01 8 | 5.655366666666665765e-01 9 | 5.739299999999999402e-01 10 | 5.822166666666664936e-01 11 | 5.954966666666664521e-01 12 | 6.054299999999999127e-01 13 | 6.130166666666665432e-01 14 | 6.201633333333330667e-01 15 | 6.256466666666665732e-01 16 | 6.313366666666664351e-01 17 | 6.381066666666665999e-01 18 | 6.429500000000000215e-01 19 | 6.480966666666666542e-01 20 | 6.527833333333332710e-01 21 | 6.591966666666666530e-01 22 | 6.639766666666666595e-01 23 | 6.682366666666667010e-01 24 | 6.725233333333332508e-01 25 | 6.777533333333333188e-01 26 | 6.816966666666666175e-01 27 | 6.851599999999999913e-01 28 | 6.902566666666667405e-01 29 | 6.943166666666668041e-01 30 | 6.997533333333334493e-01 31 | 7.035666666666668956e-01 32 | 7.064566666666668437e-01 33 | 7.095400000000002816e-01 34 | 7.118566666666670262e-01 35 | 7.148433333333337192e-01 36 | 7.176433333333336329e-01 37 | 7.209866666666671087e-01 38 | 7.224300000000005717e-01 39 | 7.261000000000005228e-01 40 | 7.290866666666672158e-01 41 | 7.332466666666671573e-01 42 | 7.363466666666670379e-01 43 | 7.385433333333337735e-01 44 | 7.410700000000005616e-01 45 | 7.447100000000005382e-01 46 | 7.471533333333338911e-01 47 | 7.491066666666672536e-01 48 | 7.512166666666671988e-01 49 | 7.542433333333338208e-01 50 | 7.561266666666672798e-01 51 | 7.588233333333339603e-01 52 | 7.606066666666674303e-01 53 | 7.626166666666674976e-01 54 | 7.639000000000008006e-01 55 | 7.658633333333340065e-01 56 | 7.678300000000006786e-01 57 | 7.693633333333340651e-01 58 | 7.709733333333339544e-01 59 | 7.726400000000005486e-01 60 | 7.744000000000004214e-01 61 | 7.758700000000005037e-01 62 | 7.788700000000002843e-01 63 | 7.808800000000002406e-01 64 | 7.827366666666667472e-01 65 | 7.850133333333334518e-01 66 | 7.853366666666669049e-01 67 | 7.867466666666668162e-01 68 | 7.893933333333333913e-01 69 | 7.897733333333332162e-01 70 | 7.911866666666665937e-01 71 | 7.928633333333332533e-01 72 | 7.942600000000000771e-01 73 | 7.957566666666664457e-01 74 | 7.968033333333330859e-01 75 | 7.980166666666664854e-01 76 | 7.995833333333329795e-01 77 | 8.009133333333328109e-01 78 | 8.025799999999994050e-01 79 | 8.031966666666660037e-01 80 | 8.052833333333324628e-01 81 | 8.054033333333324718e-01 82 | 8.060999999999988175e-01 83 | 8.074966666666651971e-01 84 | 8.088799999999987111e-01 85 | 8.101299999999987955e-01 86 | 8.108033333333319881e-01 87 | 8.116533333333317835e-01 88 | 8.127166666666648664e-01 89 | 8.139666666666651729e-01 90 | 8.144933333333319592e-01 91 | 8.154799999999985394e-01 92 | 8.147366666666653323e-01 93 | 8.153133333333322241e-01 94 | 8.161599999999989974e-01 95 | 8.170466666666655886e-01 96 | 8.190233333333319932e-01 97 | 8.200699999999988554e-01 98 | 8.206933333333320535e-01 99 | 8.220799999999987007e-01 100 | 8.230099999999987981e-01 101 | 8.221299999999990282e-01 102 | 8.226466666666657490e-01 103 | 8.233499999999992491e-01 104 | 8.246133333333323101e-01 105 | 8.241266666666656748e-01 106 | 8.245799999999988694e-01 107 | 8.251566666666657612e-01 108 | 8.252666666666660378e-01 109 | 8.252999999999995895e-01 110 | 8.254733333333329481e-01 111 | 8.263799999999993373e-01 112 | 8.266966666666661911e-01 113 | 8.272166666666663781e-01 114 | 8.277299999999996327e-01 115 | 8.284866666666663715e-01 116 | 8.292066666666665364e-01 117 | 8.304166666666669139e-01 118 | 8.311433333333340112e-01 119 | 8.313266666666673244e-01 120 | 8.321466666666670342e-01 121 | 8.321033333333337501e-01 122 | 8.338333333333338704e-01 123 | 8.342766666666672215e-01 124 | 8.348400000000002485e-01 125 | 8.348166666666670954e-01 126 | 8.353033333333338417e-01 127 | 8.360833333333336226e-01 128 | 8.369433333333338165e-01 129 | 8.371366666666674172e-01 130 | 8.375600000000005263e-01 131 | 8.390133333333338328e-01 132 | 8.389333333333335307e-01 133 | 8.389200000000002211e-01 134 | 8.386933333333336238e-01 135 | 8.398033333333335682e-01 136 | 8.402066666666669903e-01 137 | 8.413133333333334685e-01 138 | 8.415233333333332899e-01 139 | 8.430666666666667419e-01 140 | 8.438966666666668504e-01 141 | 8.444400000000001905e-01 142 | 8.454100000000001058e-01 143 | 8.458866666666670087e-01 144 | 8.464833333333335874e-01 145 | 8.469100000000001627e-01 146 | 8.477033333333333642e-01 147 | 8.484533333333327265e-01 148 | 8.490466666666658391e-01 149 | 8.499199999999992317e-01 150 | 8.504799999999997917e-01 151 | 8.511899999999996691e-01 152 | 8.515799999999994485e-01 153 | 8.522666666666661728e-01 154 | 8.526266666666661997e-01 155 | 8.532433333333325765e-01 156 | 8.535633333333326744e-01 157 | 8.536899999999992827e-01 158 | 8.540699999999991077e-01 159 | 8.547199999999989251e-01 160 | 8.546499999999994657e-01 161 | 8.550166666666664250e-01 162 | 8.557199999999994811e-01 163 | 8.564466666666665784e-01 164 | 8.568833333333329971e-01 165 | 8.570833333333335302e-01 166 | 8.571566666666664558e-01 167 | 8.570899999999994634e-01 168 | 8.579933333333324974e-01 169 | 8.583266666666660161e-01 170 | 8.586266666666659830e-01 171 | 8.588799999999991996e-01 172 | 8.594566666666660915e-01 173 | 8.601199999999996626e-01 174 | 8.603633333333330357e-01 175 | 8.599433333333327267e-01 176 | 8.603733333333328792e-01 177 | 8.601433333333337039e-01 178 | 8.605400000000003047e-01 179 | 8.606600000000005357e-01 180 | 8.607266666666665289e-01 181 | 8.611366666666668834e-01 182 | 8.614066666666673200e-01 183 | 8.617100000000003091e-01 184 | 8.624300000000004740e-01 185 | 8.628966666666675334e-01 186 | 8.631600000000010375e-01 187 | 8.629066666666678209e-01 188 | 8.631666666666679699e-01 189 | 8.633200000000016416e-01 190 | 8.637066666666678438e-01 191 | 8.646133333333343440e-01 192 | 8.653233333333351096e-01 193 | 8.657833333333343484e-01 194 | 8.666766666666679830e-01 195 | 8.670866666666673384e-01 196 | 8.677300000000012226e-01 197 | 8.680866666666683384e-01 198 | 8.684566666666683199e-01 199 | 8.689600000000012869e-01 200 | 8.692333333333341905e-01 201 | 8.695866666666679512e-01 202 | 8.694033333333341940e-01 203 | 8.691266666666668250e-01 204 | 8.690533333333330113e-01 205 | 8.695699999999997321e-01 206 | 8.695266666666668920e-01 207 | 8.697566666666659563e-01 208 | 8.698133333333326611e-01 209 | 8.698766666666651881e-01 210 | 8.703066666666653406e-01 211 | 8.700999999999984302e-01 212 | 8.702399999999983482e-01 213 | 8.707833333333316883e-01 214 | 8.710833333333312112e-01 215 | 8.713133333333312747e-01 216 | 8.715699999999979575e-01 217 | 8.724233333333312190e-01 218 | 8.728533333333312605e-01 219 | 8.733733333333304483e-01 220 | 8.739133333333304332e-01 221 | 8.739599999999967395e-01 222 | 8.737533333333298291e-01 223 | 8.740966666666631912e-01 224 | 8.738466666666634408e-01 225 | 8.735166666666638324e-01 226 | 8.731366666666635634e-01 227 | 8.731399999999970296e-01 228 | 8.732966666666641675e-01 229 | 8.733799999999973807e-01 230 | 8.734766666666644586e-01 231 | 8.731766666666639365e-01 232 | 8.738366666666640414e-01 233 | 8.743899999999977801e-01 234 | 8.752433333333319299e-01 235 | 8.757733333333325154e-01 236 | 8.760899999999982590e-01 237 | 8.764899999999983260e-01 238 | 8.765466666666649198e-01 239 | 8.768966666666652143e-01 240 | 8.766833333333323708e-01 241 | 8.769133333333324343e-01 242 | 8.776133333333320241e-01 243 | 8.773433333333324757e-01 244 | 8.774466666666663750e-01 245 | 8.770333333333326653e-01 246 | 8.767433333333324308e-01 247 | 8.761433333333324969e-01 248 | 8.763099999999989231e-01 249 | 8.763999999999990687e-01 250 | 8.762499999999988631e-01 251 | 8.760699999999995713e-01 252 | 8.762199999999997768e-01 253 | 8.762433333333338181e-01 254 | 8.767200000000002769e-01 255 | 8.775700000000000722e-01 256 | 8.783899999999997821e-01 257 | 8.788566666666668414e-01 258 | 8.789366666666665884e-01 259 | 8.789266666666663008e-01 260 | 8.792466666666665098e-01 261 | 8.800266666666668458e-01 262 | 8.797933333333333161e-01 263 | 8.796333333333327120e-01 264 | 8.797666666666656976e-01 265 | 8.799299999999987687e-01 266 | 8.800199999999989142e-01 267 | 8.800299999999993128e-01 268 | 8.802433333333330445e-01 269 | 8.805400000000001004e-01 270 | 8.811933333333333840e-01 271 | 8.817566666666664110e-01 272 | 8.811599999999998323e-01 273 | 8.813599999999998102e-01 274 | 8.815733333333326538e-01 275 | 8.824333333333328477e-01 276 | 8.831699999999993445e-01 277 | 8.842199999999991178e-01 278 | 8.843599999999990358e-01 279 | 8.843766666666662557e-01 280 | 8.847433333333327710e-01 281 | 8.852966666666655104e-01 282 | 8.855799999999988126e-01 283 | 8.859333333333315741e-01 284 | 8.859133333333317761e-01 285 | 8.860733333333314921e-01 286 | 8.861699999999984589e-01 287 | 8.862399999999979183e-01 288 | 8.862466666666648507e-01 289 | 8.863699999999984369e-01 290 | 8.866366666666645191e-01 291 | 8.866799999999973592e-01 292 | 8.865833333333312805e-01 293 | 8.869933333333316350e-01 294 | 8.866566666666642060e-01 295 | 8.867733333333309709e-01 296 | 8.869133333333308888e-01 297 | 8.870399999999970531e-01 298 | 8.873333333333306427e-01 299 | 8.873299999999962884e-01 300 | 8.872133333333295235e-01 301 | 8.873066666666640234e-01 302 | 8.876266666666642324e-01 303 | 8.879133333333300016e-01 304 | 8.876266666666642324e-01 305 | 8.876599999999986723e-01 306 | 8.872533333333326722e-01 307 | 8.868399999999998506e-01 308 | 8.866066666666664320e-01 309 | 8.864500000000001823e-01 310 | 8.867300000000000182e-01 311 | 8.868333333333330293e-01 312 | 8.867733333333328583e-01 313 | 8.866699999999989590e-01 314 | 8.868133333333313439e-01 315 | 8.868733333333315150e-01 316 | 8.866833333333318246e-01 317 | 8.864666666666655148e-01 318 | 8.868199999999991645e-01 319 | 8.871499999999987729e-01 320 | 8.870366666666654742e-01 321 | 8.876166666666658323e-01 322 | 8.883166666666663103e-01 323 | 8.885166666666672874e-01 324 | 8.886300000000005861e-01 325 | 8.886200000000011867e-01 326 | 8.885600000000011267e-01 327 | 8.887766666666683246e-01 328 | 8.885866666666667468e-01 329 | 8.885700000000004151e-01 330 | 8.886266666666661207e-01 331 | 8.887166666666643788e-01 332 | 8.889299999999972224e-01 333 | 8.888133333333314567e-01 334 | 8.888233333333308561e-01 335 | 8.887333333333307106e-01 336 | 8.891499999999969983e-01 337 | 8.896299999999958130e-01 338 | 8.897499999999960441e-01 339 | 8.899466666666626669e-01 340 | 8.892733333333296963e-01 341 | 8.890833333333300059e-01 342 | 8.893633333333298419e-01 343 | 8.891399999999975989e-01 344 | 8.890533333333318078e-01 345 | 8.892566666666652520e-01 346 | 8.893999999999986361e-01 347 | 8.894799999999974949e-01 348 | 8.892766666666640507e-01 349 | 8.892099999999970583e-01 350 | 8.891899999999982596e-01 351 | 8.887266666666656656e-01 352 | 8.883133333333319559e-01 353 | 8.881933333333317249e-01 354 | 8.880899999999997130e-01 355 | 8.878599999999986503e-01 356 | 8.881099999999985117e-01 357 | 8.881633333333316394e-01 358 | 8.884399999999990083e-01 359 | 8.886333333333330531e-01 360 | 8.886366666666674075e-01 361 | 8.887400000000014177e-01 362 | 8.890100000000018543e-01 363 | 8.891933333333346123e-01 364 | 8.893966666666680565e-01 365 | 8.896433333333334526e-01 366 | 8.899166666666663561e-01 367 | 8.897633333333335726e-01 368 | 8.899999999999995692e-01 369 | 8.902166666666649908e-01 370 | 8.910433333333325212e-01 371 | 8.912233333333328122e-01 372 | 8.912966666666667370e-01 373 | 8.915066666666670026e-01 374 | 8.914233333333337894e-01 375 | 8.912433333333334984e-01 376 | 8.914866666666664274e-01 377 | 8.918933333333333158e-01 378 | 8.918599999999988759e-01 379 | 8.919333333333326896e-01 380 | 8.918099999999981042e-01 381 | 8.918466666666650111e-01 382 | 8.923599999999983767e-01 383 | 8.925333333333317354e-01 384 | 8.928533333333310562e-01 385 | 8.935033333333308736e-01 386 | 8.937933333333318853e-01 387 | 8.938899999999989632e-01 388 | 8.940866666666654750e-01 389 | 8.937866666666650639e-01 390 | 8.938666666666639227e-01 391 | 8.936233333333309936e-01 392 | 8.935799999999971543e-01 393 | 8.936299999999979260e-01 394 | 8.940199999999985936e-01 395 | 8.944333333333323033e-01 396 | 8.941599999999993997e-01 397 | 8.943900000000003514e-01 398 | 8.943900000000003514e-01 399 | 8.946266666666683465e-01 400 | 8.947833333333334860e-01 401 | 8.950900000000009404e-01 402 | 8.949899999999995082e-01 403 | 8.949299999999993371e-01 404 | 8.951233333333316056e-01 405 | 8.951899999999984869e-01 406 | 8.952266666666655048e-01 407 | 8.952599999999999447e-01 408 | 8.954300000000008364e-01 409 | 8.949966666666682169e-01 410 | 8.952900000000018066e-01 411 | 8.954833333333340750e-01 412 | 8.952933333333343846e-01 413 | 8.953433333333331579e-01 414 | 8.955533333333335344e-01 415 | 8.953366666666682239e-01 416 | 8.951533333333353548e-01 417 | 8.948466666666680114e-01 418 | 8.945733333333351078e-01 419 | 8.948200000000023913e-01 420 | 8.949433333333369767e-01 421 | 8.953866666666707719e-01 422 | 8.953033333333375587e-01 423 | 8.954166666666708574e-01 424 | 8.953366666666701112e-01 425 | 8.951066666666709359e-01 426 | 8.953366666666701112e-01 427 | 8.954033333333352163e-01 428 | 8.952700000000031189e-01 429 | 8.951233333333353803e-01 430 | 8.950533333333358099e-01 431 | 8.947566666666678659e-01 432 | 8.948966666666687830e-01 433 | 8.950666666666677873e-01 434 | 8.954133333333345046e-01 435 | 8.954400000000021231e-01 436 | 8.953333333333356459e-01 437 | 8.953500000000019776e-01 438 | 8.957233333333344261e-01 439 | 8.963466666666666249e-01 440 | 8.966633333333333677e-01 441 | 8.967933333333329982e-01 442 | 8.969466666666657817e-01 443 | 8.967633333333329126e-01 444 | 8.966166666666651741e-01 445 | 8.965433333333313604e-01 446 | 8.964833333333311893e-01 447 | 8.965133333333312748e-01 448 | 8.965599999999975811e-01 449 | 8.965833333333307342e-01 450 | 8.965599999999975811e-01 451 | 8.963566666666641369e-01 452 | 8.963899999999985768e-01 453 | 8.961999999999988864e-01 454 | 8.963266666666659388e-01 455 | 8.962966666666659643e-01 456 | 8.961200000000000276e-01 457 | 8.961266666666669600e-01 458 | 8.960800000000006538e-01 459 | 8.961100000000006283e-01 460 | 8.959366666666672696e-01 461 | 8.960366666666687019e-01 462 | 8.959900000000023956e-01 463 | 8.960866666666693625e-01 464 | 8.960100000000029707e-01 465 | 8.959833333333354632e-01 466 | 8.958933333333353177e-01 467 | 8.957633333333357983e-01 468 | 8.957500000000038209e-01 469 | 8.956900000000037609e-01 470 | 8.955733333333379953e-01 471 | 8.956400000000049877e-01 472 | 8.955400000000054428e-01 473 | 8.957633333333395731e-01 474 | 8.958900000000066255e-01 475 | 8.959866666666737034e-01 476 | 8.958666666666734724e-01 477 | 8.957933333333414350e-01 478 | 8.955333333333422852e-01 479 | 8.954100000000076998e-01 480 | 8.955000000000078453e-01 481 | 8.956633333333400282e-01 482 | 8.954700000000059834e-01 483 | 8.955666666666710629e-01 484 | 8.954700000000040960e-01 485 | 8.955300000000041560e-01 486 | 8.956333333333380553e-01 487 | 8.958100000000058794e-01 488 | 8.960166666666717905e-01 489 | 8.959833333333392380e-01 490 | 8.961733333333389284e-01 491 | 8.958800000000053387e-01 492 | 8.957000000000050477e-01 493 | 8.956900000000056483e-01 494 | 8.952866666666731144e-01 495 | 8.952866666666731144e-01 496 | 8.954800000000072702e-01 497 | 8.955933333333405688e-01 498 | 8.954400000000058979e-01 499 | 8.954900000000065585e-01 500 | 8.954700000000059834e-01 501 | -------------------------------------------------------------------------------- /test_results/ada_time.txt: -------------------------------------------------------------------------------- 1 | 1.716699999999999893e+00 2 | 1.509800000000000031e+00 3 | 1.260499999999999954e+00 4 | 1.044300000000000006e+00 5 | 8.445000000000000284e-01 6 | -------------------------------------------------------------------------------- /test_results/dqn_q_time.txt: -------------------------------------------------------------------------------- 1 | 1.665075149999999837e+00 2 | 1.358924959999999960e+00 3 | 1.120074510000000023e+00 4 | 9.069251000000000396e-01 5 | 7.625851999999999631e-01 6 | -------------------------------------------------------------------------------- /test_results/error10.txt: -------------------------------------------------------------------------------- 1 | 2.900000000000000147e-02 2 | 2.900000000000000147e-02 3 | 2.900000000000000147e-02 4 | 2.900000000000000147e-02 5 | 2.900000000000000147e-02 6 | -------------------------------------------------------------------------------- /test_results/error6.txt: -------------------------------------------------------------------------------- 1 | 6.189000000000000057e-01 2 | 6.189000000000000057e-01 3 | 6.189000000000000057e-01 4 | 6.189000000000000057e-01 5 | 6.189000000000000057e-01 6 | -------------------------------------------------------------------------------- /test_results/error_ada.txt: -------------------------------------------------------------------------------- 1 | 8.538000000000000034e-01 2 | 8.538000000000000034e-01 3 | 8.538000000000000034e-01 4 | 8.538000000000000034e-01 5 | 8.538000000000000034e-01 6 | -------------------------------------------------------------------------------- /test_results/error_dqn.txt: -------------------------------------------------------------------------------- 1 | 2.650000000000000133e-01 2 | 2.650000000000000133e-01 3 | 2.650000000000000133e-01 4 | 2.650000000000000133e-01 5 | 2.650000000000000133e-01 6 | -------------------------------------------------------------------------------- /test_results/fix_10_time.txt: -------------------------------------------------------------------------------- 1 | 1.698046170000000021e+00 2 | 1.379543599999999870e+00 3 | 1.140423699999999929e+00 4 | 9.348789000000000682e-01 5 | 7.856487600000000571e-01 6 | -------------------------------------------------------------------------------- /test_results/fix_6_time.txt: -------------------------------------------------------------------------------- 1 | 1.758999999999999897e+00 2 | 1.553600000000000092e+00 3 | 1.301700000000000079e+00 4 | 1.085599999999999898e+00 5 | 8.842999999999999750e-01 6 | -------------------------------------------------------------------------------- /test_results/longtermreward1.txt: -------------------------------------------------------------------------------- 1 | -5902783.858212 2 | -6471831.556546 3 | -6260678.041225 4 | -5578671.158516 -------------------------------------------------------------------------------- /test_results/loss/ada.txt: -------------------------------------------------------------------------------- 1 | 2.051600000000000090e+00 2 | 1.686513594985008302e+00 3 | 1.530175370971361692e+00 4 | 1.450017154415448539e+00 5 | 1.350965719421704625e+00 6 | 1.327339027325312282e+00 7 | 1.308400927980740924e+00 8 | 1.288746838768323411e+00 9 | 1.257105358242988524e+00 10 | 1.225406175653139806e+00 11 | 1.203822907308737422e+00 12 | 1.183217766483624755e+00 13 | 1.157868157823880528e+00 14 | 1.129216341773668919e+00 15 | 1.107656049629052397e+00 16 | 1.070876245299975160e+00 17 | 1.047954266270001655e+00 18 | 1.034770912925402353e+00 19 | 1.019999846816062927e+00 20 | 1.003867184122403389e+00 21 | 9.903584341208140351e-01 22 | 9.781746506690979226e-01 23 | 9.644709388415019236e-01 24 | 9.517207791407903406e-01 25 | 9.395480136076609368e-01 26 | 9.268739412228266250e-01 27 | 9.149598767360050955e-01 28 | 9.011994709571202744e-01 29 | 8.898176232973734612e-01 30 | 8.798926353454590288e-01 31 | 8.677270034948985078e-01 32 | 8.569826225439707290e-01 33 | 8.470284044742584229e-01 34 | 8.379410525163014656e-01 35 | 8.277714222669600996e-01 36 | 8.169908195734023604e-01 37 | 8.068642646074295488e-01 38 | 7.968440453211466101e-01 39 | 7.865810861190160042e-01 40 | 7.783985058466593721e-01 41 | 7.691858698924382010e-01 42 | 7.603778252998988352e-01 43 | 7.521530618270237945e-01 44 | 7.441862463951111062e-01 45 | 7.368027627468108909e-01 46 | 7.291725496451060273e-01 47 | 7.212782482306162590e-01 48 | 7.125724375247954878e-01 49 | 7.054014374812443977e-01 50 | 6.993739972511927583e-01 51 | 6.925436218579610337e-01 52 | 6.855780909458796257e-01 53 | 6.793333699305852402e-01 54 | 6.715086499849954871e-01 55 | 6.653781155745188691e-01 56 | 6.586717496315638298e-01 57 | 6.520009865363438628e-01 58 | 6.459190179904301665e-01 59 | 6.394263088703155962e-01 60 | 6.316001385450362715e-01 61 | 6.261798232793808205e-01 62 | 6.200910439093907378e-01 63 | 6.147708922624588457e-01 64 | 6.073580344518025864e-01 65 | 6.018880099058151467e-01 66 | 5.961972147226333174e-01 67 | 5.894597172737121582e-01 68 | 5.860466261704763147e-01 69 | 5.817652463912963423e-01 70 | 5.777445177237192642e-01 71 | 5.713467096288998848e-01 72 | 5.672589913010597229e-01 73 | 5.631658335526784631e-01 74 | 5.592002302408218828e-01 75 | 5.551209380229313872e-01 76 | 5.507563506563504241e-01 77 | 5.456574742992719163e-01 78 | 5.388550534844398499e-01 79 | 5.343684022625286856e-01 80 | 5.317593619227409807e-01 81 | 5.285693724950154548e-01 82 | 5.247900187969207764e-01 83 | 5.214969297250111602e-01 84 | 5.174278944730759111e-01 85 | 5.138515561819076982e-01 86 | 5.101238489151000977e-01 87 | 5.057111779848734168e-01 88 | 5.030523757139842012e-01 89 | 4.993179758389790779e-01 90 | 4.950885961453119766e-01 91 | 4.921341588099797382e-01 92 | 4.884493360916773441e-01 93 | 4.838543126980463516e-01 94 | 4.799290498097737445e-01 95 | 4.764034807682037131e-01 96 | 4.738873109221458657e-01 97 | 4.718339060743649838e-01 98 | 4.692564373215039608e-01 99 | 4.655210668841997523e-01 100 | 4.622021848956743839e-01 101 | 4.582482407490412468e-01 102 | 4.549833203355471145e-01 103 | 4.516083811720212338e-01 104 | 4.492009515563646915e-01 105 | 4.460236077507336860e-01 106 | 4.429577618837356456e-01 107 | 4.407865802447001324e-01 108 | 4.388509690761566162e-01 109 | 4.351472596327463638e-01 110 | 4.311698709925015915e-01 111 | 4.291979297995567322e-01 112 | 4.261326119303703308e-01 113 | 4.228003963828086964e-01 114 | 4.195651660362879620e-01 115 | 4.169872442881266128e-01 116 | 4.142409349481264713e-01 117 | 4.126651595036188724e-01 118 | 4.087345853447914013e-01 119 | 4.054015244046846878e-01 120 | 4.028334711988766914e-01 121 | 3.998472496867179760e-01 122 | 3.977863525350888718e-01 123 | 3.954349602262178798e-01 124 | 3.939392983913421742e-01 125 | 3.909833709398905510e-01 126 | 3.897033830483754291e-01 127 | 3.874145671725273132e-01 128 | 3.839526092012723324e-01 129 | 3.811179225643475665e-01 130 | 3.782054965694745530e-01 131 | 3.767887686689694871e-01 132 | 3.741197804609934230e-01 133 | 3.719082728028297313e-01 134 | 3.700152804454167610e-01 135 | 3.677845612168312295e-01 136 | 3.660747145613034714e-01 137 | 3.640744924545288308e-01 138 | 3.634119609991709465e-01 139 | 3.611372619867324607e-01 140 | 3.589702496925989972e-01 141 | 3.562891329328218837e-01 142 | 3.549001330733299042e-01 143 | 3.527428557078043370e-01 144 | 3.509874050915241517e-01 145 | 3.491554388602574610e-01 146 | 3.484775605698426371e-01 147 | 3.468758795062700795e-01 148 | 3.450053149064382096e-01 149 | 3.438933728535968348e-01 150 | 3.423168560065825705e-01 151 | 3.412562814950942935e-01 152 | 3.405603127876917768e-01 153 | 3.382524402843912203e-01 154 | 3.371019167085488877e-01 155 | 3.360832933962344948e-01 156 | 3.350590397660297981e-01 157 | 3.343475822979609102e-01 158 | 3.324629426350196315e-01 159 | 3.321939085572958028e-01 160 | 3.317528365623950704e-01 161 | 3.284877835231025944e-01 162 | 3.283696298268238833e-01 163 | 3.273750924270351637e-01 164 | 3.262932959450284831e-01 165 | 3.252021728375554255e-01 166 | 3.231470614995161639e-01 167 | 3.220989261909326107e-01 168 | 3.202764294515053622e-01 169 | 3.194653940439224349e-01 170 | 3.188165755467712859e-01 171 | 3.178045882637302033e-01 172 | 3.167341069641709250e-01 173 | 3.158202315185288378e-01 174 | 3.148271263814181320e-01 175 | 3.135935089028477618e-01 176 | 3.120256491446152247e-01 177 | 3.129813443517257543e-01 178 | 3.115245633958528271e-01 179 | 3.102584339141498115e-01 180 | 3.108909322259699182e-01 181 | 3.093692479085674019e-01 182 | 3.084591375449051709e-01 183 | 3.064402645083765253e-01 184 | 3.074281266735494067e-01 185 | 3.064187644222627349e-01 186 | 3.054085765008380249e-01 187 | 3.038547300919890448e-01 188 | 3.038836313754320062e-01 189 | 3.023982291911045950e-01 190 | 3.014180883870025696e-01 191 | 3.004079023394733428e-01 192 | 2.993950060185789908e-01 193 | 2.987628516430655967e-01 194 | 2.996244384713471209e-01 195 | 2.975373415095359242e-01 196 | 2.964149407739440356e-01 197 | 2.952703349195420768e-01 198 | 2.933688568534950636e-01 199 | 2.934679162430266497e-01 200 | 2.923256658763339066e-01 201 | 2.917605725859602206e-01 202 | 2.929544189876814864e-01 203 | 2.927363497861474873e-01 204 | 2.912626331502075061e-01 205 | 2.903621991691490156e-01 206 | 2.890160687106102522e-01 207 | 2.880601860389113700e-01 208 | 2.895973307440678490e-01 209 | 2.903859005586306163e-01 210 | 2.910757214126487580e-01 211 | 2.901855412017802505e-01 212 | 2.892654230633378010e-01 213 | 2.895275586446126037e-01 214 | 2.880852317801863016e-01 215 | 2.879506724936266582e-01 216 | 2.867917280028263738e-01 217 | 2.865485236570238792e-01 218 | 2.884694410959879329e-01 219 | 2.876146699749926872e-01 220 | 2.884046100345253882e-01 221 | 2.862944681015362480e-01 222 | 2.874844560078282929e-01 223 | 2.865435517246524566e-01 224 | 2.854284461413820750e-01 225 | 2.842416143074631418e-01 226 | 2.830207526393731521e-01 227 | 2.830069802597860451e-01 228 | 2.825937594865759461e-01 229 | 2.838420372456312291e-01 230 | 2.810720239922404051e-01 231 | 2.805600561648607383e-01 232 | 2.790596492091814707e-01 233 | 2.785834623257318898e-01 234 | 2.763173476407925211e-01 235 | 2.751031150619188681e-01 236 | 2.750039036815364879e-01 237 | 2.741805372754732573e-01 238 | 2.730121983587741608e-01 239 | 2.726382370505730512e-01 240 | 2.704949858556190967e-01 241 | 2.702844216848412917e-01 242 | 2.690736977934837237e-01 243 | 2.686167030025521929e-01 244 | 2.672620063001910906e-01 245 | 2.651350217773020268e-01 246 | 2.645442193925380825e-01 247 | 2.633972671131292742e-01 248 | 2.623436733583609515e-01 249 | 2.612644051164388914e-01 250 | 2.601611920992533133e-01 251 | 2.601219069262345474e-01 252 | 2.590573909580707324e-01 253 | 2.585977504069606470e-01 254 | 2.575913481727242216e-01 255 | 2.564757572839657662e-01 256 | 2.543918333214521543e-01 257 | 2.532858044079939752e-01 258 | 2.527537208482623088e-01 259 | 2.522468013773361828e-01 260 | 2.516438804815213093e-01 261 | 2.504298098911841852e-01 262 | 2.493349372396866381e-01 263 | 2.512422307729720861e-01 264 | 2.520946938395500214e-01 265 | 2.519263764222462454e-01 266 | 2.508111644387245320e-01 267 | 2.559558717409769479e-01 268 | 2.548185922851164964e-01 269 | 2.546220603734254961e-01 270 | 2.546177541365226005e-01 271 | 2.536995755682389109e-01 272 | 2.536346810112397043e-01 273 | 2.525773251752058690e-01 274 | 2.505400756746530289e-01 275 | 2.515143516014019531e-01 276 | 2.490518586312731042e-01 277 | 2.484125307748715206e-01 278 | 2.484279916236797892e-01 279 | 2.483673794120550282e-01 280 | 2.472476772914330156e-01 281 | 2.461891261090835004e-01 282 | 2.441207458972931010e-01 283 | 2.420424999992052684e-01 284 | 2.419950199152032522e-01 285 | 2.409173704783121872e-01 286 | 2.398823759456475690e-01 287 | 2.389815576101342876e-01 288 | 2.379724962313969905e-01 289 | 2.377687170108159498e-01 290 | 2.369713764339685391e-01 291 | 2.369700912162661655e-01 292 | 2.356548804144064646e-01 293 | 2.336570890148480795e-01 294 | 2.311556335161129572e-01 295 | 2.318946360444029131e-01 296 | 2.307938175755242516e-01 297 | 2.316927974464992601e-01 298 | 2.326165901119510437e-01 299 | 2.315109190081556523e-01 300 | 2.324904615042110156e-01 301 | 2.339170530935128500e-01 302 | 2.302889452782770074e-01 303 | 2.313890997014939888e-01 304 | 2.293437719146410592e-01 305 | 2.313006780227025438e-01 306 | 2.302975954953332682e-01 307 | 2.312870381961266153e-01 308 | 2.293264068749050200e-01 309 | 2.298614065845807353e-01 310 | 2.318568593834837155e-01 311 | 2.317473487198352944e-01 312 | 2.308844532390435522e-01 313 | 2.296840441840390379e-01 314 | 2.338335118070244689e-01 315 | 2.323837560800214586e-01 316 | 2.303683782200763586e-01 317 | 2.324036136075357528e-01 318 | 2.313829681113362402e-01 319 | 2.293239238510529077e-01 320 | 2.296210047235091589e-01 321 | 2.310203850925763580e-01 322 | 2.328172178789973124e-01 323 | 2.313137621631224938e-01 324 | 2.335869421561546089e-01 325 | 2.328115658089518480e-01 326 | 2.328039588431517204e-01 327 | 2.337930953949689805e-01 328 | 2.327983623271187019e-01 329 | 2.318004704241951319e-01 330 | 2.300432097613811511e-01 331 | 2.302313689986864587e-01 332 | 2.298916694382826531e-01 333 | 2.287852755412459471e-01 334 | 2.285235995650290453e-01 335 | 2.278265806535879623e-01 336 | 2.267716398735841188e-01 337 | 2.257809040745099305e-01 338 | 2.256811331510543694e-01 339 | 2.256666487008333333e-01 340 | 2.266368608574072518e-01 341 | 2.252176711483548088e-01 342 | 2.261875006059805571e-01 343 | 2.276652713865041644e-01 344 | 2.261775610347588616e-01 345 | 2.259048648178577368e-01 346 | 2.253094149132569557e-01 347 | 2.245711746315161295e-01 348 | 2.252483357588450086e-01 349 | 2.257341715544462224e-01 350 | 2.267298488641778520e-01 351 | 2.272350492576758196e-01 352 | 2.272212414195140251e-01 353 | 2.272167467325925949e-01 354 | 2.287267259334524461e-01 355 | 2.282708037743965690e-01 356 | 2.279851339727640147e-01 357 | 2.287212220033009724e-01 358 | 2.272318270305792587e-01 359 | 2.271599676460027695e-01 360 | 2.261028391520182312e-01 361 | 2.262746943036715030e-01 362 | 2.270546697080135234e-01 363 | 2.269380653649568647e-01 364 | 2.264241891304651921e-01 365 | 2.261460231939951548e-01 366 | 2.263200084169705584e-01 367 | 2.256896831045548113e-01 368 | 2.253116423587004369e-01 369 | 2.267676104853550700e-01 370 | 2.256726028919220084e-01 371 | 2.267485366761684273e-01 372 | 2.276732349296410884e-01 373 | 2.256683456897735640e-01 374 | 2.266505449016888996e-01 375 | 2.256623746131857233e-01 376 | 2.255809606760740271e-01 377 | 2.260377211471398529e-01 378 | 2.256448609009385209e-01 379 | 2.246475707193215654e-01 380 | 2.256400836954514100e-01 381 | 2.246359697530667110e-01 382 | 2.243026499748229929e-01 383 | 2.245273912613590661e-01 384 | 2.250626275102297347e-01 385 | 2.246224114199479316e-01 386 | 2.236253522460659449e-01 387 | 2.232626125104725245e-01 388 | 2.230619617546598099e-01 389 | 2.226190287222464814e-01 390 | 2.230949265211820687e-01 391 | 2.225373785595099185e-01 392 | 2.222979405889908555e-01 393 | 2.220962653433283251e-01 394 | 2.218590150487919632e-01 395 | 2.214584506603578806e-01 396 | 2.216573534620304986e-01 397 | 2.215664444615443596e-01 398 | 2.210566044134398278e-01 399 | 2.208563267752528259e-01 400 | 2.206560070601602530e-01 401 | 2.202556734773019886e-01 402 | 2.201556459816793598e-01 403 | 2.200545128288368402e-01 404 | 2.200425421769420242e-01 405 | 2.214083702713251223e-01 406 | 2.218542323542137817e-01 407 | 2.207543566651642419e-01 408 | 2.194042258113622634e-01 409 | 2.193530862927436931e-01 410 | 2.195431432624657953e-01 411 | 2.205439198017120350e-01 412 | 2.208541629783809246e-01 413 | 2.217537927063802927e-01 414 | 2.205318021650115590e-01 415 | 2.214531481049955008e-01 416 | 2.202528062805533537e-01 417 | 2.208900605936845174e-01 418 | 2.201530048775176274e-01 419 | 2.205329263905684289e-01 420 | 2.208526878473659472e-01 421 | 2.211527822176615476e-01 422 | 2.205307267159223594e-01 423 | 2.209535742419461435e-01 424 | 2.205307657370964569e-01 425 | 2.198528112858533778e-01 426 | 2.201527925729751534e-01 427 | 2.205221670443812954e-01 428 | 2.212093862245480269e-01 429 | 2.205219698746999080e-01 430 | 2.202012711018323798e-01 431 | 2.219245284299055931e-01 432 | 2.209377390543619812e-01 433 | 2.202461636563142200e-01 434 | 2.213103092312812825e-01 435 | 2.209361739754676923e-01 436 | 2.203123781830072514e-01 437 | 2.213133579343557478e-01 438 | 2.200638657510280705e-01 439 | 2.215235802754759731e-01 440 | 2.205288855507969992e-01 441 | 2.195253098532557456e-01 442 | 2.204522815863291518e-01 443 | 2.212473235130310023e-01 444 | 2.209520797533293668e-01 445 | 2.207521668665111125e-01 446 | 2.203513581423709733e-01 447 | 2.198509751504907905e-01 448 | 2.195031189384559767e-01 449 | 2.204962987961868459e-01 450 | 2.209457712098956139e-01 451 | 2.214527808626491068e-01 452 | 2.203504714875171577e-01 453 | 2.200501981868098200e-01 454 | 2.196504472468048252e-01 455 | 2.190272798165678880e-01 456 | 2.207501902357985601e-01 457 | 2.204988721075157310e-01 458 | 2.205031855838994193e-01 459 | 2.215008446089923311e-01 460 | 2.219640488003691015e-01 461 | 2.213489196264495362e-01 462 | 2.206487053825209599e-01 463 | 2.211661993761857847e-01 464 | 2.204884266865750064e-01 465 | 2.206485853044937162e-01 466 | 2.193479939827074621e-01 467 | 2.194763181135058472e-01 468 | 2.197472877815365710e-01 469 | 2.199470820250610525e-01 470 | 2.206460729305942947e-01 471 | 2.204557685976227255e-01 472 | 2.218449288137257225e-01 473 | 2.202442819091181003e-01 474 | 2.214419479618469910e-01 475 | 2.204437473069876530e-01 476 | 2.209437671540925852e-01 477 | 2.200436608223865498e-01 478 | 2.203426281653344532e-01 479 | 2.201427992716431525e-01 480 | 2.208433921312292492e-01 481 | 2.214281846707066015e-01 482 | 2.191105449398358662e-01 483 | 2.198413246322423187e-01 484 | 2.201154690956076132e-01 485 | 2.211298090790708715e-01 486 | 2.217417300503700950e-01 487 | 2.214419630096604308e-01 488 | 2.216425370453546373e-01 489 | 2.214428290875007643e-01 490 | 2.203433409476031890e-01 491 | 2.201433973919600384e-01 492 | 2.199433108025540817e-01 493 | 2.197430786533902114e-01 494 | 2.204279232211411033e-01 495 | 2.212383999750018038e-01 496 | 2.207416920772443114e-01 497 | 2.214420514664302286e-01 498 | 2.203421730626374531e-01 499 | 2.198422212236871287e-01 500 | 2.207415379883100603e-01 501 | -------------------------------------------------------------------------------- /test_results/qerror1.txt: -------------------------------------------------------------------------------- 1 | 0.029 2 | 0.6189 3 | 0.8538 4 | 0.265 -------------------------------------------------------------------------------- /test_results/reward10.txt: -------------------------------------------------------------------------------- 1 | -8.435230849999999947e+00 2 | -7.147718000000000238e+00 3 | -5.802118499999999734e+00 4 | -4.774394499999999653e+00 5 | -3.923243800000000281e+00 6 | -------------------------------------------------------------------------------- /test_results/reward6.txt: -------------------------------------------------------------------------------- 1 | -8.845000000000000639e+00 2 | -7.767999999999999794e+00 3 | -6.508499999999999730e+00 4 | -5.427999999999999936e+00 5 | -4.416500000000000092e+00 6 | -------------------------------------------------------------------------------- /test_results/rewardada.txt: -------------------------------------------------------------------------------- 1 | -8.643499999999999517e+00 2 | -7.549000000000000377e+00 3 | -6.260678000000000409e+00 4 | -5.221499999999999808e+00 5 | -4.217500000000000249e+00 6 | -------------------------------------------------------------------------------- /test_results/rewarddqn.txt: -------------------------------------------------------------------------------- 1 | -8.220375749999998760e+00 2 | -6.794624800000000242e+00 3 | -5.578671150000000800e+00 4 | -4.534625499999999754e+00 5 | -3.807926000000000144e+00 6 | -------------------------------------------------------------------------------- /test_results/traintime1.txt: -------------------------------------------------------------------------------- 1 | 11805.5677 2 | 12943.663 3 | 12521.356 4 | 11157.3423 5 | -------------------------------------------------------------------------------- /train/a1bathnormal_env_max_ep2000_tep_1000_buffersize250000_maxstep500000_prestep25000_lr0.05_plot_minig+T_tfacter0.5_num4.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/train/a1bathnormal_env_max_ep2000_tep_1000_buffersize250000_maxstep500000_prestep25000_lr0.05_plot_minig+T_tfacter0.5_num4.npz -------------------------------------------------------------------------------- /train/a2bathnormal_env_max_ep2000_tep_1000_buffersize250000_maxstep500000_prestep25000_lr0.05_plot_minig+T_tfacter0.5_num4.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/train/a2bathnormal_env_max_ep2000_tep_1000_buffersize250000_maxstep500000_prestep25000_lr0.05_plot_minig+T_tfacter0.5_num4.npz -------------------------------------------------------------------------------- /train/a3bathnormal_env_max_ep2000_tep_1000_buffersize250000_maxstep500000_prestep25000_lr0.05_plot_minig+T_tfacter0.5_num4.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qiongwu86/Distributed-DRL-Based-Gradient-Quantization-for-Federated-Learning-Enabled-VEC/21594d7067058dd8bce7886581bf5f50c1709cc7/train/a3bathnormal_env_max_ep2000_tep_1000_buffersize250000_maxstep500000_prestep25000_lr0.05_plot_minig+T_tfacter0.5_num4.npz --------------------------------------------------------------------------------