isinstance() arg 2 必须是类型、类型元组或联合

问题描述 投票:0回答:1

我在尝试训练模型时收到错误消息,但出于某种原因,每次更改模型时它都会给我相同的消息。

这是代码:


# Define training arguments
training_args = TrainArgument(
    output_dir="bert_results",
    num_train_epochs=3,
    per_device_train_batch_size=8,
    per_device_eval_batch_size=32,
    warmup_steps=500,
    weight_decay=0.01,
    logging_dir="bert_results/logs",
    logging_steps=10,
)



# Initialize the TFTrainer
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset,
    loss_function=("categorical_crossentropy")
)

# Train the model
trainer.train()




What I am getting in return "Traceback (most recent call last):
  File "C:\Users\Jesh\PycharmProjects\Yelp\finetuning.py", line 44, in <module>
    trainer = Trainer(
              ^^^^^^^^
  File "C:\Users\Jesh\PycharmProjects\Yelp\venv\Lib\site-packages\tftrainer\trainer.py", line 32, in __init__
    if isinstance(callable, loss_function)
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: isinstance() arg 2 must be a type, a tuple of types, or a union" 

我正在开发一个机器学习项目,我希望在运行特定脚本后生成经过微调的模型。该脚本涉及使用自定义训练器类来训练模型。尽管对训练器类进行了各种修改以改进训练过程,但我始终遇到与模型状态相关的错误。

具体错误信息为:“sate error”。此错误表明模型在训练过程中或训练后的状态管理存在问题。

python tensorflow huggingface fine-tuning
1个回答
0
投票

尝试从 Trainer 中删除

loss_function
参数。我在最新文档中找不到它的存在。

# Initialize the TFTrainer
trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset
)

我还注意到您正在使用

TFTrainer
最新版本的变压器似乎不支持它。我检查了一些变压器的旧文档,但仍然没有找到那个论点。

如果您需要自定义损失函数,请参阅此HF 线程。本质上,您必须子类化

Trainer
并重写
compute_loss
方法。

© www.soinside.com 2019 - 2024. All rights reserved.