• 软工划水日报-模型预测 4/22


    今天来编写预测程序,代码如下:

    import paddle
    import paddle.fluid as fluid
    from PIL import Image
    import numpy as np
    
    paddle.enable_static()
    
    
    # 创建执行器
    place = fluid.CPUPlace()
    exe = fluid.Executor(place)
    
    
    # 保存预测模型路径
    save_path = 'infer_model/'
    # 从模型中获取预测程序、输入数据名称列表、分类器
    [infer_program, feeded_var_names, target_var] = fluid.io.load_inference_model(dirname=save_path, executor=exe)
    
    
    # 预处理图片
    def load_image(file):
        images = Image.open(file)
        # 统一图像大小
        images = images.resize((224, 224), Image.ANTIALIAS)
        # 转换成numpy值
        images = np.array(images).astype(np.float32)
        # 转换成CHW
        images = images.transpose((2, 0, 1))
        # 转换成BGR
        images = images[(2, 1, 0), :, :] / 255.0
        images = np.expand_dims(images, axis=0)
        return images
    
    
    # 获取图片数据
    img = load_image('images/0c387b80-6b69-4b54-9ec5-e2ebdabdff83___Rutg._HL 3706.JPG')
    
    # 执行预测
    result = exe.run(program=infer_program,
                     feed={feeded_var_names[0]: img},
                     fetch_list=target_var)
    
    # 显示图片并输出结果最大的label
    lab = np.argsort(result)[0][0][-1]
    lab2 = np.argsort(result)[0][0][-2]
    lab3 = np.argsort(result)[0][0][-3]
    lab4 = np.argsort(result)[0][0][-4]
    print('预测结果标签为:%d,概率为:%f' % (lab, result[0][0][lab]))
    print('预测结果标签为:%d,概率为:%f' % (lab2, result[0][0][lab2]))
    print('预测结果标签为:%d,概率为:%f' % (lab3, result[0][0][lab3]))
    print('预测结果标签为:%d,概率为:%f' % (lab4, result[0][0][lab4]))

    我们来看看效果:

  • 相关阅读:
    java中tif转png
    HTTP服务器、WEB服务器、应用服务器
    word将编号转成普通文本
    浏览新闻常用单词
    手机端搜索的回车事件
    C#(winform)的label自动换行
    oracle for update wait 解析
    java8 新特性parallelStream 修改默认多线程数量
    ArcObjects您必须有许可证才能使用此ActiveX控件
    图灵社区电子书 全高清可编辑 内含多种格式 [珍藏]
  • 原文地址:https://www.cnblogs.com/Sakuraba/p/14910078.html
Copyright © 2020-2023  润新知