pytorch-transformers:AttributeError: ‘str‘ object has no attribute ‘shape‘
transformers
huggingface/transformers: 是一个基于 Python 的自然语言处理库,它使用了 PostgreSQL 数据库存储数据。适合用于自然语言处理任务的开发和实现,特别是对于需要使用 Python 和 PostgreSQL 数据库的场景。特点是自然语言处理库、Python、PostgreSQL 数据库。
项目地址:https://gitcode.com/gh_mirrors/tra/transformers
免费下载资源
·
错误:
AttributeError: 'str' object has no attribute 'shape'
"""使用bert-chinese预训练模型对中文文本进行编码"""
# 引入torch模型
import torch
# 引入torch模型中的神经网络模型
import torch.nn as nn
# 1. 通过torch.hub(pytorch中专注于迁移学的工具)获得谷歌已经训练好的和中文信息相关的bert-base-chinese模型
# 里面的参数是定好的
model = torch.hub.load('huggingface/pytorch-transformers', 'model', 'bert-base-chinese')
# 2. 导入对应的字符映射器, 它将把中文的每个字映射成一个数字
tokenizer = torch.hub.load('huggingface/pytorch-transformers', 'tokenizer', 'bert-base-chinese')
# 3.将中文文本映射成bert编码后的文本张量表示
def get_bert_encode_for_single(text):
"""
description: 使用bert-chinese预训练模型对中文文本进行编码【将中文文本映射成bert编码后的文本张量表示】
:param text: 要进行编码的文本
:return: 使用bert编码后的文本张量表示
"""
# 3.1 首先使用字符映射器对每个汉字进行映射,参数是传入的中文信息的文本。这样就将中文信息转化为了编码后的信息
# [1:-1]的原因:这里需要注意, bert的tokenizer映射后会为结果前后添加开始和结束标记即101和102
# 这对于多段文本的编码是有意义的, 但在我们这里没有意义, 因此使用[1:-1]对头和尾进行切片
indexed_tokens = tokenizer.encode(text)[1:-1]
# 3.2之后将列表结构转化为tensor张量【将编码后的信息放在torch.tensor中】
tokens_tensor = torch.tensor([indexed_tokens])
print(tokens_tensor)
# 3.3 直接用模型跑出值而不去自动计算梯度【预测部分需要使得模型不自动求导】
with torch.no_grad():
# 3.4 调用模型获得隐层输出
encoded_layers, _ = model(tokens_tensor)
print(f"encoded_layers.shape={encoded_layers.shape}")
原因:
问题在于,自transformers的3.xx版本以来,返回type已发生变化。所以,我们明确地要求得到tensors张量的元组tuple 。
因此,我们可以在调用model()时传递额外的参数return_dict=False,以获得对应于最后一个隐藏状态的实际张量。
解决:
encoded_layers, _ = model(tokens_tensor, return_dict=False)
GitHub 加速计划 / tra / transformers
130.24 K
25.88 K
下载
huggingface/transformers: 是一个基于 Python 的自然语言处理库,它使用了 PostgreSQL 数据库存储数据。适合用于自然语言处理任务的开发和实现,特别是对于需要使用 Python 和 PostgreSQL 数据库的场景。特点是自然语言处理库、Python、PostgreSQL 数据库。
最近提交(Master分支:2 个月前 )
33868a05
* [i18n-HI] Translated accelerate page to Hindi
* Update docs/source/hi/accelerate.md
Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>
* Update docs/source/hi/accelerate.md
Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>
* Update docs/source/hi/accelerate.md
Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>
* Update docs/source/hi/accelerate.md
Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com>
---------
Co-authored-by: Kay <kay@Kays-MacBook-Pro.local>
Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com> 12 天前
e2ac16b2
* rework converter
* Update modular_model_converter.py
* Update modular_model_converter.py
* Update modular_model_converter.py
* Update modular_model_converter.py
* cleaning
* cleaning
* finalize imports
* imports
* Update modular_model_converter.py
* Better renaming to avoid visiting same file multiple times
* start converting files
* style
* address most comments
* style
* remove unused stuff in get_needed_imports
* style
* move class dependency functions outside class
* Move main functions outside class
* style
* Update modular_model_converter.py
* rename func
* add augmented dependencies
* Update modular_model_converter.py
* Add types_to_file_type + tweak annotation handling
* Allow assignment dependency mapping + fix regex
* style + update modular examples
* fix modular_roberta example (wrong redefinition of __init__)
* slightly correct order in which dependencies will appear
* style
* review comments
* Performance + better handling of dependencies when they are imported
* style
* Add advanced new classes capabilities
* style
* add forgotten check
* Update modeling_llava_next_video.py
* Add prority list ordering in check_conversion as well
* Update check_modular_conversion.py
* Update configuration_gemma.py 13 天前
更多推荐
已为社区贡献3条内容
所有评论(0)