1. 程式人生 > >mnist手寫數字方法一些函式解釋

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()