小编tan*_*dem的帖子

使用matplotlib堆积条形图

我使用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)

python plot matplotlib bar-chart

23
推荐指数
4
解决办法
5万
查看次数

为什么需要目标网络?

我担心理解为什么 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 是学习和折扣因素。我可以理解强化学习算法会变得不稳定和发散。

  • 使用经验重放缓冲区,以便我们不会忘记过去的经验,并解相关提供的数据集以学习概率分布。

  • 这是我失败的地方。

  • 让我把论文中的段落分解到这里进行讨论
    • 对 $Q$ 的小幅更新可能会显着改变策略并因此改变数据分布这一事实——理解这一部分。Q-network 的周期性变化可能会导致不稳定和分布变化。例如,如果我们总是左转或类似的事情。
    • 以及动作值 (Q) 与目标值之间的相关性r + $gamma$ (argmax(Q(s’,a’))——这表示奖励 + gamma * 我对回报的预测,因为我采取了我认为当前状态下的最佳行动并从那时起遵循我的政策在。
    • 我们使用迭代更新将动作值 (Q) 调整为仅定期更新的目标值,从而减少与目标的相关性。

那么,总而言之,需要一个目标网络,因为网络在每个时间步都在不断变化,并且“目标值”在每个时间步都在更新?

但我不明白它是如何解决的?

artificial-intelligence deep-learning

19
推荐指数
1
解决办法
1万
查看次数

matplotlib中条形图的平均线

我们如何使用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 plot matplotlib

7
推荐指数
1
解决办法
7729
查看次数

使用matplotlib python将表对齐到x轴

我正在尝试将条形图的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)

python matplotlib

7
推荐指数
1
解决办法
1128
查看次数

numactl 中的节点距离是什么意思?

我试图理解这是什么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 到目前为止,这是我的理解:

  • 我们有 24 个虚拟 CPU,每个节点有 …

linux numa numactl

6
推荐指数
1
解决办法
3858
查看次数

将java线程固定到核心

我正在启动的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)

python linux jvm elasticsearch

5
推荐指数
1
解决办法
458
查看次数

在C中通过引用传递多维数组

#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)

c pointers

3
推荐指数
1
解决办法
3420
查看次数

CPP错误:表达式中的整数溢出

我试图以字节为单位表示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)

c++ types

1
推荐指数
1
解决办法
1101
查看次数