You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyTorch中torch.softmax()参数错误排查求助

问题分析与解决方案

核心错误原因

报错的直接原因是**torch.softmax()必须指定计算维度(dim参数)**,你的代码仅传入张量output,不符合PyTorch的API要求。

具体修复步骤

1. 修正softmax调用

将错误的代码行:

probs = torch.softmax(output)

替换为:

probs = torch.softmax(output, dim=1)

这里dim=1是因为你的output形状为(1, output_size)(对应单条输入样本的多分类输出),沿维度1计算softmax才能得到每个分类的概率值。

2. 排查语音循环无回复问题

运行时仅显示Listening/Recognizing后回到监听状态,可能的原因:

  • listen()函数未能正确识别语音内容,返回空字符串或无效内容,导致后续回复逻辑未触发
  • 添加调试打印确认识别结果:
    sentence = listen()
    print(f"识别到的内容: {sentence}")  # 新增调试代码
    

3. 潜在逻辑错误检查

  • 确认intents.json中的标签字段为"tag"而非"tags":常见的意图JSON格式中标签键为"tag",你的代码写的是if tag == intent['tags'],会导致匹配失败,修正为:
    if tag == intent['tag']:
    
  • 确保bag_of_words函数返回的numpy数组数据类型与模型输入兼容(如float32)

修正后的核心代码片段

output = model(X)

_ , predicted = torch.max(output, dim=1)

tag = tags[predicted.item()]

# 修正softmax维度参数
probs = torch.softmax(output, dim=1)
prob = probs[0][predicted.item()]

if prob.item() > 0.75:
    for intent in intents['intents']:
        # 匹配正确的标签键名
        if tag == intent['tag']:
            reply = random.choice(intent['responses'])
            say(reply)

内容的提问来源于stack exchange,提问作者Yajur Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 15:40:37