动态图报错paddle.fluid.core_avx.EnforceNotMet: holder_ should not be null
Created by: Banmahhhh
- 版本、环境信息: 1)PaddlePaddle版本:paddlepaddle1.5.1 2)CPU:2.7 GHz Intel Core i5 3)系统环境:Mac OS 10.14,Python3.6.9
- 代码:
act_prob = self.model(obs)
action = fluid.dygraph.to_variable(action)
reward = fluid.dygraph.to_variable(reward)
log_prob = layers.cross_entropy(act_prob, action)
cost = log_prob * reward
cost = layers.cast(cost, dtype='float32')
cost = layers.reduce_mean(cost)
cost.backward()
self.optimizer.minimize(cost)
self.model.clear_gradients()
- error message:
File "policy_gradient.py", line 28, in learn
self.optimizer.minimize(cost)
File "</anaconda3/envs/*****/lib/python3.6/site-packages/decorator.py:decorator-gen-20>", line 2, in minimize
File "/anaconda3/envs/*****/lib/python3.6/site-packages/paddle/fluid/wrapped_decorator.py", line 25, in __impl__
return wrapped_func(*args, **kwargs)
File "/anaconda3/envs/*****/lib/python3.6/site-packages/paddle/fluid/dygraph/base.py", line 87, in __impl__
return func(*args, **kwargs)
File "/anaconda3/envs/*****/lib/python3.6/site-packages/paddle/fluid/optimizer.py", line 601, in minimize
loss, startup_program=startup_program, params_grads=params_grads)
File "/anaconda3/envs/*****/lib/python3.6/site-packages/paddle/fluid/optimizer.py", line 558, in apply_optimize
optimize_ops = self._create_optimization_pass(params_grads)
File "/anaconda3/envs/*****/lib/python3.6/site-packages/paddle/fluid/optimizer.py", line 376, in _create_optimization_pass
param_and_grad)
File "/anaconda3/envs/*****/lib/python3.6/site-packages/paddle/fluid/optimizer.py", line 1383, in _append_optimize_op
stop_gradient=True)
File "/anaconda3/envs/*****/lib/python3.6/site-packages/paddle/fluid/framework.py", line 1762, in append_op
kwargs.get("stop_gradient", False))
File "/anaconda3/envs/*****/lib/python3.6/site-packages/paddle/fluid/dygraph/tracer.py", line 59, in trace_op
framework._current_expected_place(), stop_gradient)
paddle.fluid.core_avx.EnforceNotMet: holder_ should not be null