def __init__( self, model_name='densenet-lite-gru', model_epoch=None, cand_alphabet=None, root=data_dir(), context='cpu', name=None, ): self._args = (model_name, model_epoch, cand_alphabet, root, context, name) self._model_loaded = False
def init( self, model_name='densenet-lite-gru', model_epoch=None, cand_alphabet=None, root=data_dir(), context='cpu', name=None, ): """ :param model_name: 模型名称 :param model_epoch: 模型迭代次数 :param cand_alphabet: 待识别字符所在的候选集合。默认为 `None`,表示不限定识别字符范围 :param root: 模型文件所在的根目录。 Linux/Mac下默认值为 `~/.cnocr`,表示模型文件所处文件夹类似 `~/.cnocr/1.1.0/conv-lite-fc-0027`。 Windows下默认值为 ``。 :param context: 'cpu', or 'gpu'。表明预测时是使用CPU还是GPU。默认为CPU。 :param name: 正在初始化的这个实例名称。如果需要同时初始化多个实例,需要为不同的实例指定不同的名称。 """ check_model_name(model_name) self._model_name = model_name self._model_file_prefix = '{}-{}'.format(self.MODEL_FILE_PREFIX, model_name) self._model_epoch = model_epoch self._model_dir = root # Change folder structure. self._assert_and_prepare_model_files() self._alphabet, self._inv_alph_dict = read_charset( os.path.join(self._model_dir, 'label_cn.txt')) self._cand_alph_idx = None # Alphabet will be set before calling ocr. # self.set_cand_alphabet(cand_alphabet) self._hp = Hyperparams() self._hp._loss_type = None # infer mode self._hp._num_classes = len(self._alphabet) # 传入''的话,也改成传入None self._net_prefix = None if name == '' else name self._mod = self._get_module(AlOcr.CNOCR_CONTEXT)