简单网络fluid版本,exe.run训练报错
收藏
def reader():
def reader_creator():
for x in range(1024):
x = x
y = x*x
yield float(x),float(y)
return reader_creator
train_reader = paddle.batch(reader(),batch_size=1)
data = fluid.layers.data(name='data',shape=[1],dtype='float32')
hid = fluid.layers.fc(input=data, size=2, act='relu')
output = fluid.layers.fc(input=hid, size=1, act='relu')
label = fluid.layers.data(name='label',shape=[1],dtype='float32')
cost = fluid.layers.square_error_cost(input=output,label=label)
avg_cost = fluid.layers.mean(cost)
optimizer = fluid.optimizer.AdamOptimizer(learning_rate=0.001)
opts = optimizer.minimize(avg_cost)
place = fluid.CPUPlace()
feeder = fluid.DataFeeder(place=place, feed_list=['data', 'label'])
exe = fluid.Executor(place)
for pass_id in range(1000):
for batch_id,data in enumerate(train_reader()):
print data
loss = exe.run(fluid.default_main_program(),
feed=feeder.feed(data),
fetch_list=[avg_cost])
print("Pass {0},Loss {1}".format(pass_id,loss))
写了一个简单的PaddlePaddle的Fluid版本程序,想用循环run去训练网络,但是出现以下错误:
---------------------------------------------------------------------------
EnforceNotMet Traceback (most recent call last)
in ()
29 loss = exe.run(fluid.default_main_program(),
30 feed=feeder.feed(data),
---> 31 fetch_list=[avg_cost])
32 print("Pass {0},Loss {1}".format(pass_id,loss))
/home/dzqiu/anaconda2/lib/python2.7/site-packages/paddle/fluid/executor.pyc in run(self, program, feed, fetch_list, feed_var_name, fetch_var_name, scope, return_numpy, use_program_cache)
441
442 self._feed_data(program, feed, feed_var_name, scope)
--> 443 self.executor.run(program.desc, scope, 0, True, True)
444 outs = self._fetch_data(fetch_list, fetch_var_name, scope)
445 if return_numpy:
EnforceNotMet: enforce y_dims.size() > y_num_col_dims failed, 1 <= 1
The input tensor Y's rank of MulOp should be larger than y_num_col_dims. at [/paddle/paddle/fluid/operators/mul_op.cc:52]
PaddlePaddle Call Stacks:
0 0x7f3db10d7736p paddle::platform::EnforceNotMet::EnforceNotMet(std::__exception_ptr::exception_ptr, char const*, int) + 486
1 0x7f3db16da696p paddle::operators::MulOp::InferShape(paddle::framework::InferShapeContext*) const + 2774
2 0x7f3db1f0ef7bp paddle::framework::OperatorWithKernel::RunImpl(paddle::framework::Scope const&, boost::variant const&) const + 91
3 0x7f3db1f0c6edp paddle::framework::OperatorBase::Run(paddle::framework::Scope const&, boost::variant const&) + 205
4 0x7f3db11734afp paddle::framework::Executor::RunPreparedContext(paddle::framework::ExecutorPrepareContext*, paddle::framework::Scope*, bool, bool, bool) + 255
5 0x7f3db1174500p paddle::framework::Executor::Run(paddle::framework::ProgramDesc const&, paddle::framework::Scope*, int, bool, bool) + 128
望大家指出错误,谢谢
0
收藏
请登录后评论
你好,你忘记初始化weight了。
...
exe = fluid.Executor(place)
加上这句: exe.run(fluid.default_startup_program())
for pass_id in range(1000):
...