|
24 | 24 |
|
25 | 25 |
|
26 | 26 | class TestNetWithDtype(unittest.TestCase):
|
27 |
| - def set_network(self): |
| 27 | + def setUp(self): |
28 | 28 | self.dtype = "float64"
|
29 | 29 | self.init_dtype()
|
30 |
| - main = fluid.Program() |
31 |
| - with fluid.program_guard(main): |
32 |
| - self.x = fluid.layers.data(name='x', shape=[13], dtype=self.dtype) |
33 |
| - self.y = fluid.layers.data(name='y', shape=[1], dtype=self.dtype) |
34 |
| - y_predict = fluid.layers.fc(input=self.x, size=1, act=None) |
35 | 30 |
|
36 |
| - cost = fluid.layers.square_error_cost(input=y_predict, label=self.y) |
| 31 | + def run_net_on_place(self, place): |
| 32 | + main = fluid.Program() |
| 33 | + startup = fluid.Program() |
| 34 | + with fluid.program_guard(main, startup): |
| 35 | + x = fluid.layers.data(name='x', shape=[13], dtype=self.dtype) |
| 36 | + y = fluid.layers.data(name='y', shape=[1], dtype=self.dtype) |
| 37 | + y_predict = fluid.layers.fc(input=x, size=1, act=None) |
| 38 | + cost = fluid.layers.square_error_cost(input=y_predict, label=y) |
37 | 39 | avg_cost = fluid.layers.mean(cost)
|
38 |
| - self.program = main |
39 |
| - self.fetch_list = [avg_cost] |
| 40 | + sgd_optimizer = fluid.optimizer.SGD(learning_rate=0.001) |
| 41 | + sgd_optimizer.minimize(avg_cost) |
40 | 42 |
|
41 |
| - sgd_optimizer = fluid.optimizer.SGD(learning_rate=0.001) |
42 |
| - sgd_optimizer.minimize(avg_cost) |
43 |
| - |
44 |
| - def run_net_on_place(self, place): |
| 43 | + fetch_list = [avg_cost] |
45 | 44 | train_reader = paddle.batch(
|
46 | 45 | paddle.dataset.uci_housing.train(), batch_size=BATCH_SIZE)
|
47 |
| - feeder = fluid.DataFeeder(place=place, feed_list=[self.x, self.y]) |
| 46 | + feeder = fluid.DataFeeder(place=place, feed_list=[x, y]) |
48 | 47 | exe = fluid.Executor(place)
|
49 |
| - exe.run(fluid.default_startup_program()) |
| 48 | + exe.run(startup) |
50 | 49 | for data in train_reader():
|
51 |
| - exe.run(self.program, |
52 |
| - feed=feeder.feed(data), |
53 |
| - fetch_list=self.fetch_list) |
| 50 | + exe.run(main, feed=feeder.feed(data), fetch_list=fetch_list) |
54 | 51 | # the main program is runable, the datatype is fully supported
|
55 | 52 | break
|
56 | 53 |
|
57 | 54 | def init_dtype(self):
|
58 | 55 | pass
|
59 | 56 |
|
60 | 57 | def test_cpu(self):
|
61 |
| - self.set_network() |
62 | 58 | place = fluid.CPUPlace()
|
63 | 59 | self.run_net_on_place(place)
|
64 | 60 |
|
65 | 61 | def test_gpu(self):
|
66 | 62 | if not core.is_compiled_with_cuda():
|
67 | 63 | return
|
68 |
| - self.set_network() |
69 | 64 | place = fluid.CUDAPlace(0)
|
70 | 65 | self.run_net_on_place(place)
|
71 | 66 |
|
|
0 commit comments