2014-01-09 107 views
0

希望有人可以启发我,而不必发布大量令人困惑的代码。IPython引擎返回不同的结果

我正在使用IPython.parallel来处理神经网络。为了找到一个错误,我决定使用相同的输入数据将同一个网络发送给每个客户端。我希望每个客户都会回复相同的答案,而这在大多数情况下都是如此。不过有时候我会从每个客户那里得到截然不同的结果。

这里只是运行代码5个不同时间的示例。每次代码运行一个新的网络建立,所以我期望运行之间的不同解决方案,但是,每次运行我发送到每个客户端相同的网络...

我使用apply_async发送(所有这些都在一台本地机器上)

在处理过程中没有生成随机数字,我正在使用的唯一数学函数是内置的pow()numpy.tanh()

关于追踪发生了什么的最佳方法的任何想法?

%> ./ld_cluster.py 
Available workers: 5 
importing sys on engine(s) 
0) b0ca598b-8cc8-4de7-8e6e-f62c1e6eba58 :: 2.020202 
0) b0ca598b-8cc8-4de7-8e6e-f62c1e6eba58 :: 2.020202 
0) b0ca598b-8cc8-4de7-8e6e-f62c1e6eba58 :: 2.020202 
0) b0ca598b-8cc8-4de7-8e6e-f62c1e6eba58 :: 2.020202 
0) b0ca598b-8cc8-4de7-8e6e-f62c1e6eba58 :: 2.020202 
%> ./ld_cluster.py 
Available workers: 5 
importing sys on engine(s) 
0) ff0ac798-3eb9-43cd-940a-6bc77447a3b4 :: 1.846979 
0) ff0ac798-3eb9-43cd-940a-6bc77447a3b4 :: 1.846979 
0) ff0ac798-3eb9-43cd-940a-6bc77447a3b4 :: 1.846979 
0) ff0ac798-3eb9-43cd-940a-6bc77447a3b4 :: 1.846979 
0) ff0ac798-3eb9-43cd-940a-6bc77447a3b4 :: 1.846979 
%> ./ld_cluster.py 
Available workers: 5 
importing sys on engine(s) 
0) f679d9c3-9e00-4b32-84b7-72fcf9fb5da0 :: 2.021491 
0) f679d9c3-9e00-4b32-84b7-72fcf9fb5da0 :: 2.021491 
0) f679d9c3-9e00-4b32-84b7-72fcf9fb5da0 :: 2.021491 
0) f679d9c3-9e00-4b32-84b7-72fcf9fb5da0 :: 2.021491 
0) f679d9c3-9e00-4b32-84b7-72fcf9fb5da0 :: 2.021491 
%> ./ld_cluster.py 
Available workers: 5 
importing sys on engine(s) 
0) f28617ef-72e7-4de3-a0a7-a98057efaa2e :: 1.979795 
0) f28617ef-72e7-4de3-a0a7-a98057efaa2e :: 1.979795 
0) f28617ef-72e7-4de3-a0a7-a98057efaa2e :: 1.979795 
0) f28617ef-72e7-4de3-a0a7-a98057efaa2e :: 1.979795 
0) f28617ef-72e7-4de3-a0a7-a98057efaa2e :: 1.979795 
%> ./ld_cluster.py 
Available workers: 5 
importing sys on engine(s) 
0) dd635626-4881-4470-909f-6a2fbe73b06d :: 2.020196 
0) dd635626-4881-4470-909f-6a2fbe73b06d :: 1.991076 
0) dd635626-4881-4470-909f-6a2fbe73b06d :: 1.952310 
0) dd635626-4881-4470-909f-6a2fbe73b06d :: 1.887462 
0) dd635626-4881-4470-909f-6a2fbe73b06d :: 2.019929 
+0

如何记录内部变量的值,并进行比较时,结果是不同的。 – HYRY

+0

可能某些全局变量或静态变量无法正确重新初始化 - 重新启动群集以确保您具有相同的启动条件。 – Dietrich

+0

工作人员是否总是以完全相同的顺序提供完全相同的数据?不确定你的工作人员在这里做什么,但也许执行顺序可能是一个问题? –

回答

0

认为我应该显示的答案(如果它可以被称为是)在这里也...

请参阅THIS THREAD.