PaddlePaddle / models

Officially maintained, supported by PaddlePaddle, including CV, NLP, Speech, Rec, TS, big models and so on.
Apache License 2.0
6.9k stars 2.91k forks source link

使用PaddleVideo中的AttentionCluster模型做infer时的几个问题 #2658

Open haokuan361 opened 5 years ago

haokuan361 commented 5 years ago

请教作者几个问题,感谢! 1.做视频分类时,我使用AttentionCluster模型做infer,结果保存在AttentionCluster_infer_result.pkl文件中,但是不明白里面的数字表示的含义,怎样得到所测视频的类别呢? 2.在paddlepaddle/paddle:latest-gpu-cuda9.0-cudnn7镜像制作的容器中运行infer.py.我将use_gpu设置为False时能正常运行,设置为True时报错如下:

[INFO: infer.py: 169]: Namespace(batch_size=1, config='configs/attention_cluster.txt', filelist='/data4/hk/docker-hk_paddle/models-master/PaddleCV/PaddleVideo/dataset/youtube8m/val.list', infer_topk=20, log_interval=1, model_name='AttentionCluster', save_dir='./save', use_gpu=True, weights=None) W0701 12:56:50.640410 4601 device_context.cc:259] Please NOTE: device: 0, CUDA Capability: 61, Driver API Version: 9.1, Runtime API Version: 9.0 W0701 12:56:50.645512 4601 device_context.cc:267] device: 0, cuDNN Version: 7.4. Traceback (most recent call last): File "infer.py", line 171, in infer(args) File "infer.py", line 118, in infer fluid.default_main_program(), place) File "/data4/hk/docker-hk_paddle/models-master/PaddleCV/PaddleVideo/models/model.py", line 139, in load_test_weights fluid.io.load_params(exe, weights, main_program=prog) File "/usr/local/lib/python2.7/dist-packages/paddle/fluid/io.py", line 707, in load_params filename=filename) File "/usr/local/lib/python2.7/dist-packages/paddle/fluid/io.py", line 620, in load_vars filename=filename) File "/usr/local/lib/python2.7/dist-packages/paddle/fluid/io.py", line 657, in load_vars executor.run(load_prog) File "/usr/local/lib/python2.7/dist-packages/paddle/fluid/executor.py", line 650, in run use_program_cache=use_program_cache) File "/usr/local/lib/python2.7/dist-packages/paddle/fluid/executor.py", line 748, in _run exe.run(program.desc, scope, 0, True, True, fetch_var_name) paddle.fluid.core_avx.EnforceNotMet: Invoke operator load error. Python Callstacks: File "/usr/local/lib/python2.7/dist-packages/paddle/fluid/framework.py", line 1766, in append_op attrs=kwargs.get("attrs", None)) File "/usr/local/lib/python2.7/dist-packages/paddle/fluid/io.py", line 642, in load_vars 'file_path': os.path.join(load_dirname, new_var.name) File "/usr/local/lib/python2.7/dist-packages/paddle/fluid/io.py", line 620, in load_vars filename=filename) File "/usr/local/lib/python2.7/dist-packages/paddle/fluid/io.py", line 707, in load_params filename=filename) File "/data4/hk/docker-hk_paddle/models-master/PaddleCV/PaddleVideo/models/model.py", line 139, in load_test_weights fluid.io.load_params(exe, weights, main_program=prog) File "infer.py", line 118, in infer fluid.default_main_program(), place) File "infer.py", line 171, in infer(args) C++ Callstacks: Enforce failed. Expected allocating <= available, but received allocating:10244597154 > available:711458560. Insufficient GPU memory to allocation. at [/paddle/paddle/fluid/platform/gpuinfo.cc:262] PaddlePaddle Call Stacks: 0 0x7fe869864b98p void paddle::platform::EnforceNotMet::Init(std::string, char const, int) + 360 1 0x7fe869864ee7p paddle::platform::EnforceNotMet::EnforceNotMet(std::string const&, char const, int) + 87 2 0x7fe86b8d7776p paddle::platform::GpuMaxChunkSize() + 630 3 0x7fe86b8aba0ap 4 0x7fe9a702ba99p 5 0x7fe86b8ab0adp paddle::memory::legacy::GetGPUBuddyAllocator(int) + 109 6 0x7fe86b8abef5p void* paddle::memory::legacy::Alloc(paddle::platform::CUDAPlace const&, unsigned long) + 37 7 0x7fe86b8ac495p paddle::memory::allocation::LegacyAllocator::AllocateImpl(unsigned long) + 421 8 0x7fe86b8a0555p paddle::memory::allocation::AllocatorFacade::Alloc(boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void> const&, unsigned long) + 181 9 0x7fe86b8a06dap paddle::memory::allocation::AllocatorFacade::AllocShared(boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void> const&, unsigned long) + 26 10 0x7fe86b4a76acp paddle::memory::AllocShared(boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void> const&, unsigned long) + 44 11 0x7fe86b872f84p paddle::framework::Tensor::mutabledata(boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void>, paddle::framework::proto::VarTypeType, unsigned long) + 148 12 0x7fe86b876624p paddle::framework::TensorCopy(paddle::framework::Tensor const&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void> const&, paddle::platform::DeviceContext const&, paddle::framework::Tensor) + 452 13 0x7fe86b87a21bp paddle::framework::TensorFromStream(std::istream&, paddle::framework::Tensor, paddle::platform::DeviceContext const&) + 699 14 0x7fe86b462fb0p paddle::framework::DeserializeFromStream(std::istream&, paddle::framework::LoDTensor, paddle::platform::DeviceContext const&) + 576 15 0x7fe86a32eb09p paddle::operators::LoadOpKernel<paddle::platform::CUDADeviceContext, float>::LoadLodTensor(std::istream&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void_> const&, paddle::framework::Variable, paddle::framework::ExecutionContext const&) const + 89 16 0x7fe86a32f030p paddle::operators::LoadOpKernel<paddle::platform::CUDADeviceContext, float>::Compute(paddle::framework::ExecutionContext const&) const + 432 17 0x7fe86a32f3f3p std::_Function_handler<void (paddle::framework::ExecutionContext const&), paddle::framework::OpKernelRegistrarFunctor<paddle::platform::CUDAPlace, false, 0ul, paddle::operators::LoadOpKernel<paddle::platform::CUDADeviceContext, float>, paddle::operators::LoadOpKernel<paddle::platform::CUDADeviceContext, double>, paddle::operators::LoadOpKernel<paddle::platform::CUDADeviceContext, int>, paddle::operators::LoadOpKernel<paddle::platform::CUDADeviceContext, signed char>, paddle::operators::LoadOpKernel<paddle::platform::CUDADeviceContext, long> >::operator()(char const, char const, int) const::{lambda(paddle::framework::ExecutionContext const&)#1}>::_M_invoke(std::_Anydata const&, paddle::framework::ExecutionContext const&) + 35 18 0x7fe86b81d8c7p paddle::framework::OperatorWithKernel::RunImpl(paddle::framework::Scope const&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void> const&, paddle::framework::RuntimeContext) const + 375 19 0x7fe86b81dca1p paddle::framework::OperatorWithKernel::RunImpl(paddle::framework::Scope const&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void> const&) const + 529 20 0x7fe86b81b2acp paddle::framework::OperatorBase::Run(paddle::framework::Scope const&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void, boost::detail::variant::void> const&) + 332 21 0x7fe8699f125ep paddle::framework::Executor::RunPreparedContext(paddle::framework::ExecutorPrepareContext, paddle::framework::Scope, bool, bool, bool) + 382 22 0x7fe8699f432fp paddle::framework::Executor::Run(paddle::framework::ProgramDesc const&, paddle::framework::Scope, int, bool, bool, std::vector<std::string, std::allocator > const&, bool) + 143 23 0x7fe869855b3dp 24 0x7fe8698974a6p 25 0x4c5326p PyEval_EvalFrameEx + 37958 26 0x4b9b66p PyEval_EvalCodeEx + 774 27 0x4c1f56p PyEval_EvalFrameEx + 24694 28 0x4b9b66p PyEval_EvalCodeEx + 774 29 0x4c17c6p PyEval_EvalFrameEx + 22758 30 0x4b9b66p PyEval_EvalCodeEx + 774 31 0x4c17c6p PyEval_EvalFrameEx + 22758 32 0x4b9b66p PyEval_EvalCodeEx + 774 33 0x4c17c6p PyEval_EvalFrameEx + 22758 34 0x4b9b66p PyEval_EvalCodeEx + 774 35 0x4c17c6p PyEval_EvalFrameEx + 22758 36 0x4c141fp PyEval_EvalFrameEx + 21823 37 0x4c141fp PyEval_EvalFrameEx + 21823 38 0x4b9b66p PyEval_EvalCodeEx + 774 39 0x4eb69fp 40 0x4e58f2p PyRun_FileExFlags + 130 41 0x4e41a6p PyRun_SimpleFileExFlags + 390 42 0x4938cep Py_Main + 1358 43 0x7fe9a6c73830p __libc_start_main + 240 44 0x493299p _start + 41

shippingwang commented 5 years ago
  1. 麻烦pkl结果发一下
  2. 显存不够,看是不是被占用/调整下bs
haokuan361 commented 5 years ago

我的测试数据使用了youtube8m中的两个pkl文件,生成的pkl结果有点长,前100行如下: (lp1 (S'Xd2L' (lp2 F0.95115244388580322 aF0.951011061668396 aF0.91684919595718384 aF0.81684994697570801 aF0.7672392725944519 aF0.74662995338439941 aF0.63865840435028076 aF0.50132119655609131 aF0.026261042803525925 aF0.019499249756336212 aF0.014763141982257366 aF0.011197945103049278 aF0.0079709040001034737 aF0.0078201238065958023 aF0.0054084388539195061 aF0.0029368766117841005 aF0.0029241570737212896 aF0.0025747483596205711 aF0.00099747639615088701 aF0.00061598478350788355 a(lp3 I4 aI3 aI6 aI33 aI28 aI13 aI38 aI10 aI54 aI9 aI1295 aI188 aI2281 aI1058 aI585 aI257 aI1461 aI97 aI433 aI330 atp4 a(S'Ml2L' (lp5 F0.93406498432159424 aF0.10454446822404861 aF0.04303240031003952 aF0.040538456290960312 aF0.015640940517187119 aF0.0078189289197325706 aF0.0074144387617707253 aF0.007094177883118391 aF0.0065385745838284492 aF0.0059530977159738541 aF0.0056900870986282825 aF0.0055009983479976654 aF0.005117206834256649 aF0.0040298723615705967 aF0.0039192461408674717 aF0.0037422904279083014 aF0.0032599370460957289 aF0.0029647704213857651 aF0.0017160696443170309 aF0.001522166421636939 a(lp6 I26 aI453 aI194 aI16 aI1259 aI5 aI136 aI99 aI518 aI18 aI839 aI0 aI1367 aI857 aI15 aI3291 aI782 aI67 aI2456 aI140 atp7 a(S'rk2L' (lp8 F0.9794013500213623 aF0.94844615459442139 aF0.8664897084236145 aF0.86572951078414917 aF0.020861426368355751 aF0.012439234182238579 aF0.0081698028370738029 aF0.0036990598309785128 aF0.0024977254215627909 aF0.0011740336194634438 aF0.00081844930537045002 aF0.00077243515988811851 aF0.00073489744681864977 aF0.0007095946348272264 aF0.00062975380569696426 aF0.00054063787683844566 aF0.00051270902622491121 aF0.00049011775990948081 aF0.00045135041000321507 aF0.00037417511339299381

haokuan361 commented 5 years ago

我刚接触视频分类,想用PaddleVideo项目尝试一下。我首先通过infer来看分类效果,目前的实现是输入带标签的pkl,输出也是pkl,无法将视频与标签一一对应从而直观的看效果。对于用模型infer的代码,我的理解是应该输入不带标签的视频,输出此视频的分类结果,这样比较直观。请教如何实现输入输出的格式转换?

SunGaofeng commented 5 years ago

1、目前输出的pkl结果是这样的: [(视频id,top20预测概率,top20对应的标签编号),...] 这样子确实看上去不直观,后续我们会修改下infer部分的代码,直接将预测的类别输出来。 2、GPU inference报错的问题,看错误提示信息是显存不够,按我们的经验,attention cluster占显存是比较小的,您能看下显卡的具体型号吗,或者看下是不是有其他任务占用显存了?

wangs311 commented 5 years ago

您好 请问您已经顺利将youtube-8m数据集转化为pickle格式了吗?我在使用tf2pkl.py进行转换时,报了如下错误:

Errors may have originated from an input operation. Input Source operations connected to node ParseSingleSequenceExample/ParseSingleSequenceExample: ReaderReadV2 (defined at tf2pkl.py:164) Original stack trace for u'ParseSingleSequenceExample/ParseSingleSequenceExample': File "tf2pkl.py", line 278, in <module> main(record_path) File "tf2pkl.py", line 227, in main vals = reader.prepare_reader(filename_queue) File "tf2pkl.py", line 175, in prepare_reader for feature_name in self.feature_names File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/parsing_ops.py", line 1606, in parse_single_sequence_example feature_list_dense_defaults, example_name, name) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/parsing_ops.py", line 1802, in _parse_single_sequence_example_raw name=name) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_parsing_ops.py", line 1468, in parse_single_sequence_example name=name) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/op_def_library.py", line 788, in _apply_op_helper op_def=op_def) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/util/deprecation.py", line 507, in new_func return func(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 3616, in create_op op_def=op_def) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2005, in __init__ self._traceback = tf_stack.extract_stack()

想问下tf2pkl.py对环境版本有要求吗?