1. 程式人生 > >Android tensorflow 基礎知識學習

Android tensorflow 基礎知識學習

今天記錄下tensorflow的一些基本知識

1.匯入tensorflow 庫,且指令碼中新增執行使用的python環境

 #!/user/bin/env python
import tensorflow as tf    #匯入tensorflow庫

 #匯入 mnist 資料集; 資料在linux 根目錄/data下的mnist資料夾下
from tensorflow.examples.tutorials import mnist
mnist_data = mnist.input_data.read_data_sets('/data/mnist', one_hot=True)

2.常量和變數

y = tf.constant()    #宣告常量,常量是需要初始化的
y = tf.Variable()    #宣告變數,變數是不需要初始化,也不會被編譯器自動初始化
y = tf.placeholder()  # 宣告一個佔位符,就是說這個變數可以在後面進行賦值

init = tf.global_variables_initializer()  #初始化所有的變數
b = tf.Variable([-.3], dtype=tf.float32)        #宣告變數,值為 -0.3 float32 型別

3.執行

sess = tf.Session()   #一個session封裝了TensorFlow執行時的控制和狀態
sess.run(args) #開始執行資料流程 sess.close() #關閉session,否則會出現資源洩露 sess.run(add_and_triple, {a:3, b:4.5}) #第一次引數是輸出的結果,第二個操作是輸入的資料 print(args) #輸出,如果沒有session run,則打印出的僅僅是節點,而不是結果

#其中輸出的結果,其實就是某個節點,該節點有其他節點流入,也是可以看作是對應的操作
為了防止遺漏關閉session,可以使用下面方式

with tf.Session as sess:
     sess.run(args)

4.tensorflow 一些基本型別

tf.float32    、tf.int8    、 tf.int16   、 tf.int32 、 tf.uint8 、 tf.bool 、 
tf.complex64 、 tf.complex128
....

5.基本函式

#陣列宣告
tf.zeros()           #宣告全0陣列
tf.ones()          #宣告全1陣列
tf.fill([2,3],9)    #宣告2行3列的值全為9的陣列
tf.shape()        #張量的維度 幾行幾列

#隨機數宣告
tf.random_normal([2,3],stddev=1,seed=1)  #宣告隨機數,按照正態分佈方式,陣列元素的標準差為1,均值為預設為0

#矩陣操作
tf.matmul()     #矩陣相乘