from transformers import BertModel, BertTokenizer, BertConfig
import torch enc = BertTokenizer.from_pretrained("bert-base-uncased") # 输入文本tokenize
text = "[CLS] Who was Jim Henson ? [SEP] Jim Henson was a puppeteer [SEP]"
tokenized_text = enc.tokenize(text) # 将一个token置为mask
masked_index = 8
tokenized_text[masked_index] = '[MASK]'
indexed_tokens = enc.convert_tokens_to_ids(tokenized_text)
segments_ids = [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1] # 创建虚拟输入
tokens_tensor = torch.tensor([indexed_tokens])
segments_tensors = torch.tensor([segments_ids])
dummy_input = [tokens_tensor, segments_tensors] # 初始化模型时将torchscript参数置为True
config = BertConfig(vocab_size_or_config_json_file=32000, hidden_size=768,
num_hidden_layers=12, num_attention_heads=12, intermediate_size=3072, torchscript=True) # 初始化模型
model = BertModel(config) # 模型置为eval模式
model.eval() # 也可以从pretrained初始化模型
model = BertModel.from_pretrained("bert-base-uncased", torchscript=True) # 创建trace
traced_model = torch.jit.trace(model, [tokens_tensor, segments_tensors])
torch.jit.save(traced_model, "traced_bert.pt") # 加载模型
loaded_model = torch.jit.load("traced_model.pt")
loaded_model.eval() all_encoder_layers, pooled_output = loaded_model(dummy_input) # 使用traced model进行推理
traced_model(tokens_tensor, segments_tensors)

最新文章

  1. 教你9个提升 Wordpress 网站安全性的方法
  2. typedef 与指针、多维数组
  3. QT QDateTime类、QTimer类
  4. PHP如何释放内存之unset销毁变量并释放内存详解
  5. SVN迁移到Git的过程(+ 一些技巧
  6. 针对 SQL Server 2008 在Windows Server 2008上的访问配置 Windows 防火墙
  7. 从0开始学Java——JSP&Servlet——如何在Eclipse中配置Web容器为tomcat
  8. ActionBarCompat
  9. android147 360 程序锁fragment
  10. Spring在代码中获取bean的几种方式(转:http://www.dexcoder.com/selfly/article/326)
  11. SVProgressHUD的使用
  12. smartforms换页,
  13. 从头开始学JavaScript (十二)——Array类型
  14. (转)java提高篇(四)-----理解java的三大特性之多态
  15. Beta版本冲刺前期计划及安排
  16. 四、Jedis操作Redis
  17. vim 学习笔记系列(前言)
  18. MyBatis-parameterType 取出入参值
  19. C#中Post请求的两种方式发送参数链和Body的
  20. Docker学习笔记之Docker的Build 原理

热门文章

  1. SQL练习——LeetCode解题和总结(1)
  2. Linux入门视频笔记四(vim入门)
  3. 《逆向工程核心原理》——通过调试方式hook Api
  4. Net Core 重要的技术点
  5. 优化 ASP.NET Core Docker 镜像的大小
  6. python基础(补充):lambda匿名函数,用了的,都说好!
  7. Vue学习笔记(三)
  8. JFX11+IDEA跨平台打包发布的完美解决办法
  9. Go-30-main包
  10. 浅入Kubernetes(10):控制节点的部署,选择器、亲和性、污点