|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from __future__ import print_function |
|
|
import unittest |
|
|
|
|
|
import contextlib |
|
|
|
|
|
import paddle |
|
|
from paddle.static import Program |
|
|
|
|
|
|
|
|
class LayerTest(unittest.TestCase): |
|
|
@classmethod |
|
|
def setUpClass(cls): |
|
|
cls.seed = 111 |
|
|
|
|
|
@classmethod |
|
|
def tearDownClass(cls): |
|
|
pass |
|
|
|
|
|
def _get_place(self, force_to_use_cpu=False): |
|
|
|
|
|
if force_to_use_cpu: |
|
|
return 'cpu' |
|
|
else: |
|
|
return paddle.device.get_device() |
|
|
|
|
|
@contextlib.contextmanager |
|
|
def static_graph(self): |
|
|
paddle.enable_static() |
|
|
scope = paddle.static.Scope() |
|
|
program = Program() |
|
|
with paddle.static.scope_guard(scope): |
|
|
with paddle.static.program_guard(program): |
|
|
paddle.seed(self.seed) |
|
|
paddle.framework.random._manual_program_seed(self.seed) |
|
|
yield |
|
|
|
|
|
def get_static_graph_result(self, |
|
|
feed, |
|
|
fetch_list, |
|
|
with_lod=False, |
|
|
force_to_use_cpu=False): |
|
|
exe = paddle.static.Executor(self._get_place(force_to_use_cpu)) |
|
|
exe.run(paddle.static.default_startup_program()) |
|
|
return exe.run(paddle.static.default_main_program(), |
|
|
feed=feed, |
|
|
fetch_list=fetch_list, |
|
|
return_numpy=(not with_lod)) |
|
|
|
|
|
@contextlib.contextmanager |
|
|
def dynamic_graph(self, force_to_use_cpu=False): |
|
|
paddle.disable_static() |
|
|
place = self._get_place(force_to_use_cpu=force_to_use_cpu) |
|
|
paddle.device.set_device(place) |
|
|
paddle.seed(self.seed) |
|
|
paddle.framework.random._manual_program_seed(self.seed) |
|
|
yield |
|
|
|