ModelScope在训练时加入EvaluationHook,但是训练时验证遇到报错怎么办?
inputs_tensor, model_input_name, model_kwargs = self._prepare_model_inputs( │
│ 1221 │ │ │ inputs, generation_config.bos_token_id, model_kwargs │
│ 1222 │ │ ) │
│ ❱ 1223 │ │ batch_size = inputs_tensor.shape[0] │
│ 1224 │ │ │
│ 1225 │ │ # 4. Define other model kwargs │
│ 1226 │ │ model_kwargs["output_attentions"] = generation_config.output_attentions │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
AttributeError: 'dict' object has no attribute 'shape'
目前从报错来看,inputs_tensor可能是您的完整输入,也就是{'input_ids': sometensor, 'attention_mask': sometensor},中间变量的传递可能存在问题-此回答整理自钉群“魔搭ModelScope开发者联盟群 ①”
如果在使用ModelScope训练时加入EvaluationHook,并且在训练过程中遇到验证错误,你可以尝试以下步骤来解决问题:
检查数据:确保你的验证数据集(Validation set)被正确加载和预处理。检查数据集的格式、路径和文件是否正确,并重新运行代码以确保数据集能够正常加载。
检查模型和损失函数:确认你的模型和损失函数在训练和验证过程中都能正常工作。检查模型的配置和定义是否正确,确保它们与你的任务相匹配。对于损失函数,确保选择了适当的损失函数,并在训练和验证过程中正确地使用它。
参数设置:检查你在EvaluationHook中使用的参数设置。确认参数名称、类型和值是否正确,并与ModelScope文档或示例代码进行比对,确保没有遗漏或错误的设置。
日志和错误信息:仔细阅读错误消息和日志输出,以获取有关发生错误的更多上下文信息。这可能会提供关于具体错误原因或引发问题的线索。根据错误消息调整代码或配置。
调试模式:如果错误仍然无法解决,可以尝试在调试模式下运行代码,以便逐步跟踪和排除问题。通过逐个打印变量、观察模型状态和损失函数输出等,可以更好地理解代码执行过程中出现的问题。
寻求帮助:如果上述方法都无法解决问题,你可以在ModelScope的官方支持渠道寻求帮助。提交你遇到的具体错误信息、代码片段和配置参数,并与开发者团队或其他用户交流,他们可能提供更具体的指导和解决方案。
在 ModelScope 中,可以通过添加 EvaluationHook 来在训练过程中进行验证和评估模型的性能。如果在训练时验证遇到报错,建议您检查以下几个方面:
数据集和预处理:在进行验证时,需要使用与训练时相同的数据集和预处理方法。如果您的数据集或预处理方法发生了变化,可能会导致验证时出现错误。建议您仔细检查数据集和预处理方法,并确保它们与训练时一致。
模型定义和参数:在进行验证时,需要使用与训练时相同的模型定义和参数。如果您在验证时使用了不同的模型或参数,可能会导致验证时出现错误。建议您仔细检查模型定义和参数,并确保它们与训练时一致。
验证代码和参数:在添加 EvaluationHook 时,需要正确地设置验证代码和参数。如果您的验证代码或参数设置有误,可能会导致验证时出现错误。建议您仔细检查验证代码和参数设置,并根据需要进行调整和优化。
训练环境和依赖:在进行验证时,需要确保训练环境和依赖项与训练时一致。如果您的训练环境或依赖项发生了变化,可能会导致验证时出现错误。建议您仔细检查训练环境和依赖项,并确保它们与训练时一致。