安裝tensorflow,執行MNIST示例
阿新 • • 發佈:2019-02-01
1 安裝
在cmd中輸入:
pip install tensorflow
顯示安裝成功,直接在ipython視窗測試:
import tensorflow as tf
2 MINST練習
參考文章:MNIST機器學習入門
但是原封不動複製程式碼執行並不是,經過一番摸索,修改後的整體程式碼如下:
import tensorflow.examples.tutorials.mnist.input_data as input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784,10]))
b = tf.Variable(tf.zeros([10])+0.1)
y = tf.nn.softmax(tf.matmul(x,W) + b)
y_ = tf.placeholder("float", [None,10])
cross_entropy = -tf.reduce_sum(y_*tf.log(y))
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
init = tf.global _variables_initializer()
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={x: batch_xs, y_: batch_ys})
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float" ))
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))
執行結果:0.9152
以上總共修改了四處,我在執行過程也遇到不少坑,總結如下:
1、資料下載引用
一開始是提示物件不存在,逐步往上找,竟然在複製的過程中,突然雙引號變成了中文的,格式錯誤。自己大意的一點是,一直沒有意識到是引號的問題,以為是引入MNIST_data/路徑不對或者我沒有下載好資料集,所以有去專門下載了資料,然後嘗試放了幾個目錄下。。。當然都不對咯,總是反應過來,我擦竟然是引號搗的鬼。
2、全域性變數版本改變問題
initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.
Instructions for updating:
Use `tf.global_variables_initializer` instead.
直接用tf.global_variables_initializer替代即可。
3、初始化問題
在執行for迴圈那段,突然又報錯了,大致看懂了是佔位符的問題,意思是我要先給模型一個非0初始值,不然反向傳播時梯度無法下降。所以,可以將b值加上一個非零小數:b = tf.Variable(tf.zeros([10])+0.1)
4、最後還有一個弱智的坑,print列印要用函式的括號。
小白入門到處是坑,記錄一下,不過這也加深了對softmax和tensorflow的理解。