就良同学 2021-08-20 03:18 采纳率: 100%
浏览 4734
已结题

【提问-pytorch运行报错】CUDA error: CUBLAS_STATUS_ALLOC_FAILED when calling `cublasCreate(handle)`

问题如下:
1、利用pytorch复现googlenet网络
2、定义训练过程函数中

def train(epoch):
    running_loss = 0  # 损失值归零
    for batch_idx, data in enumerate(train_loader, start=0): 
        images, labels = data #将输入x和相应的标签y从数据中拿出来

        # 将输入和目标y都放到GPU上面
        images, labels = images.to(device), labels.to(device)

...

labels.to(device)报错“AttributeError: 'tuple' object has no attribute 'to'”,发现是因为Python中的元组类(tuple)没有调用to的方法。
3、解决
(1)执行labels = torch.tensor(labels).to(device)试图将tuple转为tensor,但是报错:"ValueError: too many dimensions 'str'";
(2)这是因为“张量表示由数值组成的多维数组”,故字符串str无法直接转为tensor
4、将tuple字符串元素数值化
(1)方法一:调用sklearn的preprocessing(成功运行)

from sklearn import preprocessing

le = preprocessing.LabelEncoder() #获取一个LabelEncoder
labels = le.fit_transform(labels) #训练LabelEncoder
labels = torch.as_tensor(labels) 

成功运行
(2)方法二:直接将tuple元素强转为int型(运行报错)

images, labels = data #将输入x和相应的标签y从数据中拿出来
print(labels)

输出:('177', '166', '100', '136')
由于labels实际上是数字,所以思考能否直接将元素转为int型?

labels = [int(i) for i in labels]
labels = torch.as_tensor(labels)

经过此操作成功将labels转为了tensor,但是运行之后报错:

RuntimeError: CUDA error: CUBLAS_STATUS_ALLOC_FAILED when calling `cublasCreate(handle)`

Q:请问方法二为什么会报错呢?

img

展开全部

  • 写回答

1条回答 默认 最新

  • 爱晚乏客游 2021-08-20 06:54
    关注

    label是类别,比如说(“100,“110”,“111“),你的100是第0类,110是第1类,111是第2类,你这么写变成了100是第100类,110是第110类,111是第111类了,原本你只有三个类别,现在变成了111个类别了,肯定出问题啊

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    就良同学 2021-08-20 08:12

    🤔对哦,谢谢~

    1
    回复
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 8月27日
  • 已采纳回答 8月20日
  • 修改了问题 8月20日
  • 创建了问题 8月20日

悬赏问题

  • ¥15 centos7.6进不去系统,卡在数字7界面
  • ¥15 Tensorflow采用interpreter.allocate_tensors()分配内存出现ValueError: vector too long报错
  • ¥15 使用CGenFF在线生成血红素辅基拓扑结构遇到问题
  • ¥15 在fragment使用okhttp同步上传文件,能不能在fragment销毁后还可以继续上传文件?
  • ¥20 matlab代码实现可达矩阵形成骨骼矩阵
  • ¥15 关于地板的木纹和图库中的匹配的
  • ¥30 机器学习预测疾病模型流程疑问
  • ¥50 2048Python实现
  • ¥15 使用ads进行低噪放仿真没有结果且不报错
  • ¥15 关于#python#的问题:有偿求一个千寻框架找书机器人插件
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部