TensorFlow學習筆記(一) 基本概念

2022-08-12 08:03:15 字數 3095 閱讀 6594

tensorflow學習筆記(一):基本概念

tensorflow用張量這種資料結構來表示所有的資料。用一階張量來表示向量,如:v = [1.2, 2.3, 3.5] ,如二階張量表示矩陣,如:m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]],可以看成是方括號巢狀的層數。

1、編輯器

編寫tensorflow**,實際上就是編寫py檔案,最好找乙個好用的編輯器,如果你用vim或gedit比較順手,那也可以的啦。我們既然已經安裝了anaconda,那麼它裡面自帶乙個還算不錯的編輯器,名叫spyder,用起來和matlab差不多,還可以在右上角檢視變數的值。因此我一直使用這個編輯器。它的啟動方式也很簡單,直接在終端輸入spyder就行了。

2、常量

我們一般引入tensorflow都用語句

import tensorflow as tf

因此,以後文章中我就直接用tf來表示tensorflow了。

在tf中,常量的定義用語句:

a=tf.constant(10)

這就定義了乙個值為10的常量a

3、變數

變數用variable來定義, 並且必須初始化,如:

x=tf.variable(tf.ones([3,3]))

y=tf.variable(tf.zeros([3,3]))

分別定義了乙個3x3的全1矩陣x,和乙個3x3的全0矩陣y,0和1的值就是初始化。

init=tf.initialize_all_variables()

這句可不要忘了,否則會出錯。

4、佔位符

變數在定義時要初始化,但是如果有些變數剛開始我們並不知道它們的值,無法初始化,那怎麼辦呢?

那就用佔位符來占個位置,如:

x = tf.placeholder(tf.float32, [none, 784])

指定這個變數的型別和shape,以後再用feed的方式來輸入值。

5、圖(graph)

如果把下面的python語句改在tf語句,該怎麼寫呢:

x=3

y=2z=x+y

print(z)

定義兩個變數,並將兩個數相加,輸出結果。如果在

tf中直接像上面這樣寫,那就錯了。x,y,z分別是三個tensor物件,物件間的運算稱之為操作(op), tf不會去一條條地執行各個操作,而是把所有的操作都放入到乙個圖(graph)中,圖中的每乙個結點就是乙個操作。然後行將整個graph 的計算過程交給乙個 tensorflow 的session, 此 session 可以執行整個計算過程,比起操作(operations)一條一條的執行效率高的多。

執行**如下:

import  tensorflow as tf

x = tf.variable(3)

y = tf.variable(5)

z=x+y

init = tf.initialize_all_variables()

with tf.session() as sess:

sess.run(init)

print(sess.run(z))

其中sess.run()即是執行,注意要先執行變數初始化操作,再執行運算操作。

session需要先建立,使用完後還需要釋放。因此我們使用with...as..語句,讓系統自動釋放。

例子1:hello world

import tensorflow as tf

word=tf.constant('hello,world!')

with tf.session() as sess:

print(sess.run(word))

例子2:加法和乘法

import tensorflow as tf

a =tf.placeholder(tf.int16)

b =tf.placeholder(tf.int16)

add =tf.add(a, b)

mul =tf.multiply(a, b)

withtf.session() as sess:

print('a+b=',sess.run(add, feed_dict=))

print('a*b=',sess.run(mul, feed_dict=))

此處使用feed_dict以字典的方式對多個變數輸入值。

例子3: 矩陣乘法

import tensorflow as tf

a=tf.variable(tf.ones([3,2]))

b=tf.variable(tf.ones([2,3]))

product=tf.matmul(5*a,4*b)

init=tf.initialize_all_variables()

withtf.session() as sess:

sess.run(init)

print(sess.run(product))

其中product=tf.matmul(5*a,4*b)

也可以改成

product=tf.matmul(tf.mul(5.0,a),tf.mul(4.0,b))

定義變數時,沒有指定資料型別,則預設為float32,因此是5.0而不是5

import tensorflow as tf

a=tf.variable(tf.ones([3,2]))

b=tf.variable(tf.ones([2,3]))

product=tf.matmul(5*a,4*b)

init=tf.initialize_all_variables()

withtf.session() as sess:

sess.run(init)

print(sess.run(product))

其中product=tf.matmul(5*a,4*b)

也可以改成

product=tf.matmul(tf.mul(5.0,a),tf.mul(4.0,b))

定義變數時,沒有指定資料型別,則預設為float32,因此是5.0而不是5

搜尋複製

tensorflow學習筆記(一)

tensorflow是谷歌基於distbelief進行研發的第二代人工智慧學習系統,其命名 於本身的執行原理。tensor 張量 意味著n維陣列,flow 流 意味著基於資料流圖的計算,tensorflow為張量從流圖的一端流動到另一端計算過程。tensorflow是將複雜的資料結構傳輸至人工智慧神...

tensorflow學習筆記 一

constant 生成乙個常量型別的張量 session 生成乙個可運算的會話控制代碼 interactivesession 等價於 sess tf.session 但是結果的執行會有所不同 interactivesession 使用這個需要在執行函式後 eval 才會得到結果 session 使用...

TensorFlow 實戰學習筆記(一)

1.windows 上安裝 tensorflow 流程 對於有英文基礎的朋友,建議直接閱讀官網安裝教程。本答案翻譯自 tensorflow 官網。系統環境要求 windows 上安裝 tensorflow 步驟 安裝 python 開發環境 檢查系統是否已安裝 python 開發環境。如果已安裝,則...