bert-base-chinese模型离线使用案例

import torch
import torch.nn as nn
from transformers import BertModel, BertTokenizer

# 通过torch.hub(pytorch中专注于迁移学的工具)获得已经训练好的bert-base-chinese模型
# model =  torch.hub.load('huggingface/pytorch-transformers', 'model', 'bert-base-chinese')
model = BertModel.from_pretrained('D:\\MyPython\\data\\bert-base-chinese')

# 获得对应的字符映射器, 它将把中文的每个字映射成一个数字
# tokenizer = torch.hub.load('huggingface/pytorch-transformers', 'tokenizer', 'bert-base-chinese')
tokenizer = BertTokenizer.from_pretrained('D:\\MyPython\\data\\bert-base-chinese')

def get_bert_encode_for_single(text):
    """
    description: 使用bert-chinese编码中文文本
    :param text: 要进行编码的文本
    :return: 使用bert编码后的文本张量表示
    """
    # 首先使用字符映射器对每个汉字进行映射
    # 这里需要注意, bert的tokenizer映射后会为结果前后添加开始和结束标记即101和102
    # 这对于多段文本的编码是有意义的, 但在我们这里没有意义, 因此使用[1:-1]对头和尾进行切片
    indexed_tokens = tokenizer.encode(text)[1:-1]
    # 之后将列表结构转化为tensor
    tokens_tensor = torch.tensor([indexed_tokens])
    print(tokens_tensor)
    # 使模型不自动计算梯度
    with torch.no_grad():
        # 调用模型获得隐层输出
        encoded_layers, _ = model(tokens_tensor)
    # 输出的隐层是一个三维张量, 最外层一维是1, 我们使用[0]降去它.
    # print(encoded_layers.shape)
    encoded_layers = encoded_layers[0]
    return encoded_layers

text = "你好, 周杰伦"
outputs = get_bert_encode_for_single(text)
print(outputs)
print(outputs.shape)

在这里插入图片描述

说明:
1,将bert-base-chinese压缩包解压;
2,将pytorch_model.bin文件重命名为model.bin;
3,路径:
Windows系统路径示例:

model =BertModel.from_pretrained(‘D:\MyPython\data\bert-base-chinese’)
tokenizer =BertTokenizer.from_pretrained(‘D:\MyPython\data\bert-base-chinese’)

Linux系统路径示例:

model =BertModel.from_pretrained(‘/opt/nlp/bert-base-chinese’)
tokenizer =BertTokenizer.from_pretrained(‘/opt/nlp/bert-base-chinese’)

相关推荐

  1. 使用 bert-base-chinese-ner 模型实现中文NER

    2024-07-10 01:28:33       29 阅读
  2. Bert中文预训练模型Bert-base-chinese

    2024-07-10 01:28:33       24 阅读
  3. SAM中线使用bert-base-uncased的方法

    2024-07-10 01:28:33       40 阅读
  4. bert_base_chinese入门

    2024-07-10 01:28:33       39 阅读
  5. huggingface实战bert-base-chinese模型(训练+预测)

    2024-07-10 01:28:33       50 阅读
  6. bert-base-chinese另外的加载方法.txt

    2024-07-10 01:28:33       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 01:28:33       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 01:28:33       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 01:28:33       57 阅读
  4. Python语言-面向对象

    2024-07-10 01:28:33       68 阅读

热门阅读

  1. ARM汇编的基础语法

    2024-07-10 01:28:33       23 阅读
  2. postman

    postman

    2024-07-10 01:28:33      20 阅读
  3. Redis

    Redis

    2024-07-10 01:28:33      20 阅读
  4. [Linux安全运维] Linux命令相关

    2024-07-10 01:28:33       26 阅读
  5. PCL 点云最小外接球形包围盒

    2024-07-10 01:28:33       20 阅读
  6. Pytest单元测试系列[v1.0.0][高级技巧]

    2024-07-10 01:28:33       19 阅读
  7. CLIP-EBC:通过增强的逐块分类,CLIP能够准确计数

    2024-07-10 01:28:33       24 阅读
  8. #pragma 指令

    2024-07-10 01:28:33       24 阅读
  9. C++休眠的方法

    2024-07-10 01:28:33       24 阅读
  10. Spring容器加载Bean和JVM加载类

    2024-07-10 01:28:33       21 阅读
  11. word 使用手册

    2024-07-10 01:28:33       30 阅读
  12. winform4

    winform4

    2024-07-10 01:28:33      25 阅读