Skip to content

Commit 4d9b5d1

Browse files
committed
Merge BVLC#2072 and fix conflict
2 parents 6eeb282 + 4a4118f commit 4d9b5d1

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/caffe/solver.cpp

+8-5
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ void Solver<Dtype>::Step(int iters) {
167167
vector<Dtype> losses;
168168
Dtype smoothed_loss = 0;
169169

170-
for (; iter_ < stop_iter; ++iter_) {
170+
while (iter_ < stop_iter) {
171171
// zero-init the params
172172
for (int i = 0; i < net_->params().size(); ++i) {
173173
shared_ptr<Blob<Dtype> > blob = net_->params()[i];
@@ -235,8 +235,12 @@ void Solver<Dtype>::Step(int iters) {
235235
ComputeUpdateValue();
236236
net_->Update();
237237

238+
// Increment the internal iter_ counter -- its value should always indicate
239+
// the number of times the weights have been updated.
240+
++iter_;
241+
238242
// Save a snapshot if needed.
239-
if (param_.snapshot() && (iter_ + 1) % param_.snapshot() == 0) {
243+
if (param_.snapshot() && iter_ % param_.snapshot() == 0) {
240244
Snapshot();
241245
}
242246
}
@@ -448,15 +452,14 @@ void Solver<Dtype>::Snapshot() {
448452
string model_filename, snapshot_filename;
449453
const int kBufferSize = 20;
450454
char iter_str_buffer[kBufferSize];
451-
// Add one to iter_ to get the number of iterations that have completed.
452-
snprintf(iter_str_buffer, kBufferSize, "_iter_%d", iter_ + 1);
455+
snprintf(iter_str_buffer, kBufferSize, "_iter_%d", iter_);
453456
filename += iter_str_buffer;
454457
model_filename = filename + ".caffemodel";
455458
LOG(INFO) << "Snapshotting to " << model_filename;
456459
WriteProtoToBinaryFile(net_param, model_filename.c_str());
457460
SolverState state;
458461
SnapshotSolverState(&state);
459-
state.set_iter(iter_ + 1);
462+
state.set_iter(iter_);
460463
state.set_learned_net(model_filename);
461464
state.set_current_step(current_step_);
462465
snapshot_filename = filename + ".solverstate";

0 commit comments

Comments
 (0)