TF之LoR:基于tensorflow利用逻辑回归算LoR法实现手写数字图片识别提高准确率
生活随笔
收集整理的這篇文章主要介紹了
TF之LoR:基于tensorflow利用逻辑回归算LoR法实现手写数字图片识别提高准确率
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
TF之LoR:基于tensorflow利用邏輯回歸算LoR法實現手寫數字圖片識別提高準確率
?
?
目錄
輸出結果
設計代碼
?
?
?
?
輸出結果
?
設計代碼
#TF之LoR:基于tensorflow實現手寫數字圖片識別準確率import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data import numpy as np import matplotlib.pyplot as plt mnist = input_data.read_data_sets('MNIST_data', one_hot=True) print(mnist)#設置超參數 lr=0.001 #學習率 training_iters=100 #訓練次數 batch_size=100 #每輪訓練數據的大小,如果一次訓練5000張圖片,電腦會卡死,分批次訓練會更好 display_step=1#tf Graph的輸入 x=tf.placeholder(tf.float32, [None,784]) y=tf.placeholder(tf.float32, [None, 10])#設置權重和偏置 w =tf.Variable(tf.zeros([784,10])) b =tf.Variable(tf.zeros([10]))#設定運行模式 pred =tf.nn.softmax(tf.matmul(x,w)+b) # #設置cost function為cross entropy cost =tf.reduce_mean(-tf.reduce_sum(y*tf.log(pred),reduction_indices=1)) #GD算法 optimizer=tf.train.GradientDescentOptimizer(lr).minimize(cost) #初始化權重 init=tf.global_variables_initializer() #開始訓練 with tf.Session() as sess: sess.run(init)avg_cost_list=[]for epoch in range(training_iters): #輸入所有訓練數據avg_cost=0.total_batch=int(mnist.train.num_examples/batch_size)for i in range(total_batch): #遍歷每個batch ……if (epoch+1) % display_step ==0: #顯示每次迭代日志print("迭代次數Epoch:","%04d" % (epoch+1),"下降值cost=","{:.9f}".format(avg_cost))avg_cost_list.append(avg_cost)print("Optimizer Finished!")print(avg_cost_list)#測試模型correct_prediction=tf.equal(tf.argmax(pred,1),tf.argmax(y,1))accuracy=tf.reduce_mean(tf.cast(correct_prediction,tf.float32))print("Accuracy:",accuracy.eval({x:mnist.test.images[:3000],y:mnist.test.labels[:3000]}))xdata=np.linspace(0,training_iters,num=len(avg_cost_list)) plt.figure() plt.plot(xdata,avg_cost_list,'r')plt.xlabel('訓練輪數')plt.ylabel('損失函數')plt.title('TF之LiR:基于tensorflow實現手寫數字圖片識別準確率——Jason Niu') plt.show()?
?
總結
以上是生活随笔為你收集整理的TF之LoR:基于tensorflow利用逻辑回归算LoR法实现手写数字图片识别提高准确率的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ML之ECS:利用ECS的PAI进行傻瓜
- 下一篇: DL:基于sklearn的加利福尼亚房价