我有一个表格的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)
我不喜欢它,因为它创建了额外的列表然后丢弃它们.
我在 Visual Studio 2010 中使用 CMake 和 CTest。
在ENABLE_TESTING()几个ADD_TEST()s之后,我的解决方案包含名称为“连续”、“实验”等的项目。
我不需要他们全部。而且,我要把所有的代码都传给一个对 CMake 不是很熟悉的人,担心这种丰富会混淆和误导他。
所以,我只想留下 RUN_TESTS 项目并摆脱所有其他测试项目。
我怎样才能做到这一点?
我有一个 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 中工作。
更新 我已经阅读了其他类似问题的答案。我不明白两件事。
我有一个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..)。
我还需要alpha在geom_hex看到重叠的课程。
我对 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在另一个终端。
我正在尝试在 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)