Tensorflow topn_test在ppc64le上失败

时间:2017-01-17 11:02:06

标签: tensorflow

对于tensorflow 0.12,topn_test.py在ppc64le上为TopN类编写的测试失败。 以其中一个失败的测试为例,以下是观察到的内容 -

失败:testSimple(主要 .TopNTest)

追踪(最近一次呼叫最后一次):

 File "./python2.7/site-packages/tensorflow/contrib/tensor_forest/python/topn_test.py", line 121, in testSimple
    self.assertItemsEqual([2, 3], list(ids_v))
AssertionError: Element counts were not equal:
First has 1, Second has 0:  2
First has 0, Second has 1:  1

预计为[2, 3],而实际为[3, 1]

此测试的代码如下 -

def testSimple(self):
    t = topn.TopN(1000, shortlist_size=10)
    t.insert([1, 2, 3, 4, 5], [1.0, 2.0, 3.0, 4.0, 5.0])
    t.remove([4, 5])
    ids, vals = t.get_best(2)
    with session.Session() as sess:
        sess.run(tf.global_variables_initializer())
        ids_v, vals_v = sess.run([ids, vals])
        self.assertItemsEqual([2, 3], list(ids_v))
        self.assertItemsEqual([2.0, 3.0], list(vals_v))

在上面的测试中,如果我们在ids_v, vals_v = sess.run([ids, vals])之前将id运行到sess,那么测试通过这意味着将id运行到会话两次会在第二次运行中得到预期的结果。 第一个sess.run(ids)的输出给出[3, 1],然后下一个运行给出[3, 2]。这很奇怪。理想情况下,sess.run应该始终在每次运行中给出固定的结果。如果我错了,请更正。

即使在x86上也观察到相同的情况,唯一的区别是第一次运行给出[3, 2],第二次运行给出[3, 3]

有人可以告诉我sess.run(ids)如何在每次运行中提供不同的输出?这是预期的行为还是TopN类的实现存在其他一些潜在的问题?我还检查过一个恒定的张量,这种奇怪的行为并没有被它看到。

提前致谢。

0 个答案:

没有答案