飞桨paddle遇到bug调试修正【迁移工具、版本兼容性】
PaddlePaddlle强化学习及PARL框架{飞桨}
1. 飞桨PARL_2.0(遇到bug调试修正)
1.1版本兼容问题
迁移工具Paddle X 转为 Paddle 2.0,安装
$ 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
此时,命令行会弹出下方的提示:
"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文件,记录了迁移的详情。内容如下:
$ cat report.log
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】
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 加载模块
#module = imp.load_source(moduleName, fileName)
module = importlib.machinery.SourceFileLoader(moduleName, fileName).load_module()
改动后代码


其余不做改动。
安装成功:

可能存在问题,会使tensorflow程序出现问题imp未安装,如果出现此问题,请改回原来程序
原因是:paddle不要和tensorflow安装在同一个环境下!!!
2.AI studio端调试遇到问题
2.1.版本不兼容、各种库未安装
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里操作

飞桨paddle遇到bug调试修正【迁移工具、版本兼容性】的更多相关文章
- 【百度飞桨】手写数字识别模型部署Paddle Inference
从完成一个简单的『手写数字识别任务』开始,快速了解飞桨框架 API 的使用方法. 模型开发 『手写数字识别』是深度学习里的 Hello World 任务,用于对 0 ~ 9 的十类数字进行分类,即输入 ...
- 百度飞桨数据处理 API 数据格式 HWC CHW 和 PIL 图像处理之间的关系
使用百度飞桨 API 例如:Resize Normalize,处理数据的时候. Resize:如果输入的图像是 PIL 读取的图像这个数据格式是 HWC ,Resize 就需要 HWC 格式的数据. ...
- Ubuntu 百度飞桨和 CUDA 的安装
Ubuntu 百度飞桨 和 CUDA 的安装 1.简介 本文主要是 Ubuntu 百度飞桨 和 CUDA 的安装 系统:Ubuntu 20.04 百度飞桨:2.2 为例 2.百度飞桨安装 访问百度飞桨 ...
- 我做的百度飞桨PaddleOCR .NET调用库
我做的百度飞桨PaddleOCR .NET调用库 .NET Conf 2021中国我做了一次<.NET玩转计算机视觉OpenCV>的分享,其中提到了一个效果特别好的OCR识别引擎--百度飞 ...
- 飞桨paddlespeech语音唤醒推理C实现
上篇(飞桨paddlespeech 语音唤醒初探)初探了paddlespeech下的语音唤醒方案,通过调试也搞清楚了里面的细节.因为是python 下的,不能直接部署,要想在嵌入式上部署需要有C下的推 ...
- geotrellis使用(七)记录一次惨痛的bug调试经历以及求DEM坡度实践
眼看就要端午节了,屌丝还在写代码,话说过节也不给轻松,折腾了一天终于解决了一个BUG,并完成了老板安排的求DEM坡度的任务,那么就分两段来表. 一.BUG调试 首先记录一天的BUG调试,简单copy了 ...
- geotrellis使用(十二)再记录一次惨痛的伪BUG调试经历(数据导入以及读取瓦片)
Geotrellis系列文章链接地址http://www.cnblogs.com/shoufengwei/p/5619419.html 目录 前言 BUG还原 查找BUG 解决方案 总结 后记 一.前 ...
- 最难忘的Bug调试经历
摘要:目前,著名的社区问答网站Quora上出现一个很火的讨论:你调试过最难的Bug是什么?大家纷纷留言,把自己最痛苦的一次调试经验写下来. 相信每位程序员都有过一段不堪回首地Bug调试经历,程序员一听 ...
- 使用ffmepg的lib库调试,debug版本下调试无问题,但release版本会出现跑飞的现象
如题(“使用ffmepg的lib库调试,debug版本下调试无问题,但release版本会出现跑飞的现象”). 今天使用ffmpeg进行宿放和颜色格式转换,很简单的代码,却折腾了我一天,这里说来就气啊 ...
- 论 BUG调试与(程序猿)初学者
作为一枚程序猿,BUG调试是最基本的技能,对于初学者更是重中之重.个人而言,要想为自己的程序猿生涯更上一层楼,就得知道什么是BUG调试,而且还必须知道怎么调好BUG.那么BUG究竟是什么呢?在我之前的 ...
随机推荐
- Bug定级实例
*1级,**系统崩溃* *定义:*严重阻碍测试和开发工作 *对应**优先级**:**最高* *具体可分为:* 1.功能完全没有实现 2.应用闪退/崩溃无法运行 3*.应用必现安全模式,无法运行* 4. ...
- Java 使用 slf4j + log4j 写日志
没有SpringBoot等框架的情况下 pom.xml: <properties> <slf4j.version>1.7.26</slf4j.version> &l ...
- HDU - 1711:Number Sequence (KMP模板)
原题链接 KMP模板:AC,858ms,13112KB内存 消耗太大了 #include<bits/stdc++.h> using namespace std; using namespa ...
- 一、@Configuration、@Conponent 、@ComponentScan 注解等
一句话概括 区别: @Configuration 中所有带 @Bean 注解的方法都会被动态代理,因此调用该方法返回的都是同一个实例.2. 可以直接调用方法,不需要 @Autowired 注入后使用. ...
- C# 加解密
1. Md5 /// <summary> /// 不可逆加密 /// 1 防止被篡改 /// 2 防止明文存储 /// 3 防止抵赖,数字签名 /// </summary> ...
- Feign源码解析7:nacos loadbalancer不支持静态ip的负载均衡
背景 在feign中,一般是通过eureka.nacos等获取服务实例,但有时候调用一些服务时,人家给的是ip或域名,我们这时候还能用Feign这一套吗? 可以的. 有两种方式,一种是直接指定url: ...
- DC - 设计和工艺数据
环境建立命令与变量 综合主要的三部分:RTL\目标工艺库\约束文件 DC综合过程中timing > area,在时序满足的条件下进行面积优化 RTL一般会映射为standcell(与非门),需要 ...
- Linux 中常用的基础命令
by emanjusaka from https://www.emanjusaka.top/2024/01/linux-base-command 彼岸花开可奈何 本文欢迎分享与聚合,全文转载请留下原文 ...
- [转帖]Linux 下rsync命令详细整理
https://blog.csdn.net/weixin_44052462/article/details/116134761 rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面 ...
- [转帖]Docker与k8s的恩怨情仇(四):云原生时代的闭源落幕
https://zhuanlan.zhihu.com/p/388840887 在本系列前几篇文章中,我们介绍了从Cloud Foundry到Docker等PaaS平台的发展迭代过程.今天我们继续来为大 ...