神經網路基礎 人工智慧實踐

2021-08-25 11:18:47 字數 3405 閱讀 1263

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權值,從而使其對某一些訓練集合產生正確的輸出。首先簡要介紹下神經網路。神經網路的每個單元如下 其對應的公式如...