提交 52d2ebda 编写于 作者: D dongzhihong

"test gaussian random in python side"

上级 e2c08d28
...@@ -43,4 +43,5 @@ cc_library(paddle_pybind SHARED ...@@ -43,4 +43,5 @@ cc_library(paddle_pybind SHARED
add_op add_op
mean_op mean_op
cross_entropy_op cross_entropy_op
gaussian_random_op
recurrent_op) recurrent_op)
...@@ -41,6 +41,7 @@ USE_OP(sigmoid); ...@@ -41,6 +41,7 @@ USE_OP(sigmoid);
USE_OP(softmax); USE_OP(softmax);
USE_OP(rowwise_add); USE_OP(rowwise_add);
USE_OP_WITHOUT_KERNEL(recurrent_op); USE_OP_WITHOUT_KERNEL(recurrent_op);
USE_OP(gaussian_random);
namespace paddle { namespace paddle {
namespace framework { namespace framework {
template <typename ClassType> template <typename ClassType>
......
...@@ -21,3 +21,5 @@ py_test(test_rowwise_add_op SRCS test_rowwise_add_op.py) ...@@ -21,3 +21,5 @@ py_test(test_rowwise_add_op SRCS test_rowwise_add_op.py)
py_test(test_default_scope_funcs SRCS test_default_scope_funcs.py) py_test(test_default_scope_funcs SRCS test_default_scope_funcs.py)
py_test(test_op_creation_methods SRCS test_op_creation_methods.py) py_test(test_op_creation_methods SRCS test_op_creation_methods.py)
py_test(test_gaussian_random_op SRCS test_gaussian_random_op.py)
import unittest
import paddle.v2.framework.core as core
import paddle.v2.framework.op as Operator
import numpy
class GaussianRandomTest(unittest.TestCase):
def test_cpu(self):
self.test_gaussian_random(place=core.CPUPlace())
def test_gpu(self):
self.test_gaussian_random(place=core.GPUPlace(0))
def test_gaussian_random(self, place):
scope = core.Scope()
scope.new_var("Out").get_tensor()
op = Operator(
"gaussian_random",
Out="Out",
dims=[1000, 784],
mean=.0,
std=1.,
seed=0)
op.infer_shape(scope)
context = core.DeviceContext.create(place)
op.run(scope, context)
tensor = numpy.array(scope.find_var("Out").get_tensor())
self.assertAlmostEqual(numpy.mean(tensor), .0, places=3)
self.assertAlmostEqual(numpy.std(tensor), 1., places=3)
if __name__ == '__main__':
unittest.main()
import unittest
import paddle.v2.framework.create_op_creation_methods as creation
import paddle.v2.framework.core as core
from op_test_util import OpTestMeta
import numpy
class TestRandomOp(unittest.TestCase):
def test_random(self):
scope = core.Scope(None)
# Out = scope.create_var("Out")
op = creation.op_creations.gaussian_random(
shape=[1000, 1000], mean=5.0, std=1.0, Out="Out")
for out in op.outputs():
if scope.get_var(out) is None:
scope.create_var(out).get_tensor()
tensor = scope.get_var("Out").get_tensor()
op.infer_shape(scope)
self.assertEqual([1000, 1000], tensor.shape())
ctx = core.DeviceContext.cpu_context()
op.run(scope, ctx)
tensor_array = numpy.array(tensor)
self.assertAlmostEqual(numpy.mean(tensor_array), 5.0, places=3)
self.assertAlmostEqual(numpy.std(tensor_array), 1.0, places=3)
if __name__ == '__main__':
unittest.main()
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册