【深度学习实践】手写数字识别任务(附:No module named“paddle”报错、PEP 8: E402 module level import ...报错、未显示图片的解决办法)

一、摘要 

        近期本人在研究PaddlePaddle,根据官网的操作步骤进行安装后还是会出现一些问题,已经整理成如下的博文,如有需要请自取。

Windows虚拟机下安装PaddlePaddle(附报错ImportError解决方法)_圈圈∞的博客-CSDN博客我在安装前准备了一台windows云主机,为了方便大家安装,在引用官网上的教程的同时配合本人安装时的安装步骤进行注释详解。因为我在验证安装时,我并不是一次性就安装成功的,报错是“ImportError: DLL load failed while importing libpaddle: 找不到指定的模块。https://blog.csdn.net/qq_36344652/article/details/132301364?spm=1001.2014.3001.5502在安装完PaddlePaddle后,本人继续开展深度学习的实践,跟着PaddlePaddle官网(链接如下)中手写数字识别任务进行实践,只是我的实践过程中还是遇到了问题。因此,整理这篇博文,为了记录下自己的实践过程以自用,同时也希望帮助需要的你。

10分钟快速上手飞桨-使用文档-PaddlePaddle深度学习平台从完成一个简单的『手写数字识别任务』开始,可快速了解深度学习模型开发的大致流程,并初步掌握飞桨框架 API 的使用方法。 如果已经安装好飞桨那么可以跳过此步骤。飞桨支持很多种安装方式,这里介绍其中一种icon-default.png?t=N7T8https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/beginner/quick_start_cn.html

二、实践过程

步骤一:安装python的matplotlib 库和 numpy 库

# 使用 pip 工具安装 matplotlib 和 numpy
! python3 -m pip install matplotlib numpy -i https://mirror.baidu.com/pypi/simple

📑我使用的是python,命令行修改为(如图):

python -m pip install matplotlib numpy -i https://mirror.baidu.com/pypi/simple

步骤二:pycharm创建python文件

源码
import paddle
import numpy as np
from paddle.vision.transforms import Normalize

transform = Normalize(mean=[127.5], std=[127.5], data_format='CHW')
# 下载数据集并初始化 DataSet
train_dataset = paddle.vision.datasets.MNIST(mode='train', transform=transform)
test_dataset = paddle.vision.datasets.MNIST(mode='test', transform=transform)

# 模型组网并初始化网络
lenet = paddle.vision.models.LeNet(num_classes=10)
model = paddle.Model(lenet)

# 模型训练的配置准备,准备损失函数,优化器和评价指标
model.prepare(paddle.optimizer.Adam(parameters=model.parameters()), 
              paddle.nn.CrossEntropyLoss(),
              paddle.metric.Accuracy())

# 模型训练
model.fit(train_dataset, epochs=5, batch_size=64, verbose=1)
# 模型评估
model.evaluate(test_dataset, batch_size=64, verbose=1)

# 保存模型
model.save('./output/mnist')
# 加载模型
model.load('output/mnist')

# 从测试集中取出一张图片
img, label = test_dataset[0]
# 将图片shape从1*28*28变为1*1*28*28,增加一个batch维度,以匹配模型输入格式要求
img_batch = np.expand_dims(img.astype('float32'), axis=0)

# 执行推理并打印结果,此处predict_batch返回的是一个list,取出其中数据获得预测结果
out = model.predict_batch(img_batch)[0]
pred_label = out.argmax()
print('true label: {}, pred label: {}'.format(label[0], pred_label))
# 可视化图片
from matplotlib import pyplot as plt
plt.imshow(img[0])
正确的运行结果

三、过程中遇到的问题

3.1 No module named“paddle”等import带来的问题

3.1.1 报错截图

3.1.2 解决过程

  • 打开项目的解释器,发现需要import的包不在列表里;

  • Add interpreter时无法勾选“Inherit global site-packages”;

  • 我的处理办法:【New Project】—勾选【Inherit global site-packages】,发现解释器中已包含我所需要的paddle、numpy等包,问题解决,运行也无报错。但是出现“PEP 8: E402 module level import not at top of file”告警,处理方法见本文3.2。

3.2 PEP 8: E402 module level import not at top of file

3.2.1 告警截图

3.2.2 解决过程

  • 此告警(见告警截图)的意思是“from matplotlib import pyplot as plt”应该与其他的import一起放在代码的最前面。
  • 将“from matplotlib import pyplot as plt”与其他import一起后,告警解除。

3.3 未显示图片

3.3.1 运行结果

3.3.2 问题

问题❓:代码中包含“plt.imshow(img[0])”,但是,结果未显示图片(如下)

3.3.3 解决过程

  • 导入pylab包,在代码首段增加“import pylab”;

​​​​

  • 在“plt.imshow(img[0])”后,增加一行代码“pylab.show()”,运行结果如下。

-------------------------------------------------------------END--------------------------------------------------------------

整理不易,需要大家的👍鼓励和支持,谢谢🌹

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值