diff --git a/src/caffe/proto/caffe.proto b/src/caffe/proto/caffe.proto index 9a00e9f62be..f5c069fa0fc 100644 --- a/src/caffe/proto/caffe.proto +++ b/src/caffe/proto/caffe.proto @@ -96,7 +96,7 @@ message NetParameter { // NOTE // Update the next available ID when you add a new SolverParameter field. // -// SolverParameter next available ID: 37 (last added: iter_size) +// SolverParameter next available ID: 38 (last added: trained_layers) message SolverParameter { ////////////////////////////////////////////////////////////////////////////// // Specifying the train and test networks @@ -115,6 +115,7 @@ message SolverParameter { // Proto filename for the train net, possibly combined with one or more // test nets. optional string net = 24; + optional string trained_layers = 37; // Inline train net param, possibly combined with one or more test nets. optional NetParameter net_param = 25; diff --git a/src/caffe/solver.cpp b/src/caffe/solver.cpp index aabe0edec80..92a4ec045f8 100644 --- a/src/caffe/solver.cpp +++ b/src/caffe/solver.cpp @@ -80,6 +80,10 @@ void Solver::InitTrainNet() { net_state.MergeFrom(param_.train_state()); net_param.mutable_state()->CopyFrom(net_state); net_.reset(new Net(net_param)); + + if (param_.has_trained_layers()) { + net_->CopyTrainedLayersFrom(param_.trained_layers()); + } } template