|  | from __future__ import absolute_import | 
|  | from __future__ import division | 
|  | from __future__ import print_function | 
|  | from __future__ import unicode_literals | 
|  |  | 
|  | import unittest | 
|  | import hypothesis.strategies as st | 
|  | from hypothesis import given | 
|  | import numpy as np | 
|  | from caffe2.python import core, workspace | 
|  | import caffe2.python.hypothesis_test_util as hu | 
|  | import caffe2.python.ideep_test_util as mu | 
|  |  | 
|  | @unittest.skipIf(not workspace.C.use_mkldnn, "No MKLDNN support.") | 
|  | class SoftmaxTest(hu.HypothesisTestCase): | 
|  | @given(size=st.integers(8, 20), | 
|  | input_channels=st.integers(1, 3), | 
|  | batch_size=st.integers(1, 3), | 
|  | inplace=st.booleans(), | 
|  | **mu.gcs) | 
|  | def test_softmax(self, size, input_channels, batch_size, inplace, gc, dc): | 
|  | op = core.CreateOperator( | 
|  | "Softmax", | 
|  | ["X"], | 
|  | ["Y"], | 
|  | axis=1, | 
|  | ) | 
|  | X = np.random.rand( | 
|  | batch_size, input_channels, size, size).astype(np.float32) - 0.5 | 
|  | self.assertDeviceChecks(dc, op, [X], [0]) | 
|  |  | 
|  |  | 
|  | if __name__ == "__main__": | 
|  | unittest.main() |