-
Notifications
You must be signed in to change notification settings - Fork 94
Open
Description
mr-0xp2
has 4 gpus and 2 tests are constantly failing
16:05:50 =================================== FAILURES ===================================
16:05:50 _________________________ TestKmeans.test_fit_iris[C] __________________________
16:05:50 [gw1] linux -- Python 3.6.4 /opt/h2oai/h2o4gpu/python/bin/python
16:05:50
16:05:50 self = <CallInfo when='call' exception: assert False
16:05:50 + where False = <function allclose at 0x7fffb80e87b8>(array([[5.005999...4286 ,\n 1.2285714285714289 ]]) = <h2o4gpu.solvers.kmeans.KMeansH2O object at 0x7fff870e5668>.cluster_centers_>
16:05:50 func = <function call_runtest_hook.<locals>.<lambda> at 0x7fff86fec378>
16:05:50 when = 'call', treat_keyboard_interrupt_as_exception = False
16:05:50
16:05:50 def __init__(self, func, when, treat_keyboard_interrupt_as_exception=False):
16:05:50 #: context of invocation: one of "setup", "call",
16:05:50 #: "teardown", "memocollect"
16:05:50 self.when = when
16:05:50 self.start = time()
16:05:50 try:
16:05:50 > self.result = func()
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/_pytest/runner.py:212:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 > lambda: ihook(item=item, **kwds),
16:05:50 when=when,
16:05:50 treat_keyboard_interrupt_as_exception=item.config.getvalue("usepdb"),
16:05:50 )
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/_pytest/runner.py:194:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 self = <_HookCaller 'pytest_runtest_call'>, args = ()
16:05:50 kwargs = {'item': <Function 'test_fit_iris[C]'>}, notincall = set()
16:05:50
16:05:50 def __call__(self, *args, **kwargs):
16:05:50 if args:
16:05:50 raise TypeError("hook calling supports only keyword arguments")
16:05:50 assert not self.is_historic()
16:05:50 if self.spec and self.spec.argnames:
16:05:50 notincall = (
16:05:50 set(self.spec.argnames) - set(["__multicall__"]) - set(kwargs.keys())
16:05:50 )
16:05:50 if notincall:
16:05:50 warnings.warn(
16:05:50 "Argument(s) {} which are declared in the hookspec "
16:05:50 "can not be found in this hook call".format(tuple(notincall)),
16:05:50 stacklevel=2,
16:05:50 )
16:05:50 > return self._hookexec(self, self.get_hookimpls(), kwargs)
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/pluggy/hooks.py:286:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 self = <_pytest.config.PytestPluginManager object at 0x7fffb98cd5c0>
16:05:50 hook = <_HookCaller 'pytest_runtest_call'>
16:05:50 methods = [<HookImpl plugin_name='runner', plugin=<module '_pytest.runner' from '/opt/h2oai/h2o4gpu/python/lib/python3.6/site-pa...ffb89a1d30>>, <HookImpl plugin_name='logging-plugin', plugin=<_pytest.logging.LoggingPlugin object at 0x7fffb8456898>>]
16:05:50 kwargs = {'item': <Function 'test_fit_iris[C]'>}
16:05:50
16:05:50 def _hookexec(self, hook, methods, kwargs):
16:05:50 # called from all hookcaller instances.
16:05:50 # enable_tracing will set its own wrapping function at self._inner_hookexec
16:05:50 > return self._inner_hookexec(hook, methods, kwargs)
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/pluggy/manager.py:92:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 hook = <_HookCaller 'pytest_runtest_call'>
16:05:50 methods = [<HookImpl plugin_name='runner', plugin=<module '_pytest.runner' from '/opt/h2oai/h2o4gpu/python/lib/python3.6/site-pa...ffb89a1d30>>, <HookImpl plugin_name='logging-plugin', plugin=<_pytest.logging.LoggingPlugin object at 0x7fffb8456898>>]
16:05:50 kwargs = {'item': <Function 'test_fit_iris[C]'>}
16:05:50
16:05:50 self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
16:05:50 methods,
16:05:50 kwargs,
16:05:50 > firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
16:05:50 )
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/pluggy/manager.py:86:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 item = <Function 'test_fit_iris[C]'>
16:05:50
16:05:50 def pytest_runtest_call(item):
16:05:50 _update_current_test_var(item, "call")
16:05:50 sys.last_type, sys.last_value, sys.last_traceback = (None, None, None)
16:05:50 try:
16:05:50 > item.runtest()
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/_pytest/runner.py:122:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 self = <Function 'test_fit_iris[C]'>
16:05:50
16:05:50 def runtest(self):
16:05:50 """ execute the underlying test function. """
16:05:50 > self.ihook.pytest_pyfunc_call(pyfuncitem=self)
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/_pytest/python.py:1438:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 self = <_HookCaller 'pytest_pyfunc_call'>, args = ()
16:05:50 kwargs = {'pyfuncitem': <Function 'test_fit_iris[C]'>}, notincall = set()
16:05:50
16:05:50 def __call__(self, *args, **kwargs):
16:05:50 if args:
16:05:50 raise TypeError("hook calling supports only keyword arguments")
16:05:50 assert not self.is_historic()
16:05:50 if self.spec and self.spec.argnames:
16:05:50 notincall = (
16:05:50 set(self.spec.argnames) - set(["__multicall__"]) - set(kwargs.keys())
16:05:50 )
16:05:50 if notincall:
16:05:50 warnings.warn(
16:05:50 "Argument(s) {} which are declared in the hookspec "
16:05:50 "can not be found in this hook call".format(tuple(notincall)),
16:05:50 stacklevel=2,
16:05:50 )
16:05:50 > return self._hookexec(self, self.get_hookimpls(), kwargs)
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/pluggy/hooks.py:286:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 self = <_pytest.config.PytestPluginManager object at 0x7fffb98cd5c0>
16:05:50 hook = <_HookCaller 'pytest_pyfunc_call'>
16:05:50 methods = [<HookImpl plugin_name='python', plugin=<module '_pytest.python' from '/opt/h2oai/h2o4gpu/python/lib/python3.6/site-pa..., plugin=<module '_pytest.skipping' from '/opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/_pytest/skipping.py'>>]
16:05:50 kwargs = {'pyfuncitem': <Function 'test_fit_iris[C]'>}
16:05:50
16:05:50 def _hookexec(self, hook, methods, kwargs):
16:05:50 # called from all hookcaller instances.
16:05:50 # enable_tracing will set its own wrapping function at self._inner_hookexec
16:05:50 > return self._inner_hookexec(hook, methods, kwargs)
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/pluggy/manager.py:92:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 hook = <_HookCaller 'pytest_pyfunc_call'>
16:05:50 methods = [<HookImpl plugin_name='python', plugin=<module '_pytest.python' from '/opt/h2oai/h2o4gpu/python/lib/python3.6/site-pa..., plugin=<module '_pytest.skipping' from '/opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/_pytest/skipping.py'>>]
16:05:50 kwargs = {'pyfuncitem': <Function 'test_fit_iris[C]'>}
16:05:50
16:05:50 self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
16:05:50 methods,
16:05:50 kwargs,
16:05:50 > firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
16:05:50 )
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/pluggy/manager.py:86:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 pyfuncitem = <Function 'test_fit_iris[C]'>
16:05:50
16:05:50 @hookimpl(trylast=True)
16:05:50 def pytest_pyfunc_call(pyfuncitem):
16:05:50 testfunction = pyfuncitem.obj
16:05:50 if pyfuncitem._isyieldedfunction():
16:05:50 testfunction(*pyfuncitem._args)
16:05:50 else:
16:05:50 funcargs = pyfuncitem.funcargs
16:05:50 testargs = {}
16:05:50 for arg in pyfuncitem._fixtureinfo.argnames:
16:05:50 testargs[arg] = funcargs[arg]
16:05:50 > testfunction(**testargs)
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/_pytest/python.py:166:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 self = <test_kmeans.TestKmeans object at 0x7fff909fc320>, order = 'C'
16:05:50
16:05:50 @pytest.mark.parametrize("order", ['C', 'F'])
16:05:50 def test_fit_iris(self, order):
16:05:50 X = np.asanyarray(load_iris().data, order=order)
16:05:50 clusters = 4
16:05:50 model = KMeans(n_gpus=1, n_clusters=clusters, random_state=123).fit(X)
16:05:50
16:05:50 assert model.cluster_centers_.shape == (X.shape[1], clusters)
16:05:50
16:05:50 model_rerun = KMeans(n_gpus=1, n_clusters=clusters,
16:05:50 random_state=123).fit(X)
16:05:50
16:05:50 # Same random_state should yield same results
16:05:50 assert np.allclose(
16:05:50 np.sort(model.cluster_centers_, axis=0), np.sort(
16:05:50 model_rerun.cluster_centers_, axis=0)
16:05:50 )
16:05:50
16:05:50 model_rerun2 = model_rerun.fit(X)
16:05:50
16:05:50 # Multiple invocations of fit with the same random_state
16:05:50 # also should produce the same result
16:05:50 assert np.allclose(
16:05:50 np.sort(model_rerun.cluster_centers_, axis=0), np.sort(
16:05:50 model_rerun2.cluster_centers_, axis=0)
16:05:50 )
16:05:50
16:05:50 model_all = KMeans(n_clusters=clusters, random_state=123).fit(X)
16:05:50
16:05:50 # Multi GPU should yield same result as single GPU
16:05:50 > assert np.allclose(
16:05:50 np.sort(model.cluster_centers_, axis=0), np.sort(
16:05:50 model_all.cluster_centers_, axis=0)
16:05:50 )
16:05:50 E assert False
16:05:50 E + where False = <function allclose at 0x7fffb80e87b8>(array([[5.005999999999999 , 2.622222222222222 , 1.462 ,\n 0.246 ],\n [5.52962962962... 1.6219512195121948],\n [6.912499999999999 , 3.428000000000001 , 5.846874999999998 ,\n 2.131249999999999 ]]), array([[5.005999999999999 , 2.6357142857142857 , 1.4620000000000002 ,\n 0.24600000000000005],\n [5.5321428...05128205128205 ],\n [6.935483870967742 , 3.428000000000001 , 5.861290322580645 ,\n 2.125806451612903 ]]))
16:05:50 E + where <function allclose at 0x7fffb80e87b8> = np.allclose
16:05:50 E + and array([[5.005999999999999 , 2.622222222222222 , 1.462 ,\n 0.246 ],\n [5.52962962962... 1.6219512195121948],\n [6.912499999999999 , 3.428000000000001 , 5.846874999999998 ,\n 2.131249999999999 ]]) = <function sort at 0x7fffb80fa488>(array([[6.912499999999999 , 3.099999999999999 , 5.846874999999998 ,\n 2.131249999999999 ],\n [5.00599999999... 1.2185185185185186],\n [6.236585365853657 , 2.858536585365854 , 4.80731707317073 ,\n 1.6219512195121948]]), axis=0)
16:05:50 E + where <function sort at 0x7fffb80fa488> = np.sort
16:05:50 E + and array([[6.912499999999999 , 3.099999999999999 , 5.846874999999998 ,\n 2.131249999999999 ],\n [5.00599999999... 1.2185185185185186],\n [6.236585365853657 , 2.858536585365854 , 4.80731707317073 ,\n 1.6219512195121948]]) = <h2o4gpu.solvers.kmeans.KMeansH2O object at 0x7fff870e5320>.cluster_centers_
16:05:50 E + and array([[5.005999999999999 , 2.6357142857142857 , 1.4620000000000002 ,\n 0.24600000000000005],\n [5.5321428...05128205128205 ],\n [6.935483870967742 , 3.428000000000001 , 5.861290322580645 ,\n 2.125806451612903 ]]) = <function sort at 0x7fffb80fa488>(array([[6.261538461538462 , 2.8512820512820514 , 4.8076923076923075 ,\n 1.6205128205128205 ],\n [5.0059999...5806451612903 ],\n [5.5321428571428575 , 2.6357142857142857 , 3.960714285714286 ,\n 1.2285714285714289 ]]), axis=0)
16:05:50 E + where <function sort at 0x7fffb80fa488> = np.sort
16:05:50 E + and array([[6.261538461538462 , 2.8512820512820514 , 4.8076923076923075 ,\n 1.6205128205128205 ],\n [5.0059999...5806451612903 ],\n [5.5321428571428575 , 2.6357142857142857 , 3.960714285714286 ,\n 1.2285714285714289 ]]) = <h2o4gpu.solvers.kmeans.KMeansH2O object at 0x7fff870e5668>.cluster_centers_
16:05:50
16:05:50 tests/python/open_data/kmeans/test_kmeans.py:52: AssertionError
16:05:50 _________________________ TestKmeans.test_fit_iris[F] __________________________
16:05:50 [gw1] linux -- Python 3.6.4 /opt/h2oai/h2o4gpu/python/bin/python
16:05:50
16:05:50 self = <CallInfo when='call' exception: assert False
16:05:50 + where False = <function allclose at 0x7fffb80e87b8>(array([[5.006000...4286 ,\n 1.2285714285714284 ]]) = <h2o4gpu.solvers.kmeans.KMeansH2O object at 0x7fff897e28d0>.cluster_centers_>
16:05:50 func = <function call_runtest_hook.<locals>.<lambda> at 0x7fff86fec2f0>
16:05:50 when = 'call', treat_keyboard_interrupt_as_exception = False
16:05:50
16:05:50 def __init__(self, func, when, treat_keyboard_interrupt_as_exception=False):
16:05:50 #: context of invocation: one of "setup", "call",
16:05:50 #: "teardown", "memocollect"
16:05:50 self.when = when
16:05:50 self.start = time()
16:05:50 try:
16:05:50 > self.result = func()
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/_pytest/runner.py:212:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 > lambda: ihook(item=item, **kwds),
16:05:50 when=when,
16:05:50 treat_keyboard_interrupt_as_exception=item.config.getvalue("usepdb"),
16:05:50 )
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/_pytest/runner.py:194:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 self = <_HookCaller 'pytest_runtest_call'>, args = ()
16:05:50 kwargs = {'item': <Function 'test_fit_iris[F]'>}, notincall = set()
16:05:50
16:05:50 def __call__(self, *args, **kwargs):
16:05:50 if args:
16:05:50 raise TypeError("hook calling supports only keyword arguments")
16:05:50 assert not self.is_historic()
16:05:50 if self.spec and self.spec.argnames:
16:05:50 notincall = (
16:05:50 set(self.spec.argnames) - set(["__multicall__"]) - set(kwargs.keys())
16:05:50 )
16:05:50 if notincall:
16:05:50 warnings.warn(
16:05:50 "Argument(s) {} which are declared in the hookspec "
16:05:50 "can not be found in this hook call".format(tuple(notincall)),
16:05:50 stacklevel=2,
16:05:50 )
16:05:50 > return self._hookexec(self, self.get_hookimpls(), kwargs)
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/pluggy/hooks.py:286:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 self = <_pytest.config.PytestPluginManager object at 0x7fffb98cd5c0>
16:05:50 hook = <_HookCaller 'pytest_runtest_call'>
16:05:50 methods = [<HookImpl plugin_name='runner', plugin=<module '_pytest.runner' from '/opt/h2oai/h2o4gpu/python/lib/python3.6/site-pa...ffb89a1d30>>, <HookImpl plugin_name='logging-plugin', plugin=<_pytest.logging.LoggingPlugin object at 0x7fffb8456898>>]
16:05:50 kwargs = {'item': <Function 'test_fit_iris[F]'>}
16:05:50
16:05:50 def _hookexec(self, hook, methods, kwargs):
16:05:50 # called from all hookcaller instances.
16:05:50 # enable_tracing will set its own wrapping function at self._inner_hookexec
16:05:50 > return self._inner_hookexec(hook, methods, kwargs)
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/pluggy/manager.py:92:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 hook = <_HookCaller 'pytest_runtest_call'>
16:05:50 methods = [<HookImpl plugin_name='runner', plugin=<module '_pytest.runner' from '/opt/h2oai/h2o4gpu/python/lib/python3.6/site-pa...ffb89a1d30>>, <HookImpl plugin_name='logging-plugin', plugin=<_pytest.logging.LoggingPlugin object at 0x7fffb8456898>>]
16:05:50 kwargs = {'item': <Function 'test_fit_iris[F]'>}
16:05:50
16:05:50 self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
16:05:50 methods,
16:05:50 kwargs,
16:05:50 > firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
16:05:50 )
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/pluggy/manager.py:86:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 item = <Function 'test_fit_iris[F]'>
16:05:50
16:05:50 def pytest_runtest_call(item):
16:05:50 _update_current_test_var(item, "call")
16:05:50 sys.last_type, sys.last_value, sys.last_traceback = (None, None, None)
16:05:50 try:
16:05:50 > item.runtest()
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/_pytest/runner.py:122:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 self = <Function 'test_fit_iris[F]'>
16:05:50
16:05:50 def runtest(self):
16:05:50 """ execute the underlying test function. """
16:05:50 > self.ihook.pytest_pyfunc_call(pyfuncitem=self)
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/_pytest/python.py:1438:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 self = <_HookCaller 'pytest_pyfunc_call'>, args = ()
16:05:50 kwargs = {'pyfuncitem': <Function 'test_fit_iris[F]'>}, notincall = set()
16:05:50
16:05:50 def __call__(self, *args, **kwargs):
16:05:50 if args:
16:05:50 raise TypeError("hook calling supports only keyword arguments")
16:05:50 assert not self.is_historic()
16:05:50 if self.spec and self.spec.argnames:
16:05:50 notincall = (
16:05:50 set(self.spec.argnames) - set(["__multicall__"]) - set(kwargs.keys())
16:05:50 )
16:05:50 if notincall:
16:05:50 warnings.warn(
16:05:50 "Argument(s) {} which are declared in the hookspec "
16:05:50 "can not be found in this hook call".format(tuple(notincall)),
16:05:50 stacklevel=2,
16:05:50 )
16:05:50 > return self._hookexec(self, self.get_hookimpls(), kwargs)
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/pluggy/hooks.py:286:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 self = <_pytest.config.PytestPluginManager object at 0x7fffb98cd5c0>
16:05:50 hook = <_HookCaller 'pytest_pyfunc_call'>
16:05:50 methods = [<HookImpl plugin_name='python', plugin=<module '_pytest.python' from '/opt/h2oai/h2o4gpu/python/lib/python3.6/site-pa..., plugin=<module '_pytest.skipping' from '/opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/_pytest/skipping.py'>>]
16:05:50 kwargs = {'pyfuncitem': <Function 'test_fit_iris[F]'>}
16:05:50
16:05:50 def _hookexec(self, hook, methods, kwargs):
16:05:50 # called from all hookcaller instances.
16:05:50 # enable_tracing will set its own wrapping function at self._inner_hookexec
16:05:50 > return self._inner_hookexec(hook, methods, kwargs)
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/pluggy/manager.py:92:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 hook = <_HookCaller 'pytest_pyfunc_call'>
16:05:50 methods = [<HookImpl plugin_name='python', plugin=<module '_pytest.python' from '/opt/h2oai/h2o4gpu/python/lib/python3.6/site-pa..., plugin=<module '_pytest.skipping' from '/opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/_pytest/skipping.py'>>]
16:05:50 kwargs = {'pyfuncitem': <Function 'test_fit_iris[F]'>}
16:05:50
16:05:50 self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
16:05:50 methods,
16:05:50 kwargs,
16:05:50 > firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
16:05:50 )
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/pluggy/manager.py:86:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 pyfuncitem = <Function 'test_fit_iris[F]'>
16:05:50
16:05:50 @hookimpl(trylast=True)
16:05:50 def pytest_pyfunc_call(pyfuncitem):
16:05:50 testfunction = pyfuncitem.obj
16:05:50 if pyfuncitem._isyieldedfunction():
16:05:50 testfunction(*pyfuncitem._args)
16:05:50 else:
16:05:50 funcargs = pyfuncitem.funcargs
16:05:50 testargs = {}
16:05:50 for arg in pyfuncitem._fixtureinfo.argnames:
16:05:50 testargs[arg] = funcargs[arg]
16:05:50 > testfunction(**testargs)
16:05:50
16:05:50 /opt/h2oai/h2o4gpu/python/lib/python3.6/site-packages/_pytest/python.py:166:
16:05:50 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
16:05:50
16:05:50 self = <test_kmeans.TestKmeans object at 0x7fff897e2710>, order = 'F'
16:05:50
16:05:50 @pytest.mark.parametrize("order", ['C', 'F'])
16:05:50 def test_fit_iris(self, order):
16:05:50 X = np.asanyarray(load_iris().data, order=order)
16:05:50 clusters = 4
16:05:50 model = KMeans(n_gpus=1, n_clusters=clusters, random_state=123).fit(X)
16:05:50
16:05:50 assert model.cluster_centers_.shape == (X.shape[1], clusters)
16:05:50
16:05:50 model_rerun = KMeans(n_gpus=1, n_clusters=clusters,
16:05:50 random_state=123).fit(X)
16:05:50
16:05:50 # Same random_state should yield same results
16:05:50 assert np.allclose(
16:05:50 np.sort(model.cluster_centers_, axis=0), np.sort(
16:05:50 model_rerun.cluster_centers_, axis=0)
16:05:50 )
16:05:50
16:05:50 model_rerun2 = model_rerun.fit(X)
16:05:50
16:05:50 # Multiple invocations of fit with the same random_state
16:05:50 # also should produce the same result
16:05:50 assert np.allclose(
16:05:50 np.sort(model_rerun.cluster_centers_, axis=0), np.sort(
16:05:50 model_rerun2.cluster_centers_, axis=0)
16:05:50 )
16:05:50
16:05:50 model_all = KMeans(n_clusters=clusters, random_state=123).fit(X)
16:05:50
16:05:50 # Multi GPU should yield same result as single GPU
16:05:50 > assert np.allclose(
16:05:50 np.sort(model.cluster_centers_, axis=0), np.sort(
16:05:50 model_all.cluster_centers_, axis=0)
16:05:50 )
16:05:50 E assert False
16:05:50 E + where False = <function allclose at 0x7fffb80e87b8>(array([[5.006000000000001 , 2.622222222222222 , 1.4620000000000004 ,\n 0.24599999999999989],\n [5.5296296...19512195121946 ],\n [6.9125 , 3.4280000000000004 , 5.846875 ,\n 2.1312499999999996 ]]), array([[5.005999999999999 , 2.6357142857142857 , 1.462 ,\n 0.24600000000000008],\n [5.5321428...05128205128205 ],\n [6.935483870967742 , 3.4279999999999995 , 5.861290322580645 ,\n 2.1258064516129034 ]]))
16:05:50 E + where <function allclose at 0x7fffb80e87b8> = np.allclose
16:05:50 E + and array([[5.006000000000001 , 2.622222222222222 , 1.4620000000000004 ,\n 0.24599999999999989],\n [5.5296296...19512195121946 ],\n [6.9125 , 3.4280000000000004 , 5.846875 ,\n 2.1312499999999996 ]]) = <function sort at 0x7fffb80fa488>(array([[6.9125 , 3.0999999999999996 , 5.846875 ,\n 2.1312499999999996 ],\n [5.0060000...85185185185183 ],\n [6.236585365853658 , 2.858536585365854 , 4.807317073170732 ,\n 1.6219512195121946 ]]), axis=0)
16:05:50 E + where <function sort at 0x7fffb80fa488> = np.sort
16:05:50 E + and array([[6.9125 , 3.0999999999999996 , 5.846875 ,\n 2.1312499999999996 ],\n [5.0060000...85185185185183 ],\n [6.236585365853658 , 2.858536585365854 , 4.807317073170732 ,\n 1.6219512195121946 ]]) = <h2o4gpu.solvers.kmeans.KMeansH2O object at 0x7fff897e22e8>.cluster_centers_
16:05:50 E + and array([[5.005999999999999 , 2.6357142857142857 , 1.462 ,\n 0.24600000000000008],\n [5.5321428...05128205128205 ],\n [6.935483870967742 , 3.4279999999999995 , 5.861290322580645 ,\n 2.1258064516129034 ]]) = <function sort at 0x7fffb80fa488>(array([[6.2615384615384615 , 2.8512820512820514 , 4.8076923076923075 ,\n 1.6205128205128205 ],\n [5.0059999...58064516129034 ],\n [5.5321428571428575 , 2.6357142857142857 , 3.960714285714286 ,\n 1.2285714285714284 ]]), axis=0)
16:05:50 E + where <function sort at 0x7fffb80fa488> = np.sort
16:05:50 E + and array([[6.2615384615384615 , 2.8512820512820514 , 4.8076923076923075 ,\n 1.6205128205128205 ],\n [5.0059999...58064516129034 ],\n [5.5321428571428575 , 2.6357142857142857 , 3.960714285714286 ,\n 1.2285714285714284 ]]) = <h2o4gpu.solvers.kmeans.KMeansH2O object at 0x7fff897e28d0>.cluster_centers_
16:05:50
16:05:50 tests/python/open_data/kmeans/test_kmeans.py:52: AssertionError
Metadata
Metadata
Assignees
Labels
No labels