1. tokenizer.encode() 方法 与 tokenizer.tokenize() 之间的区别:
(1) tokenizer.encode() 返回其在字典中的id
(2) tokenizer.tokenize() 返回 token
def bert_():
model_name = 'bert-base-chinese'
MODEL_PATH = 'F:/models/bert-base-chinese/'
# a.通过词典导入分词器
tokenizer = BertTokenizer.from_pretrained(model_name)
# b. 导入配置文件
model_config = BertConfig.from_pretrained(model_name)
# 修改配置
model_config.output_hidden_states = True
model_config.output_attentions = True
# 通过配置和路径导入模型
bert_model = BertModel.from_pretrained(MODEL_PATH, config=model_config)
# tokenizer.encode()
sen_code_encode = tokenizer.encode("自然语")
print("sen_code_encode",sen_code)
# tokenizer.tokenize
sen_code_tokenizer = tokenizer.tokenize("自然语")
print("sen_code_tokenizer", sen_code0)
if __name__ == '__main__':
bert_()
# 结果输出:
sen_code_encode [101, 5632, 4197, 6427, 102]
sen_code_tokenizer ['自', '然', '语']
2. tensorflow 2.0 保存方式
(1) .pb 的格式, 存模型参数和网络结构,还有模型计算过程,可以直接部署到服务器,不需要依赖原始代码。pb 格式文件是一种freeze_graph, 它的目的是就是将模型固化,具体说就是将训练数据和模型固化成pb文件。
(2) .ckpt的格式, 保存全部的模型参数包括网络的和优化器的,恢复的时候,需要定义下网络结构