Fine-tuning with Matlab interface

139 views
Skip to first unread message

Giulia

unread,
Feb 1, 2016, 5:31:28 AM2/1/16
to Caffe Users
Hi,

I know that there has been a similar question here, however I'm asking this again because (i) I cannot find it in the doc and (ii) following the suggestion of the other question does not help (weird).

At present indeed I am doing like this:

    solver = caffe.Solver('solver.prototxt');
    solver.net.copy_from('pretrained_weights.caffemodel');
    solver.solve();

as suggested by +RongHang Hu. But I get this error in Matlab:

    Unexpected unknown exception from MEX file..

    Error in caffe.Solver/solve (line 48)
          caffe_('solver_solve', self.hSolver_self);

just after the first epoch. This is the final part of the log:

I0201 11:21:19.272511  6866 solver.cpp:60] Solver scaffolding done.
I0201 11:21:26.428371  6866 upgrade_proto.cpp:42] Attempting to upgrade input file specified using deprecated transformation parameters: /usr/local/src/robot/caffe/models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel
I0201 11:21:26.428429  6866 upgrade_proto.cpp:45] Successfully upgraded file specified using deprecated data transformation parameters.
W0201 11:21:26.428438  6866 upgrade_proto.cpp:47] Note that future Caffe releases will only support transform_param messages for transformation fields.
I0201 11:21:26.428447  6866 upgrade_proto.cpp:51] Attempting to upgrade input file specified using deprecated V1LayerParameter: /usr/local/src/robot/caffe/models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel
I0201 11:21:26.677443  6866 upgrade_proto.cpp:59] Successfully upgraded file specified using deprecated V1LayerParameter
I0201 11:21:26.722932  6866 net.cpp:816] Ignoring source layer fc8
I0201 11:21:35.611618  6866 solver.cpp:288] Solving CaffeNet_iCub
I0201 11:21:35.611695  6866 solver.cpp:289] Learning Rate Policy: step
I0201 11:21:35.616921  6866 solver.cpp:341] Iteration 0, Testing net (#0)
I0201 11:21:38.498411  6866 solver.cpp:409]     Test net output #0: accuracy = 0.0266335
I0201 11:21:38.498478  6866 solver.cpp:409]     Test net output #1: loss = 2.98636 (* 1 = 2.98636 loss)
I0201 11:21:38.760423  6866 solver.cpp:237] Iteration 0, loss = 3.31503
I0201 11:21:38.760511  6866 solver.cpp:253]     Train net output #0: loss = 3.31503 (* 1 = 3.31503 loss)
I0201 11:21:38.760536  6866 sgd_solver.cpp:106] Iteration 0, lr = 0.001
I0201 11:22:40.619526  6866 solver.cpp:459] Snapshotting to binary proto file snap_iter_70.caffemodel
I0201 11:22:42.147881  6866 sgd_solver.cpp:269] Snapshotting solver state to binary proto file snap_iter_70.solverstate
I0201 11:22:42.410642  6866 solver.cpp:341] Iteration 70, Testing net (#0)
I0201 11:22:43.666445  6866 blocking_queue.cpp:50] Data layer prefetch queue empty


^C

I type Ctrl-C because the command line hangs.

Of course the same fine-tuning from command line works fine. Since every time I get the error I have to re-run Matlab, without any clue on the error, I think I'll opt for a system call from Matlab to the `caffe train` command line tool.

Do you think this is the right way of doing this?

Thanks
Giulia 
Reply all
Reply to author
Forward
0 new messages