小编wl2*_*776的帖子

字典键的子集

我有一个表格的python字典{'ip1:port1' : <value>, 'ip1:port2' : <value>, 'ip2:port1' : <value>, ...}.字典键是字符串,由ip:端口对组成.值对此任务并不重要.

我需要一个ip:port具有唯一IP地址的组合列表,端口可以是原始密钥中出现的任何端口.例如,上面可以接受两种变体:['ip1:port1', ip2:port1']['ip1:port2', ip2:port1'].

这种方式最蟒蛇的方式是什么?

目前我的解决方案是

def get_uniq_worker_ips(workers):
    wip = set(w.split(':')[0] for w in workers.iterkeys())
    return [[worker for worker in workers.iterkeys() if worker.startswith(w)][0] for w in wip]
Run Code Online (Sandbox Code Playgroud)

我不喜欢它,因为它创建了额外的列表然后丢弃它们.

python dictionary

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

CTest,VS2010。如何摆脱 Nightly、NightlyMemCheck 等?

我在 Visual Studio 2010 中使用 CMake 和 CTest。

ENABLE_TESTING()几个ADD_TEST()s之后,我的解决方案包含名称为“连续”、“实验”等的项目。

我不需要他们全部。而且,我要把所有的代码都传给一个对 CMake 不是很熟悉的人,担心这种丰富会混淆和误导他。

所以,我只想留下 RUN_TESTS 项目并摆脱所有其他测试项目。

我怎样才能做到这一点?

cmake ctest visual-studio

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

使用 typedef 为 std::unique_ptr 指定自定义默认删除器

我有一个 C 代码,使用一些资源。它有这样的功能

ResourcePointer resource_new(void);
void resource_delete(ResourcePointer *res);
Run Code Online (Sandbox Code Playgroud)

这里ResourcePointer

typedef void * ResourcePointer;
Run Code Online (Sandbox Code Playgroud)

我想创建一个typedeffor std::unique_ptr,指定该自定义默认删除器。

以下工作,但需要重复resource_delete

typedef std::unique_ptr<std::remove_pointer<ResourcePointer>::type, 
                            void(*)(ResourcePointer)> Resource_auto_pointer;
Run Code Online (Sandbox Code Playgroud)

然后在代码中

Resource_auto_pointer resource(resource_new(), resource_delete);
...
Resource_auto_pointer res2 = { resource_new(), resource_delete };
Run Code Online (Sandbox Code Playgroud)

我应该如何更改typedef,以便编译器在resource_delete每次需要时自动替换?我希望我的代码如下所示

Resource_auto_pointer2 resource (resource_new());
...
Resource_auto_pointer2 res2 = { resource_new() };
Run Code Online (Sandbox Code Playgroud)

编译器应该以某种方式猜测它应该resource_delete为每个类型的对象调用Resource_auto_pointer2

我在 MS Visual Studio 2013 中工作。

更新 我已经阅读了其他类似问题的答案。我不明白两件事。

  1. 为什么 std::function 不起作用?
  2. 我为什么要创建新类型,因为(大概)一切都已经说了?

c++ c++11 visual-studio-2013

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

如何在 R ggplot 中标准化 stat_binhex 中的计数?

我有一个data.frame,有两个变量,测量两个类的参数,每个类的数据量非常不同(~2500 个样本 vs~100000 个样本)。

示例代码:

plot.gg <- ggplot(data=rbind(
                    data.frame(x=rnorm(2500, m=0.41, sd=0.1), y=rnorm(2500, m=12000, sd=1000), type="A"),
                    data.frame(x=rnorm(100000, m=0.60, sd=0.1), y=rnorm(100000, m=6000, sd=1000), type="B")
                  ),
              mapping=aes(x=x, y=y, colour=type, group=type)
             ) + geom_hex(alpha=0.3)

plot.gg
Run Code Online (Sandbox Code Playgroud)

结果: 在此处输入图片说明

在这里,两个类都使用单一调色板,这导致 A 类的灰色填充均匀。我想为 A 类使用单独的调色板,以查看其分布。

另一个可接受的变体是标准化数据以查看百分比而不是计数。但是,我不知道如何使用..count..(..count..)/sum(..count..)

我还需要alphageom_hex看到重叠的课程。

r ggplot2

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

从已经运行的 docker 容器中保存工件

我对 Docker 完全陌生。我用它来训练神经网络。

我有一个正在运行的容器,执行一个用于训练 NN 的脚本,并将其权重保存在容器的可写层中。最近我意识到这个设置是不正确的(我没有正确的 RTFM),训练结束后 NN 权重会丢失。

我已经阅读了有关卷和持久数据存储的答案和方法。所有这些都表达了一个想法:您必须提前准备好数据存储。

我的容器已经在运行。我明白不正确的设置是我的错。无论如何,我不想丢失将在此执行过程中获得的结果(现在正在进行中)。是否可以?

我想到的一种解决方案是再打开一个终端并运行 watch -n 1000 docker commit <image id> tag:label

也就是说,每 1000 秒提交一次快照。但是,在最后一个 epoch 上获得的权重仍然存在危险,因为 epoch 持续时间不同并且不是 1000 的倍数。

有没有更优雅的解决方案?

附加信息

此容器的映像是使用以下 Dockerfile 创建的:

FROM tensorflow-py3-gpu-keras

WORKDIR /root

COPY model4.py /root
COPY data_generator.py /root
COPY hyper_parameters.py /root

CMD python model4.py 
Run Code Online (Sandbox Code Playgroud)

我已经tensorflow-py3-gpu-keras从 DockerHub 中提取的最新 tensorflow 图像手动创建了图像:

docker run tensorflow

容器内部:

pip3 install keras

docker commit在另一个终端。

docker dockerfile

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

嵌套有向子图

我正在尝试在 graphviz 中获取嵌套子图。

Graphviz版本是2.38.0(20140413.2041)

这是代码:

digraph G {
        subgraph cluster_win {
                style=filled;
                color=lightgrey;
                label = "Windows"

                subgraph extra_enabled {
                    fillcolor = "#EDF1F2"; 
                    color = "#028d35";
                    label="Subdirectory extra included";

                    node [style=filled,color=white];
                    config_debug1 [label = "Configure Debug"];
                    config_release1 [label = "Configure Release"];
                    build_debug1 [label = "Build"];
                    build_release1 [label = "Build"];

                    config_debug1 -> build_debug1;
                    config_release1 -> build_release1;

                    shape=rect;
                    style=rounded; 
                }

                subgraph extra_disabled {
                    label = "Subdirectory extra excluded";

                    config_debug2 [label = "Configure Debug"];
                    config_release2 [label = "Configure Release"];
                    build_debug2 [label = "Build"];
                    build_release2 …
Run Code Online (Sandbox Code Playgroud)

graphviz

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