m0_59399867 2024-04-30 11:48 采纳率: 0%
浏览 32
已结题

在本地部署CHATRWKV时遇到了AttributeError: 'str' object has no attribute 'requires_grad'

打扰了,在此之前我先放一个本地部署的CHATRWKV的github项目链接:https://github.com/BlinkDL/ChatRWKV
这里是在本地部署CHATRWKV时在运行python chat.py时遇到的问题:

Traceback (most recent call last):
  File "chat.py", line 218, in <module>
    model = RWKV_RNN(args)
  File "D:\尼诺尔AI\src\model_run.py", line 48, in __init__
    w[x].requires_grad = False
AttributeError: 'str' object has no attribute 'requires_grad'

个人在代码方面比较小白,更倾向于这个错误属于字符串类型的变量赋值给了需要求梯度的变量,需要将需要求梯度的变量定义为合适的类型(如 tensor),或者将字符串转换为需要的类型,我检查chat.py这段代码,觉得可能是由于args里的str类型被算入model_run.py其中,但我想这段代码应该是必须保留下来的,我在网上搜索时似乎发现没有人遇到这个问题,除了这两段,我不知道是args哪个地方出了纰漏让其中的str类型囊括于此,更不知如何修改:

args.RUN_DEVICE = "cpu" 
args.FLOAT_MODE = "fp32"

至于其他的args的问题,我个人似乎看不出问题所在。

args.vocab_size = 50277
args.head_qk = 0
args.pre_ffn = 0
args.grad_cp = 0
args.my_pos_emb = 0
MODEL_NAME = args.MODEL_NAME

希望如果有其他人在探究本地部署CHATRWKV的时候能与我一起交谈下这个问题出自于哪里,如果有和CHATRWKV部署类似的问题也可以在我这里提问,也许一起讨论的人之中会有人解答,多谢了。

  • 写回答

23条回答 默认 最新

  • 专家-皆知 2024-04-30 11:48
    关注
    获得0.20元问题酬金

    参考免费微信小程序:皆我百晓生 作答,经由专家-皆知整理回复,如问题解决,望采纳;如仍有疑问,请评论回复。

    根据您提供的代码段,在上述 model_run.py 的代码中,确实有对张量(tensor)进行属性操作的情况,这可能导致 'str' object has no attribute 'requires_grad' 错误。在这段代码中,有对权重张量 w 的属性进行修改,其中涉及到 requires_grad 属性的操作。更新这样的属性是为了控制是否需要对张量进行梯度计算,在 PyTorch 中是典型的操作。

    从您的代码中来看,我推测问题可能出在 w[x].requires_grad = False 这一行,提示表明 x 可能是一个字符串而不是张量。对于解决这个问题,您可以试着将该部分代码更改为如下形式:

    for x in keys:
        if isinstance(w[x], torch.Tensor):  # 确保 w[x] 是张量
            with torch.no_grad():
                w[x].requires_grad = False
        else:
            # 处理非张量情况,这里您可以添加适当的处理逻辑
            continue
    

    这样做的好处是在修改 requires_grad 属性之前,首先检查 w[x] 是否是张量,以避免对字符串或其他类型执行不支持的操作。另外,在处理非张量的情况下,您可以根据需要进行适当的处理,比如跳过或者转换成张量等等。

    这种修改可以帮助您解决 'str' object has no attribute 'requires_grad' 错误,并且在不修改 str 类型的情况下对代码进行调整。希望这个建议对您有所帮助,如果您需要进一步的指导或讨论,请随时告诉我。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月8日
  • 赞助了问题酬金20元 4月30日
  • 创建了问题 4月30日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?