batch_norm的输入能直接是数据输入层吗
收藏
data = fluid.layers.data('data',shape=[1,250,3],lod_level=1)
data_norm = fluid.layers.batch_norm(data)
这样会报错,如下
---------------------------------------------------------------------------
EnforceNotMet Traceback (most recent call last)
in
----> 1 trainer = Trainer.Trainer(pp,optimizer,place=place)
/opt/conda/envs/py35-paddle1.0.0/lib/python3.5/site-packages/paddle/fluid/contrib/trainer.py in __init__(self, train_func, optimizer_func, param_path, place, parallel, checkpoint_config)
269 raise TypeError(
270 "The optimizer should be an instance of Optimizer")
--> 271 optimize_ops, params_grads = optimizer.minimize(loss)
272
273 self.place = check_and_get_place(place)
/opt/conda/envs/py35-paddle1.0.0/lib/python3.5/site-packages/paddle/fluid/optimizer.py in minimize(self, loss, startup_program, parameter_list, no_grad_set)
253 """
254 params_grads = append_backward(loss, parameter_list, no_grad_set,
--> 255 [error_clip_callback])
256
257 params_grads = sorted(params_grads, key=lambda x: x[0].name)
/opt/conda/envs/py35-paddle1.0.0/lib/python3.5/site-packages/paddle/fluid/backward.py in append_backward(loss, parameter_list, no_grad_set, callbacks)
588 _rename_grad_(root_block, fwd_op_num, grad_to_var, {})
589
--> 590 _append_backward_vars_(root_block, fwd_op_num, grad_to_var, grad_info_map)
591
592 program.current_block_idx = current_block_idx
/opt/conda/envs/py35-paddle1.0.0/lib/python3.5/site-packages/paddle/fluid/backward.py in _append_backward_vars_(block, start_op_idx, grad_to_var, grad_info_map)
424 # infer_shape and infer_type
425 op_desc.infer_var_type(block.desc)
--> 426 op_desc.infer_shape(block.desc)
427 # ncclInit dones't need to set data_type
428 if op_desc.type() == 'ncclInit':
EnforceNotMet: at [/paddle/paddle/fluid/operators/batch_norm_op.cc:335]
PaddlePaddle Call Stacks:
0 0x7f638808c426p paddle::platform::EnforceNotMet::EnforceNotMet(std::__exception_ptr::exception_ptr, char const*, int) + 486
1 0x7f6388270065p paddle::operators::BatchNormGradOp::InferShape(paddle::framework::InferShapeContext*) const + 1717
2 0x7f6388134d86p paddle::framework::OpDesc::InferShape(paddle::framework::BlockDesc const&) const + 902
3 0x7f63880e1755p void pybind11::cpp_function::initialize(void (paddle::framework::OpDesc::*)(paddle::framework::BlockDesc const&) const, pybind11::name const&, pybind11::is_method const&, pybind11::sibling const&)::{lambda(paddle::framework::OpDesc const*, paddle::framework::BlockDesc const&)#1}, void, paddle::framework::OpDesc const*, paddle::framework::BlockDesc const&, pybind11::name, pybind11::is_method, pybind11::sibling>(pybind11::cpp_function::initialize(void (paddle::framework::OpDesc::*)(paddle::framework::BlockDesc const&) const, pybind11::name const&, pybind11::is_method const&, pybind11::sibling const&)::{lambda(paddle::framework::OpDesc const*, paddle::framework::BlockDesc const&)#1}&&, void (*)(paddle::framework::OpDesc const*, paddle::framework::BlockDesc const&), pybind11::name const&, pybind11::is_method const&, pybind11::sibling const&)::{lambda(pybind11::detail::function_call&)#3}::_FUN(pybind11::detail::function_call) + 213
4 0x7f63880bebe4p pybind11::cpp_function::dispatcher(_object*, _object*, _object*) + 2596
5 0x7f63c4eae199p PyCFunction_Call + 233
6 0x7f63c4f493f9p PyEval_EvalFrameEx + 33545
7 0x7f63c4f491d0p PyEval_EvalFrameEx + 32992
8 0x7f63c4f4b4b6p
9 0x7f63c4f485b5p PyEval_EvalFrameEx + 29893
10 0x7f63c4f4b4b6p
11 0x7f63c4f485b5p PyEval_EvalFrameEx + 29893
12 0x7f63c4f4b4b6p
13 0x7f63c4f4b5a8p PyEval_EvalCodeEx + 72
14 0x7f63c4e8ac33p
15 0x7f63c4e5933ap PyObject_Call + 106
16 0x7f63c4e71d7dp
17 0x7f63c4e5933ap PyObject_Call + 106
18 0x7f63c4eca289p
19 0x7f63c4ec4fd6p
20 0x7f63c4e5933ap PyObject_Call + 106
21 0x7f63c4f454c5p PyEval_EvalFrameEx + 17365
22 0x7f63c4f4b4b6p
23 0x7f63c4f4b5a8p PyEval_EvalCodeEx + 72
24 0x7f63c4f4b5ebp PyEval_EvalCode + 59
25 0x7f63c4f3ec5dp
26 0x7f63c4eae179p PyCFunction_Call + 201
27 0x7f63c4f48dbep PyEval_EvalFrameEx + 31950
28 0x7f63c4e82410p _PyGen_Send + 128
29 0x7f63c4f47953p PyEval_EvalFrameEx + 26723
30 0x7f63c4e82410p _PyGen_Send + 128
31 0x7f63c4f47953p PyEval_EvalFrameEx + 26723
32 0x7f63c4e82410p _PyGen_Send + 128
33 0x7f63c4f48d60p PyEval_EvalFrameEx + 31856
34 0x7f63c4f491d0p PyEval_EvalFrameEx + 32992
35 0x7f63c4f491d0p PyEval_EvalFrameEx + 32992
36 0x7f63c4f4b4b6p
37 0x7f63c4f4b5a8p PyEval_EvalCodeEx + 72
38 0x7f63c4e8ac33p
39 0x7f63c4e5933ap PyObject_Call + 106
40 0x7f63c4f436eep PyEval_EvalFrameEx + 9726
41 0x7f63c4f4b4b6p
42 0x7f63c4f485b5p PyEval_EvalFrameEx + 29893
43 0x7f63c4e816bap
44 0x7f63c4f3caf6p
45 0x7f63c4eae179p PyCFunction_Call + 201
46 0x7f63c4f48dbep PyEval_EvalFrameEx + 31950
47 0x7f63c4f4b4b6p
48 0x7f63c4f485b5p PyEval_EvalFrameEx + 29893
49 0x7f63c4e816bap
50 0x7f63c4f3caf6p
51 0x7f63c4eae179p PyCFunction_Call + 201
52 0x7f63c4f48dbep PyEval_EvalFrameEx + 31950
53 0x7f63c4f4b4b6p
54 0x7f63c4f485b5p PyEval_EvalFrameEx + 29893
55 0x7f63c4e816bap
56 0x7f63c4f3caf6p
57 0x7f63c4eae179p PyCFunction_Call + 201
58 0x7f63c4f48dbep PyEval_EvalFrameEx + 31950
59 0x7f63c4f4b4b6p
60 0x7f63c4f4b5a8p PyEval_EvalCodeEx + 72
61 0x7f63c4e8ab56p
62 0x7f63c4e5933ap PyObject_Call + 106
63 0x7f63c4f436eep PyEval_EvalFrameEx + 9726
64 0x7f63c4e82410p _PyGen_Send + 128
65 0x7f63c4f48d60p PyEval_EvalFrameEx + 31856
66 0x7f63c4f491d0p PyEval_EvalFrameEx + 32992
67 0x7f63c4f4b4b6p
68 0x7f63c4f4b5a8p PyEval_EvalCodeEx + 72
69 0x7f63c4e8ab56p
70 0x7f63c4e5933ap PyObject_Call + 106
71 0x7f63c4e71d7dp
72 0x7f63c4e5933ap PyObject_Call + 106
73 0x7f63c4eca289p
74 0x7f63c4ec4fd6p
75 0x7f63c4e5933ap PyObject_Call + 106
76 0x7f63c4f454c5p PyEval_EvalFrameEx + 17365
77 0x7f63c4f4b4b6p
78 0x7f63c4f485b5p PyEval_EvalFrameEx + 29893
79 0x7f63c4e82410p _PyGen_Send + 128
80 0x7f63c4f48d60p PyEval_EvalFrameEx + 31856
81 0x7f63c4f491d0p PyEval_EvalFrameEx + 32992
82 0x7f63c4f4b4b6p
83 0x7f63c4f4b5a8p PyEval_EvalCodeEx + 72
84 0x7f63c4e8ac33p
85 0x7f63c4e5933ap PyObject_Call + 106
86 0x7f63c4f436eep PyEval_EvalFrameEx + 9726
87 0x7f63c4f4b4b6p
88 0x7f63c4f4b5a8p PyEval_EvalCodeEx + 72
89 0x7f63c4e8ab56p
90 0x7f63c4e5933ap PyObject_Call + 106
91 0x7f63c4fbeccap
92 0x7f63c4e5933ap PyObject_Call + 106
93 0x7f63c4f454c5p PyEval_EvalFrameEx + 17365
94 0x7f63c4f4b4b6p
95 0x7f63c4f4b5a8p PyEval_EvalCodeEx + 72
96 0x7f63c4e8ab56p
97 0x7f63c4e5933ap PyObject_Call + 106
98 0x7f63c4f436eep PyEval_EvalFrameEx + 9726
99 0x7f63c4f491d0p PyEval_EvalFrameEx + 32992
是原理上batch_norm层就不能这么用吗?
0
收藏
请登录后评论