繁体   English   中英

TypeError:test()缺少1个必需的位置参数

[英]TypeError: test() missing 1 required positional argument

我想预测文本中每个句子的分数。 我已经写了这个测试方法:

def test(sent):
    # Predict for a given sentence
    if sent != "":
        input, seq_lengths, target = make_variables([sent], [])
        output = classifier(input, seq_lengths)
        pred = output.data.max(1, keepdim=True)[1]
        score = pred.cpu().numpy()[0][0]
        print("The sentence is:",sent, "The score is:", score)
        return


    print("evaluating trained model ...")
    total_mse=0

    for sents, scores in test_loader:
        input, seq_lengths, target = make_variables(sents, scores)
        output = classifier(input, seq_lengths)
        pred = output.data.max(1, keepdim=True)[1]
        error=mean_squared_error(pred,target.data.view_as(pred.float()))
        total_mse +=error
    print(" **********  Total MSE is   **********",total_mse)
    return

在主要方法的一部分中,我有:

# Testing
test("")
# Testing for a given sample _a sentence_
test("For instance, wolves prey on moose, which are too big for coyotes.")

但我收到此错误:

错误回溯(最近一次调用最近):testPartExecutor中的文件“ /home/mahsa/anaconda3/envs/pytorch_env/lib/python3.5/unittest/case.py”,行59,产生文件“ / home / mahsa / anaconda3 / envs / pytorch_env / lib / python3.5 / unittest / case.py”,行601,运行testMethod()文件“ /home/mahsa/anaconda3/envs/pytorch_env/lib/python3.5/site-packages/nose/ case.py“,第198行,在runTest中self.test(* self.arg)异常:test()缺少1个必需的位置参数:'sent'----------------- --- >>开始捕获日志<< -------------------- gensim.models.doc2vec:调试:正在使用gensim.models.doc2vec的快速版本.preprocessing.cleaner:信息:找不到'pattern'包; 标签过滤器不适用于英语gensim.utils:信息:从/ home / mahsa / PycharmProjects / PyTorch_env_project / Thesis / proj2 / glove_saved gensim.utils加载KeyedVectors对象:信息:从/ home / mahsa / PycharmProjects / PyTorch_en_加载syn0带有mmap = None的/proj2/glove_saved.syn0.npy gensim.utils:INFO:将忽略的属性syn0norm设置为None gensim.utils:INFO:已加载/ home / mahsa / PycharmProjects / PyTorch_env_project / Thesis / proj2 / glove_saved ----- ---------------- >>结束捕获的日志<< ---------------------

E ================================================= ====================错误:mahsa_rnn_sent_classification.test ------------------------ ----------------------------------------------追溯(最新最后调用):在runTest self.test(* self.arg)TypeError中,文件“ /home/mahsa/anaconda3/envs/pytorch_env/lib/python3.5/site-packages/nose/case.py”第198行test()缺少1个必需的位置参数:'sent'-------------------- >>开始捕获日志记录<< ----------- --------- gensim.models.doc2vec:调试:正在使用gensim.models.doc2vec的快速版本summa.preprocessing.cleaner:INFO:未找到'pattern'包; 标签过滤器不适用于英语gensim.utils:信息:从/ home / mahsa / PycharmProjects / PyTorch_env_project / Thesis / proj2 / glove_saved gensim.utils加载KeyedVectors对象:信息:从/ home / mahsa / PycharmProjects / PyTorch_en_加载syn0带有mmap = None的/proj2/glove_saved.syn0.npy gensim.utils:INFO:将忽略的属性syn0norm设置为None gensim.utils:INFO:已加载/ home / mahsa / PycharmProjects / PyTorch_env_project / Thesis / proj2 / glove_saved ----- ---------------- >>结束捕获的日志<< ---------------------

-------------------------------------------------- --------------------在0.004秒内进行了1次测试

失败(错误= 1)

我认为test()的参数为“已发送”。 我该如何纠正该错误?

使用nose或单元测试运行测试并unittest ,如果您是新手,我认为您可以更轻松地开始使用pytest类的pytest

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM