-
Notifications
You must be signed in to change notification settings - Fork 3
/
fig_M_power_distribution.py
executable file
·68 lines (52 loc) · 2.37 KB
/
fig_M_power_distribution.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import os
import numpy as np
import matplotlib.pyplot as plt
from helper import *
from matplotlib.font_manager import FontProperties
font = FontProperties(fname="C:/Windows/Fonts/SimSun.ttc", size=15)
font2 = FontProperties(fname="C:/Windows/Fonts/times.ttf", size=15)
def read_log(dir_path):
fileList = os.listdir(dir_path) #列出文件夹下所有的目录与文件
fileList = [name for name in fileList if '.npz' in name]
avg_step_reward = []
avg_step_sum_power = []
avg_step_buffer = []
avg_step_offload_power = []
avg_step_local_power = []
for name in fileList[:]:
path = dir_path + name
res = np.load(path)
temp_r = np.array(res['arr_0'])
temp_sp = np.array(res['arr_1'])
temp_b = np.array(res['arr_2'])
temp_op = np.array(res['arr_3'])
temp_lp = np.array(res['arr_4'])
avg_step_reward.append(temp_r)
avg_step_sum_power.append(temp_sp)
avg_step_buffer.append(temp_b)
avg_step_offload_power.append(temp_op)
avg_step_local_power.append(temp_lp)
avg_step_reward = moving_average(np.mean(avg_step_reward, axis=0, keepdims=True)[0])
avg_step_sum_power = moving_average(np.mean(avg_step_sum_power, axis=0, keepdims=True)[0])
avg_step_buffer = moving_average(np.mean(avg_step_buffer, axis=0, keepdims=True)[0])
avg_step_offload_power = moving_average(np.mean(avg_step_offload_power, axis=0, keepdims=True)[0])
avg_step_local_power = moving_average(np.mean(avg_step_local_power, axis=0, keepdims=True)[0])
return avg_step_reward, avg_step_sum_power, avg_step_buffer, avg_step_offload_power, avg_step_local_power
def moving_average(a, n=3) :
ret = np.cumsum(a, dtype=float, axis=0)
ret[n:] = ret[n:] - ret[:-n]
return ret[n - 1:] / n
[step_r, step_p, step_b, step_lp, step_op]= read_log('test_M_ddpg_sigma0_02_rate3_lane2/step_result/')
x = []
for i in range(step_lp.shape[0]):
dis = np.array([i*0.5 - 250,15,10])
x.append(i*0.5 - 250)
fig = plt.figure(figsize=(6*1.4, 4.5*1.4))
plt.plot(x, step_lp, color='#ff7f0e', label='本地处理', lw=1 )
plt.plot(x, step_op, color='#1f77b4', label='任务卸载', lw=1 )
plt.grid(linestyle=':')
plt.legend(prop=font)
# plt.ylabel('Power')
plt.ylabel('功率',fontproperties=font)
plt.xlabel('$\mathit{d_m(t)}$\n(a)')
plt.show()