tensorflow:python中和矩陣有關的乙個模組
nn:神經網路,neural network
階段目標:搭建第乙個神經網路,總結搭建八股。
一、基於tensorflow的nn:用張量表示資料,用計算圖搭建神經網路,用會話執行計算圖,優化線上的權重(引數),得到模型。
二、張量(tensor):多維陣列(列表) 階:張量的維數
維數 階 名字 例子
d 0 標量scalar s=1 2 3
d 1 向量vector v=[1,3,2]
d 2 二維陣列矩陣matrix m=[[1,2],[2,1]]
d n 張量tensor t=........,最開始有n個[
張量可以表示0-n階陣列(列表)
ps:tensorflow的資料型別用的是32位浮點tf.float32 、 tf.int32 ...
import tensorflow as tf #匯入tensorflow模組簡寫為tf
以上描述的就是乙個計算圖,只描述運算過程不敘述運算結果。
三、計算圖:搭建神經網路的計算過程,只搭建不運算。
四、會話:session:執行計算圖中的節點運算
用with結構實現:
with tf.session() as sess:
print sess.run(要計算的結果)
#引入模組
import tensorflow as tf
#定義乙個2階張量等於[[1.0,2.0]]
x = tf.constant([[1.0, 2.0]])
#定義乙個2階張量等於[[3.0],[4.0]]
w = tf.constant([[3.0], [4.0]])
#實現xw矩陣乘法
y=tf.matmul(x,w)
#列印出結果 可以列印出這樣一句話:tensor(「matmul:0」, shape(1,1), dtype=float32),
print y
#執行會話並列印出執行後的結果
#可以列印出這樣的結果:[[11.]]
with tf.session() as sess:
print sess.run(y)
五、神經網路的引數神經網路的引數:是指神經元線上的權重w,用變數表示,一般會先隨機生成這些引數。
生成引數的方法是讓w等於tf.variable,把生成的方式寫在括號裡。 神經網路中常用的生成隨機數/陣列的函式有:
tf.random_normal() 生成正態分佈隨機數
tf.truncated_normal() 生成去掉過大偏離點的正態分佈隨機數
tf.random_uniform() 生成均勻分布隨機數
tf.zeros 表示生成全0陣列
tf.ones 表示生成全1陣列
tf.fill 表示生成全定值陣列
tf.constant 表示生成直接給定值的陣列
舉例① w=tf.variable(tf.random_normal([2,3],stddev=2, mean=0, seed=1))
表示生成正態分佈隨機數,形狀兩行三列,標準差是2,均值是0,隨機種子是1。
② w=tf.variable(tf.truncated_normal([2,3],stddev=2, mean=0, seed=1)),
表示去掉偏離過大的正態分佈,也就是如果隨機出來的資料偏離平均值超過兩個標準差,這個資料將重新生成。
③ w=random_uniform(shape=7,minval=0,maxval=1,dtype=tf.int32,seed=1),
表示從乙個均勻分布[minval maxval)中隨機取樣,注意定義域是左閉右開,即包含minval,不包含maxval。
④ 除了生成隨機數,還可以生成常量。
tf.zeros([3,2],int32)表示生成[[0,0],[0,0],[0,0]];
tf.ones([3,2],int32)表示生成[[1,1],[1,1],[1,1];
tf.fill([3,2],6)表示生成[[6,6],[6,6],[6,6]];
tf.constant([3,2,1])表示生成[3,2,1]。
注意:①隨機種子如果去掉每次生成的隨機數將不一致。
②如果沒有特殊要求標準差、均值、隨機種子是可以不寫的。
注意:
修改vim的配置檔案:
vim ~/.vimrc : 小i進去
我們在vim~/.vimrc 寫入:
set ts=4 表示使tab鍵等效為4個空格
set nu 表示使vim顯示行號 nu是number縮寫
按下esc 輸入:wq 按下enter,即課儲存退出
2:在vim編輯器中執行session()會話時,有時會出現「提示warning」,是因為有的電腦可以支援加速指令,但是執行**時並沒有啟動這些指令。可以把這些「提示warning」暫時遮蔽掉。遮蔽方法為進入主目錄下的bashrc檔案,在bashrc 檔案中加入這樣一句export tf_cpp_min_log_level=2,從而把「提示 warning」等級降低。source 命令用於重新執行修改的初始化檔案,使之立即生效,而不必登出並重新登入。
也可以這麼操作:
進入:vim ~/.bashrc
在最後一行點右鍵 點paste
esc : wq
3:source ~/.bashrc 使之生效
人工智慧和神經網路
人工智慧的發展飛快,這也得益於人工智慧的技術成熟。而人工智慧離不開神經網路,神經網路在人工智慧的發展中也是走過了十分崎嶇的道路,那麼究竟是怎麼一回事呢?我們在這篇文章中給大家介紹一下這個問題。每乙個科學的技術發展程序都是十分相似的,如果我們從歷史來看,就能夠發展一件十分有意思的事情,重大科學的研究往...
人工智慧 深層神經網路
對於人臉識別等應用,神經網路的第一層從原始中提取人臉的輪廓和邊緣,每個神經元學習到不同邊緣的資訊 網路的第二層將第一層學得的邊緣資訊組合起來,形 臉的一些區域性的特徵,例如眼睛 嘴巴等 後面的幾層逐步將上一層的特徵組合起來,形 臉的模樣。隨著神經網路層數的增加,特徵也從原來的邊緣逐步擴充套件為人臉的...
人工智慧04 神經網路
這裡我們集中討論具有可調節權值的tlu網路。網路系統通過不斷調節權值,直到其動作計算表現令人滿意來完成學習。tlu網路稱為神經網路是因為它模仿了生物神經元的一些特性。首先介紹如何訓練單個tlu權值,從而使其對某一些訓練集合產生正確的輸出。首先簡要介紹下神經網路。神經網路的每個單元如下 其對應的公式如...