好久沒有用到tensorflow了,把機器學習和深度學習扔了有一年了,今天撿起來發現自己還是如此有興趣,決定從頭開始學習的過程中來重新撿起快遺忘的知識。
首先開始 從mnist手寫識別開始,我是通過tensorflow中文社群的教程學習的,總結一下這個過程中遇到的問題。
tensorflow已經出到2.4了,我先從1.15版本開始,畢竟2.x大的版本公升級變動很大,還沒有好好看,所以還是選擇比較好入手的1.x開始學習。
2.提取碼:zdqz
from tensorflow_core.examples.tutorials.mnist import input_data
這裡就全部準備好了,就開始通過教程學習擼**了
import tensorflow as tf
from tensorflow_core.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets(
'mnist_dataset/'
, one_hot=
true
)#將每張(28x28)按照相同方式展開成乙個向量(28x28=784)
#展平的數字片段會丟失的二維結構資訊,所以這個方式不太理想
x = tf.placeholder(
'float',[
none
,784])
w = tf.variable(tf.zeros(
[784,10
]))b = tf.variable(tf.zeros([10
]))#y=softmax(x*w+b)
y = tf.nn.softmax(tf.matmul(x,w)
+b)#y_為實際分布,y為**分布
y_ = tf.placeholder(
"float",[
none,10
])#交叉熵
cross_entropy =
-tf.reduce_sum(y_*tf.log(y)
)#步長為0.01的隨機梯度下降
train_step = tf.train.gradientdescentoptimizer(
0.01
).minimize(cross_entropy)
#初始化,啟動
init = tf.initialize_all_variables(
)sess = tf.session(
)sess.run(init)
#訓練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,
"float"))
print
('accuracy is: '
, sess.run(accuracy,feed_dict=
))
這個手寫識別的程式主要用到了softmax回歸和隨機梯度下降的方法,得到了92%左右的準確度,可以說這個識別率還是很低的,接下來一篇要開始通過卷積神經網路來提高手寫識別準確度。
這裡主要介紹了手寫識別的方法流程和程式設計時遇到的一些麻煩問題,對這之中用到的方法原理沒有介紹,有機會再寫一下方法原理介紹。
人工智慧入門學習教程
兒童作為人工智慧時代的 原住民 他們接觸人工智慧的時間越來越早,程度也越來越深。人工智慧教育對於兒童的教育和成長有著重要的潛在應用價值,格物斯坦小坦克認為準確認識和把握人工智慧時代對於兒童發展的影響,思考學前教育的應變之策,對於推動人工智慧在學前教育領域的理論研究與實踐應用,保護兒童身心的健康發展具...
Keras入門實戰(1) MNIST手寫數字分類
目錄 1 首先我們載入keras中的資料集 2 網路架構 3 選擇編譯 compile引數 4 準備影象資料 5 訓練模型 6 測試資料 前面的部落格中已經介紹了如何在ubuntu下安裝keras深度學習框架。現在我們使用 keras 庫來學習手寫數字分類。我們這裡要解決的問題是 將手寫數字的灰度影...
人工智慧入門01 什麼是人工智慧
圖靈測試 turing test 由艾倫 圖靈 alan turing 在1950年發明,指測試者與被測試者 乙個人和一台機器 隔開的情況下,通過一些裝置 如鍵盤 向被測試者隨意提問。測試滿足三個條件 進行多次測試後,如果機器讓平均每個詢問者做出超過30 的誤判,那麼這台機器就通過了測試,並被認為具...