初識Tensorflow 數字識別MNIST

2021-08-20 17:21:42 字數 3380 閱讀 7489

整體流程:

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...