paddle.io.DataLoader中的参数dataset返回值类型只支持Tensor和numpy数据吗?
Created by: Talon330
自定义dataset返回值为字典,数值,列表均会报错,但是支持numpy数组和Tensor,是目前只支持这两种数据类型吗?如果是的话,以后会扩展支持其他类型吗?报错内容如下:
100-WARNING: DataLoader reader thread raised an exception.
Exception in thread Thread-1:
Traceback (most recent call last):
File "/home/olo/programfile/anaconda3/envs/paddle/lib/python3.7/threading.py", line 926, in _bootstrap_inner
self.run()
File "/home/olo/programfile/anaconda3/envs/paddle/lib/python3.7/threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "/home/olo/programfile/anaconda3/envs/paddle/lib/python3.7/site-packages/paddle/fluid/dataloader/dataloader_iter.py", line 304, in _thread_loop
six.reraise(*sys.exc_info())
File "/home/olo/programfile/anaconda3/envs/paddle/lib/python3.7/site-packages/six.py", line 693, in reraise
raise value
File "/home/olo/programfile/anaconda3/envs/paddle/lib/python3.7/site-packages/paddle/fluid/dataloader/dataloader_iter.py", line 288, in _thread_loop
tmp.set(slot, core.CPUPlace())
paddle.fluid.core_avx.EnforceNotMet:
--------------------------------------
C++ Traceback (most recent call last):
--------------------------------------
0 paddle::platform::EnforceNotMet::EnforceNotMet(paddle::platform::ErrorSummary const&, char const*, int)
1 paddle::platform::GetCurrentTraceBackString()
----------------------
Error Message Summary:
----------------------
InvalidArgumentError: Input object type error or incompatible array data type. tensor.set() supports array with bool, float16, float32, float64, int8, int16, int32, int64, uint8 or uint16, please check your input or input array data type. (at /paddle/paddle/fluid/pybind/tensor_py.h:277)
Traceback (most recent call last):
File "AAA.py", line 255, in <module>
for i, x in enumerate(dataloader):
File "/home/olo/programfile/anaconda3/envs/paddle/lib/python3.7/site-packages/paddle/fluid/dataloader/dataloader_iter.py", line 320, in __next__
return self._reader.read_next_var_list()
paddle.fluid.core_avx.EnforceNotMet:
--------------------------------------
C++ Traceback (most recent call last):
--------------------------------------
0 ThreadPool::ThreadPool(unsigned long)::{lambda()#1}::operator()() const
1 std::__future_base::_State_base::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&)
2 std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<unsigned long>, std::__future_base::_Result_base::_Deleter>, unsigned long> >::_M_invoke(std::_Any_data const&)
3 paddle::operators::reader::PyReader::ReadNext(std::vector<paddle::framework::LoDTensor, std::allocator<paddle::framework::LoDTensor> >*)
4 paddle::operators::reader::BlockingQueue<std::vector<paddle::framework::LoDTensor, std::allocator<paddle::framework::LoDTensor> > >::Receive(std::vector<paddle::framework::LoDTensor, std::allocator<paddle::framework::LoDTensor> >*)
5 paddle::platform::EnforceNotMet::EnforceNotMet(std::string const&, char const*, int)
6 paddle::platform::GetCurrentTraceBackString()
----------------------
Error Message Summary:
----------------------
FatalError: Blocking queue is killed because the data reader raises an exception.
[Hint: Expected killed_ != true, but received killed_:1 == true:1.] (at /paddle/paddle/fluid/operators/reader/blocking_queue.h:154)