caffe

Форк
0
/
Solver.m 
59 строк · 1.8 Кб
1
classdef Solver < handle
2
  % Wrapper class of caffe::SGDSolver in matlab
3
  
4
  properties (Access = private)
5
    hSolver_self
6
    attributes
7
    % attribute fields
8
    %     hNet_net
9
    %     hNet_test_nets
10
  end
11
  properties (SetAccess = private)
12
    net
13
    test_nets
14
  end
15
  
16
  methods
17
    function self = Solver(varargin)
18
      % decide whether to construct a solver from solver_file or handle
19
      if ~(nargin == 1 && isstruct(varargin{1}))
20
        % construct a solver from solver_file
21
        self = caffe.get_solver(varargin{:});
22
        return
23
      end
24
      % construct a solver from handle
25
      hSolver_solver = varargin{1};
26
      CHECK(is_valid_handle(hSolver_solver), 'invalid Solver handle');
27
      
28
      % setup self handle and attributes
29
      self.hSolver_self = hSolver_solver;
30
      self.attributes = caffe_('solver_get_attr', self.hSolver_self);
31
      
32
      % setup net and test_nets
33
      self.net = caffe.Net(self.attributes.hNet_net);
34
      self.test_nets = caffe.Net.empty();
35
      for n = 1:length(self.attributes.hNet_test_nets)
36
        self.test_nets(n) = caffe.Net(self.attributes.hNet_test_nets(n));
37
      end
38
    end
39
    function delete (self)
40
      caffe_('delete_solver', self.hSolver_self);
41
    end
42
    function iter = iter(self)
43
      iter = caffe_('solver_get_iter', self.hSolver_self);
44
    end
45
    function restore(self, snapshot_filename)
46
      CHECK(ischar(snapshot_filename), 'snapshot_filename must be a string');
47
      CHECK_FILE_EXIST(snapshot_filename);
48
      caffe_('solver_restore', self.hSolver_self, snapshot_filename);
49
    end
50
    function solve(self)
51
      caffe_('solver_solve', self.hSolver_self);
52
    end
53
    function step(self, iters)
54
      CHECK(isscalar(iters) && iters > 0, 'iters must be positive integer');
55
      iters = double(iters);
56
      caffe_('solver_step', self.hSolver_self, iters);
57
    end
58
  end
59
end
60

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.