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
相关推荐
空影星2 分钟前
ValiDrive:一键验证USB真实容量
python·智能手机·django·flask
新加坡内哥谈技术10 分钟前
机器人出租车与郊区生活
人工智能·生活
喵了几个咪12 分钟前
游戏字体渲染
开发语言·python·游戏
CareyWYR13 分钟前
每周AI论文速递(251117-251121)
人工智能
专注数据的痴汉13 分钟前
「数据获取」《中国农业年鉴》(1949-2022)
人工智能
Blossom.11820 分钟前
RLHF的“炼狱“突围:从PPO到DPO的工业级对齐实战
大数据·人工智能·分布式·python·算法·机器学习·边缘计算
vvoennvv31 分钟前
【Python TensorFlow】CNN-BiLSTM时序预测 卷积神经网络-双向长短期记忆神经网络组合模型(附代码)
python·神经网络·cnn·tensorflow·lstm·bilstm
数据知道1 小时前
【Flask】一文掌握 Flask 基础用法
数据库·后端·python·flask·python web
Light601 小时前
MCP协议:CAD设计的“AI大脑”革命——从图纸到智能决策的全链路跃迁
人工智能·工业4.0·mcp协议·cad智能化·ai设计自动化
鹿鸣天涯1 小时前
智能世界2035:探索未知,跃见未来
人工智能