diff --git a/paddle/gserver/dataproviders/DataProvider.h b/paddle/gserver/dataproviders/DataProvider.h index 8b7fb27f821a47d830413eced79b3352a6969c90..8247693822a2bdcda9d98029f45ab6224de168fe 100644 --- a/paddle/gserver/dataproviders/DataProvider.h +++ b/paddle/gserver/dataproviders/DataProvider.h @@ -271,7 +271,9 @@ public: void finishAsyncLoad() { stopping_ = true; taskReadySem_.post(); - asyncLoader_->join(); + if (asyncLoader_) { + asyncLoader_->join(); + } } void setPending(bool pending) { pending_ = pending; } diff --git a/paddle/trainer/Trainer.cpp b/paddle/trainer/Trainer.cpp index 8a5162912e5feae9b80ab8fff56bb20e4dac1696..a361386b90235162f5e1c4e5936d384dde33b455 100644 --- a/paddle/trainer/Trainer.cpp +++ b/paddle/trainer/Trainer.cpp @@ -205,7 +205,7 @@ void Trainer::init(const std::shared_ptr& config, (!IGradientMachineMode::dataMustInCpu(mode_, FLAGS_trainer_count)); dataProvider_ = dataProvider; - if (!dataProvider_ && config_->hasDataConfig()) { + if (!dataProvider_ && config_->hasDataConfig() && !testing_) { dataProvider_.reset(DataProvider::create(*config_, *config_, gpuData)); } if (!testDataProvider_) {