前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >飞桨paddle遇到bug调试修正【迁移工具、版本兼容性】

飞桨paddle遇到bug调试修正【迁移工具、版本兼容性】

作者头像
汀丶人工智能
发布2022-12-01 16:03:23
7030
发布2022-12-01 16:03:23
举报
文章被收录于专栏:NLP/KG

PaddlePaddlle强化学习及PARL框架{飞桨}

【一】-环境配置+python入门教学

【二】-Parl基础命令

【三】-Notebook、&pdb、ipdb 调试

【四】-强化学习入门简介

【五】-Sarsa&Qlearing详细讲解

【六】-DQN

【七】-Policy Gradient

【八】-DDPG

【九】-四轴飞行器仿真

飞桨PARL_2.0&1.8.5(遇到bug调试修正)

三步定位PARL飞桨报错原因,快速解决程序问题


一、AI Studio 项目详解【VisualDL工具】

二、AI Studio 项目详解【环境使用说明、脚本任务】

三、AI Studio 项目详解【分布式训练-单机多机】

四、AI Studio 项目详解【图形化任务】

五、AI Studio 项目详解【在线部署及预测】

1. 飞桨PARL_2.0(遇到bug调试修正)

1.1版本兼容问题

迁移工具Paddle X 转为 Paddle 2.0,安装

代码语言:javascript
复制
$ pip install paddle_upgrade_tool

版本替换:

paddle_upgrade_tool支持单文件的转化,你可以通过下方的命令直接转化单独的文件

               paddle_upgrade_tool --inpath paddle_upgrade_tool --inpath E:\360MoveData\Users\小丁\Desktop\train.py

              红色部分替换:文件路径

注意,对于参数的删除及一些特殊情况,迁移工具都会打印WARNING信息,需要你仔细核对相关内容。 如果你觉得上述信息没有问题,可以直接对文件进行原地修改,方式如下:(原文件修改加--write ,替换原文件)

                  $ paddle_upgrade_tool --inpath models/dygraph/mnist/train.py –write

此时,命令行会弹出下方的提示:

代码语言:javascript
复制
"models/dygraph/mnist/train.py" will be modified in-place, and it has been backed up to "~/.paddle_upgrade_tool/train.py_backup_2020_09_09_20_35_15_037821". Do you want to continue? [Y/n]:

输入y 后即开始执行代码迁移。为了高效完成迁移,工具这里采用了原地写入的方式。此外,为了防止特殊情况,工具会备份转换前的代码到 ~/.paddle_upgrade_tool 目录下,如果需要,你可以在备份目录下找到转换前的代码。

代码迁移完成后,会生成一个report.log文件,记录了迁移的详情。内容如下:           

代码语言:javascript
复制
$ cat report.log

链接{https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/01_paddle2.0_introduction/migration_cn.html

1.2.BUG调试1

  问题:  2.0默认使用了动态图模式,如用静态图需要添加static

【AssertionError: In PaddlePaddle 2.x, we turn on dynamic graph mode by default, and 'data()' is only supported in static graph mode. So if you want to use this api, please call 'paddle.enable_static()' before this api to enter static graph mode】

代码语言:javascript
复制
import paddle
paddle.enable_static()

1.3. bug调试2

问题:在使用CPU版本得PaddlePaddle1.8.1和强化学习包parl1.3.1版本时,进行训练会报错

Found non-empty CUDA_VISIBLE_DEVICES. But PARL found that Paddle was not complied with CUDA, which may cause issues.

if you want to use GPU, please try to install GPU version PaddlePaddle by: pip install paddlepaddle-gpu If you only have CPU, please change CUDAPlace(0) to be CPUPlace().

此时会终止训练,然后提示安装gpu版本得paddle。我们只需要修改一下源码就可以继续运行,且后续安装gpu版本仍然可以使用。

解决方法:

此类问题主要是显卡驱动可以让程序检测出有显卡,所以在运行的时候自动选择了GPU版本的paddlepaddle。我们需要修改一下parl源码。

首先找到python安装路径,然后寻找Lib/site-packages/parl/utils

找到machine_info.py文件,然后在105行后, 也就是is_gpu_available这个函数中添加ret=False。

1.4. bug调试3                                                                                       

解决方案:https://blog.csdn.net/qq_43422918/article/details/90271684

imp 从 Python 3.4 之后弃用了,建议使用 importlib 代替

1,在第一行,注释掉 imp,导入 importlib

2,注释 imp.load_source,使用 importlib.machinery.SourceFileLoader 加载模块

代码语言:javascript
复制
#module = imp.load_source(moduleName, fileName)
module = importlib.machinery.SourceFileLoader(moduleName, fileName).load_module()

改动后代码

其余不做改动。

安装成功:

可能存在问题,会使tensorflow程序出现问题imp未安装,如果出现此问题,请改回原来程序

原因是:paddle不要和tensorflow安装在同一个环境下!!!

2.AI studio端调试遇到问题

2.1.版本不兼容、各种库未安装

代码语言:javascript
复制
import os
import numpy as np

import parl
from parl import layers
from paddle import fluid
from parl.utils import logger
from parl.env.continuous_wrappers import ActionMappingWrapper
#from parl.utils import action_mapping # 将神经网络输出映射到对应的 实际动作取值范围 内
from parl.utils import ReplayMemory # 经验回放

from rlschool import make_env  # 使用 RLSchool 创建飞行器环境

python -m pip uninstall paddlepaddle python -m pip install paddlepaddle==1.8.5 -i https://mirror.baidu.com/pypi/simple pip install rlschool -i https://mirror.baidu.com/pypi/simple 卸载旧版本安装最新版本

在终端-1里操作

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PaddlePaddlle强化学习及PARL框架{飞桨}
  • 1. 飞桨PARL_2.0(遇到bug调试修正)
    • 1.1版本兼容问题
      • 1.2.BUG调试1
        • 1.3. bug调试2
          • 1.4. bug调试3                                                                                       
          • 2.AI studio端调试遇到问题
            • 2.1.版本不兼容、各种库未安装
            相关产品与服务
            GPU 云服务器
            GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于生成式AI,自动驾驶,深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档