1. 程式人生 > >安裝tensorflow,執行MNIST示例

安裝tensorflow,執行MNIST示例

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的理解。