我使用matplotlib生成条形图,看起来堆积条形图有一个错误.每个垂直堆栈的总和应为100.但是,对于X-AXIS刻度65,70,75和80,我们得到完全任意的结果,这没有任何意义.我不明白是什么问题.请在下面找到MWE.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
header = ['a','b','c','d']
dataset= [('60.0', '65.0', '70.0', '75.0', '80.0', '85.0', '90.0', '95.0', '100.0', '105.0', '110.0', '115.0', '120.0', '125.0', '130.0', '135.0', '140.0', '145.0', '150.0', '155.0', '160.0', '165.0', '170.0', '175.0', '180.0', '185.0', '190.0', '195.0', '200.0'), (0.0, 25.0, 48.93617021276596, 83.01886792452831, 66.66666666666666, 66.66666666666666, 70.96774193548387, 84.61538461538461, 93.33333333333333, 85.0, 92.85714285714286, 93.75, 95.0, 100.0, 100.0, 100.0, 100.0, 80.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0), (0.0, 50.0, 36.17021276595745, 11.320754716981133, 26.666666666666668, 33.33333333333333, 29.03225806451613, …
Run Code Online (Sandbox Code Playgroud) 我担心理解为什么 DQN 中需要目标网络?我正在阅读关于“通过深度强化学习进行人类级控制”的论文
我理解Q-learning。Q-learning 是基于价值的强化学习算法,它学习状态-动作之间的“最佳”概率分布,这将在一系列时间步长内最大化其长期折扣奖励。
Q-learning 使用 bellman 方程更新,q-learning 更新的单步由下式给出
Q(S, A) = Q(S, A) + $\alpha$[R_(t+1) + $\gamma$ (Q(s’,a;’) - Q(s,a)]
Run Code Online (Sandbox Code Playgroud)
其中 alpha 和 gamma 是学习和折扣因素。我可以理解强化学习算法会变得不稳定和发散。
使用经验重放缓冲区,以便我们不会忘记过去的经验,并解相关提供的数据集以学习概率分布。
这是我失败的地方。
r + $gamma$ (argmax(Q(s’,a’))
——这表示奖励 + gamma * 我对回报的预测,因为我采取了我认为当前状态下的最佳行动并从那时起遵循我的政策在。那么,总而言之,需要一个目标网络,因为网络在每个时间步都在不断变化,并且“目标值”在每个时间步都在更新?
但我不明白它是如何解决的?
我们如何使用matplotlib绘制直方图的平均线(水平)?
现在,我能够毫无问题地绘制直方图.这是我正在使用的代码:
## necessary variables
ind = np.arange(N) # the x locations for the groups
width = 0.2 # the width of the bars
plt.tick_params(axis='both', which='major', labelsize=30)
plt.tick_params(axis='both', which='minor', labelsize=30)
ax2 = ax.twinx()
## the bars
rects1 = ax.bar(ind, PAAE1, width,
color='0.2',
error_kw=dict(elinewidth=2,ecolor='red'),
label='PAAE1')
rects2 = ax.bar(ind+width, PAAE2, width,
color='0.3',
error_kw=dict(elinewidth=2,ecolor='black'),
label='PAAE2')
rects3 = ax2.bar(ind+width+width, AAE1, width,
color='0.4',
error_kw=dict(elinewidth=2,ecolor='red'),
label='AAE1')
rects4 = ax2.bar(ind+3*width, AAE2, width,
color='0.5',
error_kw=dict(elinewidth=2,ecolor='black'),
label='AAE3')
maxi = max(dataset[2])
maxi1 = max(dataset[4])
f_max = max(maxi, maxi1)
lns = …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将条形图的python表对齐.例如,在附图中,您将看到x轴未正确对齐到python表所关闭的垂直线.
我试着修改图的比例
我希望表格的字体大小为40,以便在我打印IEEEtran纸张时可见.
#!/usr/bin/env python
import csv
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
def plot_bar(dataset):
matplotlib.rc('font', family='sans-serif')
matplotlib.rc('font', serif='Helvetica Neue')
matplotlib.rc('text', usetex='false')
matplotlib.rcParams.update({'font.size': 30})
fig = plt.figure()
ax = fig.add_subplot(111)
fig = matplotlib.pyplot.gcf()
fig.set_size_inches(30.0,7.5)
N = len(dataset[1])
Load = dataset[0]
QoS = dataset[1]
Energy = dataset[2]
ind = np.arange(N)
width = 0.35
plt.tick_params(axis='both', which='major', labelsize=35, pad=15)
plt.tick_params(axis='y', which='minor', labelsize=35, pad=15)
rects1 = ax.bar(ind, QoS, width,
color='0.2',
label='HP')
rects3 = ax.bar(ind+width, Energy, width,
color='0.4',
label='OM')
lns = …
Run Code Online (Sandbox Code Playgroud) 我试图理解这是什么node distances
意思numactl --hardware
?
在我们的集群上,它输出以下内容
numactl --hardware
available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3 4 5 12 13 14 15 16 17
node 0 size: 32143 MB
node 0 free: 188 MB
node 1 cpus: 6 7 8 9 10 11 18 19 20 21 22 23
node 1 size: 32254 MB
node 1 free: 69 MB
node distances:
node 0 1
0: 10 21
1: 21 10
到目前为止,这是我的理解:
我正在启动的java进程是Elasticsearch,它创建了许多线程.我检查一下使用ps HuH p <pid> | wc -l
.这就是我如何获得elasticsearch的pid:
ES=`jps | egrep 'Elasticsearch' | awk '{print $1}'`
Run Code Online (Sandbox Code Playgroud)
我使用以下python脚本将所有线程从给定的pid固定到一组核心.
#!/usr/bin/env python
import os
import argparse
def task_set(pid, core):
print "pinning all threads of pid: ", pid, " to cores: ", core
os.system('taskset -apc '+str(core)+' ' +str(pid)+' >/dev/null')
def main(args):
experiments = ["1B", "2B", "1B3S", "2B2S", "1S", "2S", "3S", "4S"]
which = args.id[0]
idx = experiments.index(which)
PC = ["0", "0,1", "0,2,3,4", "0,1,2,3", "2", "2,3","2,3,4", "2,3,4,5"]
task_set(args.pid[0], PC[idx])
if __name__ == "__main__":
parser …
Run Code Online (Sandbox Code Playgroud) #include <stdio.h>
void f(int *app[][20]) {
int i, j;
for (i =0; i< 20; i++){
for (j=0; j<20; j++){
*app[i][j] = i;
}
}
}
int main() {
int app[20][20];
int i, j;
f(&app);
for (i =0; i< 20; i++){
for (j=0; j<20; j++){
printf("i %d, j%d val= %d\n", i, j, app[i][j]);
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我到底做错了什么?我没有收到任何错误,但是存在分段错误,我不知道为什么。
te.c:15:5: warning: passing argument 1 of ‘f’ from incompatible pointer type
f(&app);
^
te.c:3:6: note: expected ‘int * (*)[20]’ but argument is …
Run Code Online (Sandbox Code Playgroud) 我试图以字节为单位表示16gb,并uint64_t
抛出错误.
我应该使用什么样的数据类型来表示它?
unsigned long int
也会抛出错误.
error: integer overflow in expression [-Werror=overflow]
uint64_t TESTBYTES = 16 * 1024 * 1024 * 1024;
Run Code Online (Sandbox Code Playgroud)