Python 火炬张量;输入冲突:";“张量对象不可调用”;

Python 火炬张量;输入冲突:";“张量对象不可调用”;,python,pytorch,google-colaboratory,huggingface-transformers,Python,Pytorch,Google Colaboratory,Huggingface Transformers,由于代码“torch.tensor”,我在添加“input”时出现了错误“tensor对象不可调用”。有人知道我如何解决这个问题吗 import torch from torch.nn import functional as F from transformers import GPT2Tokenizer, GPT2LMHeadModel tokenizer = GPT2Tokenizer.from_pretrained('gpt2') model = GPT2LMHeadModel.fr

由于代码“torch.tensor”,我在添加“input”时出现了错误“tensor对象不可调用”。有人知道我如何解决这个问题吗

import torch
from torch.nn import functional as F
from transformers import GPT2Tokenizer, GPT2LMHeadModel


tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
model = GPT2LMHeadModel.from_pretrained('gpt2')

text0 = "In order to"
text = tokenizer.encode("In order to")
input, past = torch.tensor([text]), None


logits, past = model(input, past = past)
logits = logits[0,-1]
probabilities = torch.nn.functional.softmax(logits)
best_logits, best_indices = logits.topk(5)
best_words = [tokenizer.decode([idx.item()]) for idx in best_indices]
text.append(best_indices[0].item())
best_probabilities = probabilities[best_indices].tolist()

for i in range(5):
    f = ('Generated {}: {}'.format(i, best_words[i]))
    print(f)


option = input("Pick a Option:")
z = text0.append(option)
print(z)
堆栈跟踪错误:

TypeError                                 Traceback (most recent call last)

<ipython-input-2-82e8d88e81c1> in <module>()
     25 
     26 
---> 27 option = input("Pick a Option:")
     28 z = text0.append(option)
     29 print(z)

TypeError: 'Tensor' object is not callable
TypeError回溯(最近一次调用)
在()
25
26
--->27选项=输入(“选择选项:”)
28 z=text0.append(可选)
29打印(z)
TypeError:“Tensor”对象不可调用

问题在于您已经定义了一个名为
input
的变量,该变量将代替
input
函数使用。只需为变量使用不同的名称,它就会按预期工作

此外,python字符串没有append方法

导入火炬
从torch.nn导入功能为F
从transformers导入GPT2Tokenizer,GPT2LMHeadModel
tokenizer=GPT2Tokenizer.from_pretrained('gpt2'))
模型=GPT2LMHeadModel。来自预训练('gpt2'))
text0=“为了”
text=tokenizer.encode(“为了”)
myinput,pass=torch.tensor([text]),无
logits,过去=模型(myinput,过去=过去)
logits=logits[0,-1]
概率=torch.nn.functional.softmax(logits)
最佳登录,最佳索引=logits.topk(5)
最佳单词=[tokenizer.decode([idx.item()]),用于最佳索引中的idx]
text.append(最佳索引[0].item())
最佳概率=概率[最佳指数].tolist()
对于范围(5)中的i:
f=('Generated{}:{}'。格式(i,best_words[i]))
印刷品(f)
选项=输入(“选择选项:”)
z=text0+“”+选项
打印(z)

非常感谢您。这很好用。如果你不知道的话,我显然是个新手。