怎么解决以上问题ValueError: For 'context.set_context', package type mindspore support 'device_target' type cpu, but got Ascend.
时间: 2024-02-03 16:03:18 浏览: 97
这个错误提示说明当前的代码中使用了 MindSpore 框架,并且该框架只支持 CPU 设备目标,但是你传入了 Ascend 设备目标,因此导致了错误。解决该问题需要将设备目标修改为 MindSpore 支持的 CPU 设备目标,可以将以下代码:
```
if not device.lower() in __device_target__:
raise ValueError(f"For 'context.set_context', package type {__package_name__} support 'device_target' "
f"type {__device_target__}, but got {device}.")
```
修改为:
```
if not device.lower() == "cpu":
raise ValueError(f"For 'context.set_context', package type {__package_name__} support 'device_target' "
f"type cpu, but got {device}.")
```
这样可以确保代码中只使用 MindSpore 支持的 CPU 设备目标。
相关问题
ValueError: For 'context.set_context', package type mindspore support 'device_target' type cpu, but got Ascend.
这个错误通常发生在使用MindSpore框架时,你可能在使用 Ascend 设备时错误地将 `device_target` 参数设置为了 "Ascend",而 MindSpore 只支持 "cpu" 作为 `device_target` 参数的值。
解决这个问题的方法是将 `device_target` 参数设置为 "CPU",而不是 "Ascend"。你可以在代码中使用以下语句来设置 `device_target` 参数:
```python
from mindspore import context
context.set_context(device_target="CPU")
```
这将把 `device_target` 参数设置为 "CPU",并应该解决你遇到的问题。
def checkClicked(group, mouse_pos, group_type='NUMBER'): selected = [] # 数字卡片/运算符卡片 if group_type == GROUPTYPES[0] or group_type == GROUPTYPES[1]: max_selected = 2 if group_type == GROUPTYPES[0] else 1 num_selected = 0 for each in group: num_selected += int(each.is_selected) for each in group: if each.rect.collidepoint(mouse_pos): if each.is_selected: each.is_selected = not each.is_selected num_selected -= 1 each.select_order = None else: if num_selected < max_selected: each.is_selected = not each.is_selected num_selected += 1 each.select_order = str(num_selected) if each.is_selected: selected.append(each.attribute) # 按钮卡片 elif group_type == GROUPTYPES[2]: for each in group: if each.rect.collidepoint(mouse_pos): each.is_selected = True selected.append(each.attribute) # 抛出异常 else: raise ValueError('checkClicked.group_type unsupport <%s>, expect <%s>, <%s> or <%s>...' % (group_type, *GROUPTYPES)) return selected详细讲解这段代码
这段代码的作用是检查用户是否点击了一组 sprite,并返回被选中的 sprite 的属性。函数接受三个参数:`group` 表示要检查的 sprite 组,`mouse_pos` 表示鼠标点击的位置,`group_type` 表示 sprite 组的类型,可以是数字卡片、运算符卡片或按钮卡片。
如果 `group_type` 是数字卡片或运算符卡片,该函数会遍历 `group` 中的每个 sprite,判断它是否被选中。如果被选中,则将其从选中列表中删除;如果未被选中,则将其添加到选中列表中。选中的 sprite 的属性将被添加到 `selected` 列表中,并以该 sprite 的选中顺序(1 或 2)作为键值对的值返回。如果选中的数量超过了该类型 sprite 的最大数量(数字卡片最多选 2 张,运算符卡片最多选 1 张),则不会将新的 sprite 添加到选中列表中。
如果 `group_type` 是按钮卡片,该函数会遍历 `group` 中的每个 sprite,并将被点击的 sprite 添加到选中列表中。被选中的 sprite 的属性将被添加到 `selected` 列表中。
如果 `group_type` 不是数字卡片、运算符卡片或按钮卡片,则该函数会抛出一个 ValueError 异常,提示 `group_type` 的值不受支持。
最后,该函数返回一个包含选中 sprite 属性的列表。
阅读全文