首页 > 其他分享 >手写数字识别-paddle版

手写数字识别-paddle版

时间:2023-04-08 23:56:16浏览次数:51  
标签:paddle predictor file output input 手写 识别 model

平台

https://www.paddlepaddle.org.cn/

环境变量

# 路径
data_dir = '../data'
model_dir = 'inference_model'
base_dir = '{}/{}'.format(data_dir, model_dir)

# 模型名称
model_name = 'minist'
model_file = '{}/{}'.format(base_dir, model_name)
model_dynamic_file = '{}/{}/{}'.format(data_dir,'dynamic_model', model_name)

加载模型,并推理

import paddle
import numpy as np
# 引用 paddle inference 预测库
import paddle.inference as paddle_infer
from paddle.vision.transforms import Normalize


def main():
    # 归一化函数,对[0-255]数据进行归一化,这样好处理
    transform = Normalize(mean=[127.5], std=[127.5], data_format='CHW')
    test_dataset = paddle.vision.datasets.MNIST(mode='test', transform=transform)

    # 设置输入
    fake_input = np.asarray(test_dataset[1][0]).reshape([1,1,28,28])
#     print(fake_input)
    
    # 设置Config
    config = set_config()

    # 创建Predictor
    predictor = paddle_infer.create_predictor(config)

    # 获取输入的名称
    input_names = predictor.get_input_names()
    input_tensor = predictor.get_input_handle(input_names[0])

    # 设置输入
#     fake_input = np.random.randn(1,784).astype("float32")
    input_tensor.copy_from_cpu(fake_input)

    # 运行predictor
    predictor.run()

    # 获取输出
    output_names = predictor.get_output_names()
    output_tensor = predictor.get_output_handle(output_names[0])
    output_data = output_tensor.copy_to_cpu() # numpy.ndarray类型
    print("输出的形状如下: ")
    print(output_data.shape)
    print(output_data.argmax())

def set_config():
    pdmodel_file = '{}.pdmodel'.format(model_file)
    pdiparams_file = '{}.pdiparams'.format(model_file)
    print('模型: {}'.format(pdmodel_file))
    config = paddle_infer.Config(pdmodel_file, pdiparams_file)
    config.disable_gpu()
    return config

if __name__ == "__main__":
    main()

可视化图片

import paddle
# 可视化图片
from matplotlib import pyplot as plt

test_dataset = paddle.vision.datasets.MNIST(mode='test')
# 从测试集中取出一张图片
img, label = test_dataset[1]
print(img)
plt.imshow(img)
plt.show()

image

标签:paddle,predictor,file,output,input,手写,识别,model
From: https://www.cnblogs.com/jiftle/p/17299609.html

相关文章

  • AI开发实践:关于停车场中车辆识别与跟踪
    摘要:本案例我们使用FairMOT进行车辆检测与跟踪、yolov5进行车牌检测、crnn进行车牌识别,在停车场入口、出口、停车位对车辆进行跟踪与车牌识别,无论停车场路线多复杂,小车在你掌控之中!本文分享自华为云社区《AI寻车》,作者:杜甫盖房子。本案例我们使用FairMOT进行车辆检测与跟踪、yolov5......
  • RM-对装甲板灯条进行识别代码分析
    最近要完成装甲板灯条识别的任务,但我本身对于OpenCV的了解还是甚微,所以只能是借鉴他人的代码并加以自身的理解。这里我借鉴的是https://blog.csdn.net/weixin_64054906/article/details/126674493这里我逐段加以自己的分析。1.引用头文件#include"stdio.h"#include<iostream>......
  • 基于simulink的车辆坡度与质量识别模型,扩展卡尔曼滤波,估计曲线与实际误差合理
    基于simulink的车辆坡度与质量识别模型,扩展卡尔曼滤波,估计曲线与实际误差合理YID:8572645488015821......
  • 【paddlespeech】win执行sh脚本
    paddlespeech1.环境配置按照:https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/docs/source/install_cn.md问题condacreate-p在桌面目录执行了condacreate-ppaddlespeech2python=3.7,结果创建了一个没有名字的环境,如下:激活:要移除这个环境,不能使用condare......
  • vue 手写分页
       data:{        crossing_status:CROSSING_STATUS,        crossing_list:[],        time:null,        log:{          page:1,          pages:......
  • 基于模板和形态学处理的车牌检测分割和识别matlab仿真,可以识别其中的一个英文字母和
    1.算法描述       车牌识别系统(VehicleLicensePlateRecognition,VLPR)是计算机视频图像识别技术在车辆牌照识别中的一种应用。车牌识别在高速公路车辆管理中得到广泛应用,电子收费(ETC)系统中,也是结合DSRC技术识别车辆身份的主要手段。        车牌识别技术要......
  • m基于HMM和博弈模型的LSTM互联网情感词性分类识别matlab仿真
    1.算法描述        传统的情感分析研究大多立足于解决主观性文本的情感分类问题,面向复杂交互式文本的情感演化分析却力所不逮.本文以天涯论坛短文本中文在线评论为研究对象,首先提出一种高效的情感计算框架捕捉在线评论所蕴含的情感倾向;然后将情感计算和博弈论相结合提......
  • 保护隐私安全,移动端生物识别技术成新宠
    移动信息技术的不断发展,越来越多的人使用手机进行日常生活和工作中的各种操作,如支付、网购、社交等。这也带来了移动安全问题的挑战。为了解决这些问题,移动端生物识别技术应运而生,成为当前移动安全技术的新宠。一、生物识别技术的基本原理生物识别技术是指通过对人体生理特征或......
  • 如何在unity中手写一个四叉树地形lod系统(二)
    在根据四叉树节点创建了1365个地形分块网格并保存到本地后,我们接下来要在游戏运行的过程中动态地显示所需的网格,这是最关键的一步。如何根据摄像机位置动态地选择地形块?这其中体现了由整体到局部,从简单到复杂的原则。0、我们首先创建三个缓存列表。1、我们先......
  • 转载自团队博客:基于深度学习的人脸识别会议签到系统
    电梯演讲:https://www.bilibili.com/video/BV1kc411W7w4?t=9.9原型:1,主界面  2,会议管理  3,人员管理  4,会议室管理......