Pytorch 使用报错 RuntimeError: Caught RuntimeError in DataLoader worker process 0.

这个错误是可能是由于在DataLoader的工作进程中尝试访问CUDA设备导致的。PyTorch的DataLoader使用多进程加载数据,而CUDA上下文不能在子进程中直接使用。

修改前的代码为:

复制代码
def prepare_data(file_path):
    # 读取Excel文件
    df = pd.read_excel(file_path, header=None)
    df = df.iloc[1:]
    print(df)

    # 提取特征和标签
    features = df.iloc[:, :-1].values.astype('float32')  # extract feature
    labels = df.iloc[:, -1].values.astype('int64')  # extract label



    # 数据标准化
    scaler = StandardScaler()
    features = scaler.fit_transform(features)

    # 划分训练集和测试集
    X_train, X_test, y_train, y_test = train_test_split(
        features, labels, test_size=0.2, random_state=42
    )

    # 转换为PyTorch张量并移动到设备
    X_train = torch.tensor(X_train, device=device)
    X_test = torch.tensor(X_test, device=device)
    y_train = torch.tensor(y_train, device=device)
    y_test = torch.tensor(y_test, device=device)

    return X_train, X_test, y_train, y_test, scaler

数据加载修改为下运行OK:

复制代码
class ExcelDataset(Dataset):
    def __init__(self, features, labels):
        # 确保数据在CPU上
        self.features = features.cpu() if features.is_cuda else features
        self.labels = labels.cpu() if labels.is_cuda else labels
相关推荐
王六岁6 小时前
# 🐍 前端开发 0 基础学 Python 入门指南:常用的数据类型和列表
前端·javascript·python
南枝异客6 小时前
查找算法-顺序查找
python·算法
新加坡内哥谈技术6 小时前
解决了“错误的问题”:对AI编程热潮的深度反思
人工智能
花开花富贵6 小时前
不敢去表白?来用代码画♥
python
人间乄惊鸿客6 小时前
python-day8
开发语言·python
渡我白衣7 小时前
未来的 AI 操作系统(八)——灵知之门:当智能系统开始理解存在
人工智能·深度学习·opencv·机器学习·计算机视觉·语言模型·人机交互
夕小瑶7 小时前
Dexmal 原力灵机开源 Dexbotic:具身智能的“Transformers“库来了
大数据·人工智能
Mrliu__7 小时前
Python数据结构(七):Python 高级排序算法:希尔 快速 归并
数据结构·python·排序算法
C嘎嘎嵌入式开发7 小时前
(22)100天python从入门到拿捏《【网络爬虫】网络基础与HTTP协议》
网络·爬虫·python
飞飞是甜咖啡7 小时前
SPP-CNN解决CNN只能处理固定大小的输入图片
人工智能·神经网络·cnn