Paddlex 安装错误

1.报错 ValueError: signal only works in main thread

File "F:\ProgramData\Anaconda3\envs\yolo5\lib\site-packages\paddlex\cv\models\base.py", line 240, in net_initialize
    pretrain_weights = get_pretrain_weights(
  File "F:\ProgramData\Anaconda3\envs\yolo5\lib\site-packages\paddlex\cv\models\utils\pretrain_weights.py", line 208, in get_pretrain_weights
    import paddlehub as hub
  File "F:\ProgramData\Anaconda3\envs\yolo5\lib\site-packages\paddlehub\__init__.py", line 30, in <module>
    from . import dataset
  File "F:\ProgramData\Anaconda3\envs\yolo5\lib\site-packages\paddlehub\dataset\__init__.py", line 24, in <module>
    from .squad import SQUAD
  File "F:\ProgramData\Anaconda3\envs\yolo5\lib\site-packages\paddlehub\dataset\squad.py", line 20, in <module>
    from paddlehub.reader import tokenization
  File "F:\ProgramData\Anaconda3\envs\yolo5\lib\site-packages\paddlehub\reader\__init__.py", line 22, in <module>
    from .cv_reader import ImageClassificationReader
  File "F:\ProgramData\Anaconda3\envs\yolo5\lib\site-packages\paddlehub\reader\cv_reader.py", line 26, in <module>
    from ..contrib.ppdet.data.reader import Reader
  File "F:\ProgramData\Anaconda3\envs\yolo5\lib\site-packages\paddlehub\contrib\ppdet\data\reader.py", line 28, in <module>
    from .transform import build_mapper, map, batch, batch_map
  File "F:\ProgramData\Anaconda3\envs\yolo5\lib\site-packages\paddlehub\contrib\ppdet\data\transform\__init__.py", line 24, in <module>
    from .parallel_map import ParallelMappedDataset
  File "F:\ProgramData\Anaconda3\envs\yolo5\lib\site-packages\paddlehub\contrib\ppdet\data\transform\parallel_map.py", line 229, in <module>
    signal.signal(signal.SIGTERM, _reader_exit)
  File "F:\ProgramData\Anaconda3\envs\yolo5\lib\signal.py", line 47, in signal
    handler = _signal.signal(_enum_to_int(signalnum), _enum_to_int(handler))
ValueError: signal only works in main thread

这个错误是因为我在代码中是在子线程中启动训练的, signal. 只能在主线程中使用. 所以就报错了.
我这里将它先注释掉了, 然后加载数据集的时候works_nums = 1 这样就避免了多线程加载数据. 此bug已提交.

解决方法, 把 signal.signal(signal.SIGTERM, _reader_exit) 这行注释掉了, 并且在打dataloader参数中把,

train_dataset = pdx.datasets.CocoDetection(
            data_dir= option.trainDataDir,
            num_workers=1, # 这里设置为1
            ann_file= os.path.join(option.trainDataDir,'train_annotations.json'), # 'xiaoduxiong_ins_det/train.json',
            transforms=train_transforms,
            shuffle=True)

2. 提示缺少cublas64_100.dll
到网站上下载一下即可
https://www.dll-files.com/download/0e506d21dd9e1be9d60d2ad215af943f/cublas64_100.dll.html?c=eGFndlZTdzk3VGVpNk13Z09DanBLZz09
网上下一个放到 c:\window\system32下就可以了

3. 下面的错误, 验证的时候找到了不存在的类别.超出索引


Traceback (most recent call last):
  File "f:\project\AI\ai.cycleblock.cn\common\TrainThread_Paddlex.py", line 135, in main
    self.starttrain(opt)
  File "f:\project\AI\ai.cycleblock.cn\common\TrainThread_Paddlex.py", line 257, in starttrain
    model.train(
  File "F:\ProgramData\Anaconda3\envs\yolo5\lib\site-packages\paddlex\cv\models\mask_rcnn.py", line 220, in train
    self.train_loop(
  File "F:\ProgramData\Anaconda3\envs\yolo5\lib\site-packages\paddlex\cv\models\base.py", line 557, in train_loop
    self.eval_metrics, self.eval_details = self.evaluate(
  File "F:\ProgramData\Anaconda3\envs\yolo5\lib\site-packages\paddlex\cv\models\mask_rcnn.py", line 316, in evaluate
    ap_stats, eval_details = eval_results(
  File "F:\ProgramData\Anaconda3\envs\yolo5\lib\site-packages\paddlex\cv\models\utils\detection_eval.py", line 56, in eval_results       
    box_ap_stats, xywh_results = coco_bbox_eval(
  File "F:\ProgramData\Anaconda3\envs\yolo5\lib\site-packages\paddlex\cv\models\utils\detection_eval.py", line 119, in coco_bbox_eval    
    xywh_results = bbox2out(
  File "F:\ProgramData\Anaconda3\envs\yolo5\lib\site-packages\paddlex\cv\models\utils\detection_eval.py", line 312, in bbox2out
    catid = (clsid2catid[int(clsid)])
KeyError: 12

后来经过排除, 发现是我的验证集标注文件.val_annotations.json 里面的categories个数 比train_annotations.json里面的categories 个数少导致的.

解决方法修改这两个文件的代码逻辑., 把两个文件中的categories 生成的一模一样.就解决了

<think>好的,用户想下载最新版本的PaddleX。首先,我需要回忆一下相关的安装步骤。根据之前的引用内容,用户提到了conda环境的创建和激活,安装PaddlePaddle,然后安装PaddleX。 首先,我应该确认用户是否需要GPU版本还是CPU版本。因为引用中提到了GPU版本的安装步骤,比如安装paddlepaddle-gpu==3.0.0b1,所以可能需要先检查用户的系统是否有CUDA环境。不过用户可能只是需要基础步骤,所以先提供通用方法。 然后,用户需要创建Python 3.10的conda环境,命名为paddlex3,并激活环境。接着安装PaddlePaddle,这里需要注意版本兼容性。引用1提到安装的是paddlepaddle-gpu==3.0.0b1,但可能现在最新版本已经更新,所以可能需要用户查看官网获取最新版本号。不过用户可能希望直接使用最新的稳定版,所以可能需要调整命令,比如去掉版本号,或者使用默认的安装命令。 接下来,安装PaddleX本身,引用2中使用的是pip install paddlex,并指定了百度镜像源。所以这部分可以直接沿用,确保用户使用镜像源加快下载速度。 最后,验证安装是否成功,可以通过运行paddle.utils.run_check()来检查PaddlePaddle是否正确安装,然后测试导入paddlex模块。如果有问题,可能需要处理依赖冲突,比如引用3中提到的Python各版本依赖问题,这时候可能需要用户调整Python版本或依赖库的版本。 用户可能遇到的问题包括环境配置错误、依赖冲突、网络问题导致安装失败等,需要给出常见问题的解决方法,比如更换镜像源、检查CUDA版本等。同时,需要提醒用户确保conda环境正确激活,避免在全局环境中安装。 总结步骤应该是:创建环境→激活环境→安装PaddlePaddle→安装PaddleX→验证安装。同时,根据引用中的信息,提供具体的命令,并注明参考来源。</think>### 分步安装PaddleX最新版本教程 1. **创建并激活Conda环境(推荐隔离依赖)** ```bash conda create -n paddlex_env python=3.10 # 使用兼容性较好的Python 3.10 conda activate paddlex_env ``` *注:环境名称可自定义,如`paddlex3`[^1]* 2. **安装PaddlePaddle深度学习框架(基础依赖)** - **GPU版本(需CUDA 11.8+和cuDNN支持)** ```bash python -m pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple ``` - **CPU版本** ```bash python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple ``` *验证安装:执行`python -c "import paddle; paddle.utils.run_check()"`,显示硬件信息即成功[^3]* 3. **安装PaddleX工具库** ```bash pip install paddlex==2.1.0 -i https://mirror.baidu.com/pypi/simple # 指定最新版本号 ``` *若需最新开发版,可尝试`pip install paddlex --pre`[^2]* 4. **验证PaddleX安装** ```python import paddlex print(paddlex.__version__) # 应输出版本号如2.1.0 ``` ### 常见问题排查 - **依赖冲突**:若安装失败,尝试先升级pip:`pip install --upgrade pip` - **镜像加速**:更换为清华镜像源`https://pypi.tuna.tsinghua.edu.cn/simple` - **CUDA版本不符**:通过`nvidia-smi`查询显卡驱动版本,匹配[paddlepaddle官网](https://www.paddlepaddle.org.cn/)的安装指南
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值