dataloader 莫名报错
paddlepaddle吧
全部回复
仅看楼主
level 5
ValueError: Feed a list of tensor, the list should be the same size as places
import paddle
from paddle import fluid
import numpy as np
def reader_creater(type="train"):
def reader():
for i in range(10):
yield np.ones(2)*i,np.ones(2)*i
return reader
train_reader=reader_creater()
train_reader=paddle.batch(train_reader,2)
# train_reader=paddle.reader.shuffle(train_reader,3)
train_program=fluid.Program()
init_program=fluid.Program()
with fluid.program_guard(train_program,init_program):
x=fluid.layers.data(name='x',shape=[2],dtype='float64')
y=fluid.layers.data(name='y',shape=[2],dtype='float64')
train_loader=fluid.io.DataLoader.from_generator(feed_list=[x,y],capacity=1,use_double_buffer=False,iterable=True)
prediction=fluid.layers.elementwise_add(x,y)
loss=fluid.layers.square_error_cost(y,prediction)
places=fluid.CPUPlace()
exe=fluid.Executor(places)
exe.run(init_program)
train_program=fluid.CompiledProgram(train_program).with_data_parallel(loss_name=loss.name)
train_loader.set_sample_list_generator(train_reader,places=places)
for data in train_loader():
print(data)
print(data[0]['x'])
pre=exe.run(train_program,feed=data ,fetch_list=[prediction])
input("pause")
看起来很简单的一段代码,跑的时候一直报这个错误
2020年01月26日 09点01分 1
level 5
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/executor.py:779: UserWarning: The following exception is not an EOF exception.
"The following exception is not an EOF exception.")
Traceback (most recent call last):
File "load.py", line 36, in <module>
pre=exe.run(train_program,feed=data ,fetch_list=[prediction])
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/executor.py", line 780, in run
six.reraise(*sys.exc_info())
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/six.py", line 693, in reraise
raise value
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/executor.py", line 775, in run
use_program_cache=use_program_cache)
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/executor.py", line 834, in _run_impl
return_numpy=return_numpy)
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/executor.py", line 648, in _run_parallel
"Feed a list of tensor, the list should be the same size as places"
ValueError: Feed a list of tensor, the list should be the same size as places
2020年01月26日 09点01分 2
level 5
最后发现是因为CPU_NUMBER是2,分到两个cpu的时候数据维度出现了问题
2020年01月28日 03点01分 3
楼主怎么解决的?
2020年06月26日 08点06分
level 1
赞一个
2020年03月02日 01点03分 4
1