예제 #1
0
def load_model(path):
    package = torch.load(path, map_location=lambda storage, loc: storage)
    if package['name'] == 'deepspeech':
        from deepspeech.model import DeepSpeech
        model = DeepSpeech(package['model_conf'], package['audio_conf'],
                           package['labels'])
    else:
        raise NotImplementedError

    model.load_state_dict(package['state_dict'])
    return model, package
    def __init__(self,
                 continue_from=None,
                 sample_rate=None,
                 window_size=None,
                 window_stride=None,
                 window=None,
                 noise_dir=None,
                 noise_prob=None,
                 noise_min=None,
                 noise_max=None,
                 labels_path=None,
                 hidden_size=None,
                 hidden_layers=None,
                 bidirectional=None,
                 rnn_type=None):
        if continue_from:  # Starting from previous model
            print("Loading checkpoint model %s" % continue_from)
            package = torch.load(continue_from,
                                 map_location=lambda storage, loc: storage)
            model = DeepSpeech.load_model_package(package)
        else:
            with open(labels_path) as label_file:
                labels = str(''.join(json.load(label_file)))

            audio_conf = dict(sample_rate=sample_rate,
                              window_size=window_size,
                              window_stride=window_stride,
                              window=window,
                              noise_dir=noise_dir,
                              noise_prob=noise_prob,
                              noise_levels=(noise_min, noise_max))

            rnn_type = rnn_type.lower()
            assert rnn_type in supported_rnns, "rnn_type should be either lstm, rnn or gru"
            model = DeepSpeech(rnn_hidden_size=hidden_size,
                               nb_layers=hidden_layers,
                               labels=labels,
                               rnn_type=supported_rnns[rnn_type],
                               audio_conf=audio_conf,
                               bidirectional=bidirectional)
        self._model = model