From 51792022c9f7963321d77d7dac4143e566af9fdc Mon Sep 17 00:00:00 2001 From: qiaolongfei Date: Tue, 22 Aug 2017 12:54:44 -0700 Subject: [PATCH] refine code and add debug info --- python/paddle/v2/framework/tests/mnist.py | 47 +++++++++++------------ 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/python/paddle/v2/framework/tests/mnist.py b/python/paddle/v2/framework/tests/mnist.py index f75f196168..6a3ed0dce0 100644 --- a/python/paddle/v2/framework/tests/mnist.py +++ b/python/paddle/v2/framework/tests/mnist.py @@ -52,7 +52,7 @@ def grad_var_name(var_name): return var_name + "@GRAD" -def sgd_optimizer(net, param_name, learning_rate=0.01): +def sgd_optimizer(net, param_name, learning_rate=0.001): grad_name = grad_var_name(param_name) optimize_op = Operator( "sgd", @@ -65,7 +65,6 @@ def sgd_optimizer(net, param_name, learning_rate=0.01): # should use operator and add these to the init_network def init_param(param_name, dims): - print param_name var = scope.new_var(param_name) tensor = var.get_tensor() tensor.set_dims(dims) @@ -158,17 +157,34 @@ def print_inputs_outputs(op): print("") +def set_cost(): + cost_data = numpy.array(scope.find_var("cross_entropy_1").get_tensor()) + # print(cost_data) + print(cost_data.sum() / len(cost_data)) + + cost_grad = scope.find_var(grad_var_name("cross_entropy_1")).get_tensor() + cost_grad.set_dims(cost_data.shape) + cost_grad.alloc_float(place) + cost_grad.set(cost_data, place) + + images = data_layer(name='pixel', dims=[BATCH_SIZE, 784]) label = data_layer(name='label', dims=[BATCH_SIZE]) fc = fc_layer(net=forward_network, input=images, size=10, act="softmax") cost = cross_entropy_layer(net=forward_network, input=fc, label=label) + forward_network.complete_add_op(True) -print(forward_network) backward_net = get_backward_net(forward_network) -print(backward_net) optimize_net.complete_add_op(True) + +print(forward_network) +print(backward_net) print(optimize_net) +print_inputs_outputs(forward_network) +print_inputs_outputs(backward_net) +print_inputs_outputs(optimize_net) + reader = paddle.batch( paddle.reader.shuffle( paddle.dataset.mnist.train(), buf_size=8192), @@ -176,34 +192,17 @@ reader = paddle.batch( PASS_NUM = 1000 for pass_id in range(PASS_NUM): - print("===========forward==========") - # feed_data("pixel", numpy.random.random((BATCH_SIZE, 784)).astype('float32')) - # feed_data("label", numpy.ones(BATCH_SIZE).astype("int32")) data = reader().next() + image = numpy.array(map(lambda x: x[0], data)).astype("float32") label = numpy.array(map(lambda x: x[1], data)).astype("int32") feed_data("pixel", image) feed_data("label", label) - forward_network.infer_shape(scope) - print_inputs_outputs(forward_network) - # print(numpy.array(scope.find_var("label").get_tensor())) + forward_network.infer_shape(scope) forward_network.run(scope, dev_ctx) - # print(numpy.array(scope.find_var("fc_0").get_tensor())) - - print("===========backward==========") - cost_data = numpy.array(scope.find_var("cross_entropy_1").get_tensor()) - print(cost_data.sum() / len(cost_data)) - cost_grad = scope.find_var(grad_var_name("cross_entropy_1")).get_tensor() - cost_grad.set_dims(cost_data.shape) - cost_grad.alloc_float(place) - cost_grad.set(cost_data, place) - + set_cost() backward_net.infer_shape(scope) - print_inputs_outputs(backward_net) - backward_net.run(scope, dev_ctx) - print("===========optimize_net==========") - print_inputs_outputs(optimize_net) optimize_net.run(scope, dev_ctx)