整體流程:
1.定義演算法公式
2.定義loss 選定優化器,並制定優化器優化loss
3.迭代資料進行訓練
4.在測試集或驗證集上對準確率進行測評
首先匯入tensorflow 與mnist的input-data 用來獲取traning test 包
from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf
mnist = input_data.read_data_sets('./mnist_data', one_hot=true)
註冊預設的tensorflow會話
sess =tf.interactivesession()
定義輸入x 為placeholder佔位符
x = tf.placeholder(tf.float32, [none, 784])
定義 權重 w 偏置值b
w = tf.variable(tf.zeros([784, 10]))
b = tf.variable(tf.zeros([10]))
定義y的計算函式 用sotfmax regression演算法
y = softmax(wx + b)
y = tf.nn
.softmax(tf.matmul(x, w) + b)
定義損失函式cross_entropy
cross_entropy 通常用來處理分類問題
y_ = tf.placeholder(tf.float32, [none, 10])
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
定義優化演算法
train_step = tf.train
.gradientdescentoptimizer(0.5).minimize(cross_entropy)
初始化所有變數
sess.run(tf.global_variables_initializer())
迭代 train_step 演算法 將batch_xs batch_ys feed給佔位符 x y_
for i in range(1000):
batch_xs, batch_ys = mnist.train
.next_batch(100)
sess.run(train_step, feed_dict=)
檢驗是否正確的**
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
**準確率
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print(sess.run(accuracy,feed_dict=))
from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf
mnist = input_data.read_data_sets('./mnist_data', one_hot=true)
# 註冊預設的tensorflow會話
sess = tf.interactivesession()
# 輸入x placeholder為佔位符
x = tf.placeholder(tf.float32, [none, 784])
# 權重 w 偏置值b
w = tf.variable(tf.zeros([784, 10]))
b = tf.variable(tf.zeros([10]))
# 定義y的計算函式 用sotfmax regression演算法
# y = softmax(wx + b)
y = tf.nn.softmax(tf.matmul(x, w) + b)
#定義損失函式cross_entropy
#cross_entropy 通常用來處理分類問題
y_ = tf.placeholder(tf.float32, [none, 10])
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
# 定義優化演算法
train_step = tf.train.gradientdescentoptimizer(0.5).minimize(cross_entropy)
# 初始化所有變數
sess.run(tf.global_variables_initializer())
# 迭代 train_step 演算法 將batch_xs batch_ys feed給佔位符 x y_
for i in range(1000):
batch_xs, batch_ys = mnist.train.next_batch(100)
sess.run(train_step, feed_dict=)
# 是否正確的**
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
# **準確率
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print(sess.run(accuracy,feed_dict=))
tensorflow中定義的每個公式的計算其實並沒有立刻發生,只有等呼叫run方法並feed資料時計算才會真正的執行。
例如**中的corss_entropy、train_step、accuracy等都是計算圖中的節點,通過run方法執行這些節點來獲取結果`
Tensorflow實現DNN,手寫數字識別
from tensorflow.examples tutorials mnist import input data mnist input data.read data sets g tensorflow data one hot true import tensorflow as tf lear...
教你用TensorFlow實現手寫數字識別
弱者用淚水安慰自己,強者用汗水磨練自己。這段時間因為專案中有一塊需要用到影象識別,最近就一直在煉丹,寶寶心裡苦,但是寶寶不說。能點開這篇文章的朋友估計也已經對tensorflow有了一定了解,至少知道這是個什麼東西,我也就不過多介紹了。實現手寫數字識別幾乎是所有入手影象識別的入門程式了,tensor...
TensorFlow入門MNIST手寫識別
匯入mnist資料集 訓練集有55000個樣本 測試集有10000個樣本 同時驗證集有5000個樣本 每個樣本都有它應標註資訊,即lable from tensorflow.examples.tutorials.mnist import input data mnist input data.rea...