LeNet网络PaddlePaddle实现3

上一节《LeNet网络PaddlePaddle实现2》
本节介绍如何评估LeNet网络,具体步骤如下:

  • 首先通过模型对象的 load_dygraph() 方法加载保存好的模型参数,通过 Layerset_dict 方法将参数导入到模型中,然后调用模型对象的eval()方法,将模型的算子切换到预测评估模式。
  • 读取测试数据执行网络正向计算,进行评估测试,输出不同 batch 数据下损失值和准确率的平均值
# 评估模型
print("start evaluating...")
with fluid.dygraph.guard():
    # 实例化模型        
    model =LeNet(num_classes=10)
    # 加载模型
    model_dict, _ = fluid.load_dygraph("LeNet")
    model.set_dict(model_dict)

    model.eval() #切换到评估模式

    images = test_images.astype("float32").reshape(-1,1,28,28)
    labels = test_labels.astype("int64").reshape(-1,1)

    images = fluid.dygraph.to_variable(images)
    labels = fluid.dygraph.to_variable(labels)

    logits = model(images)
    
    preds = fluid.layers.softmax(logits)
    losses = fluid.layers.softmax_with_cross_entropy(preds, labels)
    avg_loss = fluid.layers.mean(losses)
    acc  = fluid.layers.accuracy(preds,labels)

    print(logits.shape, preds.shape, losses.shape, acc.shape)
    print("[validation] accuracy:{}; loss:{}".format(acc.numpy(), avg_loss.numpy()))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容