mnist手寫數字方法一些函式解釋
mnist_conv
1.sess
張量需要用sess.run(Tensor)來得到具體的值 需要加sess = tf.InteractiveSession() 使用sess.session()的時候採用 with sess.session() as sess 可以防止會話資源洩露
2.tf.matmul是矩陣的乘法
tf.multiply是矩陣的點乘
3.tf.nn.softmax()
tf.nn nn 是神經網路的縮寫。 softmax是其中一種操作,計算softmax的啟用 類似的還有tf.nn.conv2d/tf.nn.relu 應用relu函式等等
4.tf.truncated_normal
tf.truncated_normal(shape, mean, stddev) :shape表示生成張量的維度,mean是均值,stddev是標準差。這個函式產生正太分佈,均值和標準差自己設定。這是一個截斷的產生正太分佈的函式,就是說產生正太分佈的值如果與均值的差值大於兩倍的標準差,那就重新生成。和一般的正太分佈的產生隨機資料比起來,這個函式產生的隨機數與均值的差距不會超過兩倍的標準差,但是一般的別的函式是可能的。
5.tf.Variabl
在TensorFlow的世界裡,變數的定義和初始化是分開的,所有關於圖變數的賦值和計算都要通過tf.Session的run來進行。想要將所有圖變數進行集體初始化時應該用tf.global_variables_initializer
6.tf.reshape
將tensor轉換為引數shape的形式 形狀發生變化的原則時陣列元素的個數是不能發生改變的,否則出錯 -1的應用:在不知道填什麼數字的情況下,填寫-1,由python自己計算出這個值,但只能出現一個-1
>>>d = a.reshape((2,4))
>>>d
array([[1, 2, 3, 4],
[5, 6, 7, 8]])
>>>f = a.reshape((2,2,2))
>>>f
array([[[1, 2],
[ 3, 4]],
[[5, 6],
[7, 8]]])
7.tf.argmax
tensorflow呼叫np中的np.argmax 作用是,返回最大值所在下標。有時需注意軸的axis的問題 tf.argmax(y_,1)是在x軸上進行的比較
8.tf.equal
tf.equal(A, B)是對比這兩個矩陣或者向量的相等的元素,如果是相等的那就返回True,反正返回False,返回的值的矩陣維度和A是一樣的
>>>import tensorflow as tf
>>>import numpy as np
A = [[1,3,4,5,6]]
B = [[1,3,4,3,2]]
with tf.Session() as sess:
print(sess.run(tf.equal(A, B)))
output: [[ True True True False False]]
9.accuracy.eval
等同於sess.run()