当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Python利用逻辑回归模型解决MNIST手写数字识别问题详解(3)

    栏目:Linux/apache问题 时间:2020-01-14 20:19

    从每轮训练结果可以看出损失在逐渐下降,准确率在逐步上升。

    结果预测

    使用训练好的模型对测试集中的数据进行预测,即将mnist.test.images数据带入去求pred的值。

    为了使结果更便于显示,可以借助plot函数库将图片数据显示出来,并配以文字label与predic的值。首先通过plt.gcf()得到一副图像资源并设置其大小。再通过plt.subplot(5,5,index+1)函数将其划分为5×5个子图,遍历第index+1个子图,分别将图像资源绘制到子图,通过set_title()设置每个子图的title显示内容。子图绘制结束后显示整个图片,并调用函数传入图片、标签、预测值等参数。

    prediction=ss.run(tf.argmax(pred,1),feed_dict={x:mnist.test.images})
     
    def show_result(images,labels,prediction,index,num=10):   #绘制图形显示预测结果
      pic=plt.gcf()                      #获取当前图像
      pic.set_size_inches(10,12)               #设置图片大小
      for i in range(0,num):
        sub_pic=plt.subplot(5,5,i+1)            #获取第i个子图
        #将第index个images信息显示到子图上
        sub_pic.imshow(np.reshape(images[index],(28,28)),cmap='binary') 
        title="label:"+str(np.argmax(labels[index]))    #设置子图的title内容
        if len(prediction)>0:
          title+=",predict:"+str(prediction[index])
          
        sub_pic.set_title(title,fontsize=10)
        sub_pic.set_xticks([])               #设置x、y坐标轴不显示
        sub_pic.set_yticks([])
        index+=1
      plt.show()
    show_result(mnist.test.images,mnist.test.labels,prediction,10)

    运行结果如下,可以看到预测的结果大多准确

    更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

    希望本文所述对大家Python程序设计有所帮助。