-
Notifications
You must be signed in to change notification settings - Fork 25
Open
Description
提取all-mpnet-base-v2
计算图报错。
抽取脚本如下:
import torch
from graph_net.torch.extractor import extract
from transformers import AutoTokenizer, AutoModel
def run_model(name: str, device_str: str) -> None:
"""
对指定模型执行计算图抽取流程并导出结果。
Args:
name (str): 模型名称(例如 'resnet50'、'vit_b_16'、'bert-base-uncased' 等)。
device_str (str): 运行设备标识('cpu' 或 'cuda:0' 等)。
"""
device = torch.device(device_str)
print(f"\nTesting model: {name} on {device_str}")
# # 1. 加载模型权重
# pass
# 2. 实例化模型
try:
model = AutoModel.from_pretrained('sentence-transformers/all-mpnet-base-v2')
except Exception as e:
print(f"[FAIL] {name}: instantiate model error - {e}")
return
import inspect
print(inspect.signature(model.forward))
# 3. 构造输入张量
tokenizer = AutoTokenizer.from_pretrained('sentence-transformers/all-mpnet-base-v2')
sentences = ['This is an example sentence', 'Each sentence is converted']
inputs = tokenizer(
sentences,
return_tensors="pt",
padding=True,
truncation=True,
max_length=512,
)
input_data = {key: val.to(device) for key, val in inputs.items()}
# 4. 包装并抽取计算图
model = model.to(device).eval()
# output = model(**input_data)
# print(f"output: {output}")
wrapped = extract(name=name)(model).eval()
try:
with torch.no_grad():
wrapped(input_data)
print(f"[OK] {name}")
except Exception as e:
print(f"[FAIL] {name}: extract error - {e}")
run_model('sentence-transformers/all-mpnet-base-v2', 'cpu')
报错信息:
Testing model: sentence-transformers/all-mpnet-base-v2 on cpu
(input_ids: Optional[torch.LongTensor] = None, attention_mask: Optional[torch.FloatTensor] = None, position_ids: Optional[torch.LongTensor] = None, head_mask: Optional[torch.FloatTensor] = None, inputs_embeds: Optional[torch.FloatTensor] = None, output_attentions: Optional[bool] = None, output_hidden_states: Optional[bool] = None, return_dict: Optional[bool] = None, **kwargs) -> Union[tuple[torch.Tensor], transformers.modeling_outputs.BaseModelOutputWithPooling]
[FAIL] sentence-transformers/all-mpnet-base-v2: extract error - 'dict' object has no attribute 'size'
Metadata
Metadata
Assignees
Labels
No labels