caffe data_transformer.cpp 函数中的一个小问题

在训练情况下,测试的时候,因为phase变量没有及时更新。

导致在test的情况下出错。。。

直接更新下  this->phase_ = Caffe::phase();就好了。


//  LOG(INFO) << "MODEL:" << Caffe::phase();

//  LOG(INFO) << "phase:" << phase_;
  this->phase_ = Caffe::phase();
  if (crop_size) {
    CHECK(data.size()) << "Image cropping only support uint8 data";
    int h_off, w_off;
    // We only do random crop when we do training.
    //LOG(INFO) << "MODEL:" << phase_;
    if (phase_ == Caffe::TRAIN) {
//    if (Caffe::phase() == 0) {
//      LOG(INFO) <<"TrainING MODEL!";
      h_off = Rand() % (height - crop_size);
      w_off = Rand() % (width - crop_size);
    } else {
//      LOG(INFO) <<"TESTING MODEL!";
      h_off = (height - crop_size) / 2;
      w_off = (width - crop_size) / 2;

    }



请教了高人。可能这么修改不太合适。。

来个正确的。。

在solver.cpp中,填加了两句来着,修改如下:

void Solver<Dtype>::Init(const SolverParameter& param) {
 32   LOG(INFO) << "Initializing solver from parameters: " << std::endl
 33             << param.DebugString();
 34   param_ = param;
 35   if (param_.random_seed() >= 0) {
 36     Caffe::set_random_seed(param_.random_seed());
 37   }
 38   // Scaffolding code
 39   Caffe::set_phase(Caffe::TRAIN);
 40   InitTrainNet();
 41   Caffe::set_phase(Caffe::TEST);
 42   InitTestNets();
 43   LOG(INFO) << "Solver scaffolding done.";
 44 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值