1. 程式人生 > 其它 >第二講--神經網路優化_神經網路複雜度

第二講--神經網路優化_神經網路複雜度

技術標籤:Tensorflow神經網路tensorflow

1、補充幾個函式

tf.where() --- 條件語句真返回A,條件語句假返回B

tf.where(條件語句,AB)

示例:

import tensorflow as tf
a = tf.constant([1,2,3,1,1])
b = tf.constant([0,1,3,4,5])
c = tf.where(tf.greater(a,b),a,b) #若 a > b,返回a對應位置的元素,否則返回b對應位置的元素
print("c:",c)

執行結果:
c: tf.Tensor([1 2 3 4 5], shape=(5,), dtype=int32)

np.random.RandomState.rand(維度) --- 返回一個【01)之間的隨機數。維度為空,返回標量

示例:

import numpy as np
rdm = np.random.RandomState(seed = 1) # seed = 常數保證每次生成隨機數相同
a = rdm.rand()  # 返回一個隨機標量
b = rdm.rand(2,3)   # 返回維度為2行3列隨機數矩陣
print("a:",a)
print("b:",b)

執行結果:
a: 0.417022004702574
b: [[7.20324493e-01 1.14374817e-04 3.02332573e-01]
 [1.46755891e-01 9.23385948e-02 1.86260211e-01]]

np.vstack(陣列1,陣列2) --- 將兩個陣列按垂直方向疊加

示例:

import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,7])
c = np.vstack((a,b))
print("c:\n",c)

執行結果:
c:
 [[1 2 3]
 [4 5 7]]

np.mgrid[ ] .ravel() np.c_[ ]---- 3個常一起使用,可生成網格座標點

np.mgrid[ 起始值:結束值:步長,起始值:結束值:步長,。。。]

-- 返回若干組維度相同的等差陣列;

-- 每組有起始值,結束值,步長;

-- 多組起始值,結束值,步長中間用逗號隔開

-- 【起始值,結束值)前閉後開區間

x .ravel() -- 將x變為一維陣列,相當於“把.前的變數x拉直”

np.c_[陣列1陣列2,。。。] -- 把陣列點配對後返回

示例:

import numpy as np
x1 = np.mgrid[1:3:1]
y1 = np.mgrid[2:4:0.5]
print("x1:",x1)
print("y1:",y1)

x, y = np.mgrid[1:3:1, 2:4:0.5]   #  1:3:1 對應x的取值,2:4:0.5 對應y的取值範圍,為保證兩個陣列維度相同,均取了2行4列
grid = np.c_[x.ravel(), y.ravel()]
print("x:\n", x)
print("y:\n", y)
print("x_ravel:",x.ravel())   # 將x變為一維陣列,相當於“把 .前的變數x拉直”
print("y_ravel:",y.ravel())
print("grid:\n",grid)            # 將 x.ravel(), y.ravel()配對

x1: [1 2]
y1: [2.  2.5 3.  3.5]
x:
 [[1. 1. 1. 1.]
 [2. 2. 2. 2.]]
y:
 [[2.  2.5 3.  3.5]
 [2.  2.5 3.  3.5]]
x_ravel: [1. 1. 1. 1. 2. 2. 2. 2.]
y_ravel: [2.  2.5 3.  3.5 2.  2.5 3.  3.5]
grid:
 [[1.  2. ]
 [1.  2.5]
 [1.  3. ]
 [1.  3.5]
 [2.  2. ]
 [2.  2.5]
 [2.  3. ]
 [2.  3.5]]

2神經網路(NN)複雜度

  • 神經網路(NN)複雜度:多用NN層數和NN引數的個數表示。

空間複雜度

  • 層數= 隱含層的層數+ 1個輸出層

下圖為2層NN

  • 總引數= W + 總b

下圖總引數3x4+4 + 4x2+2 =26

第1層第2層

因輸入層僅輸入資料,未涉及運算,故在統計神經網路層數時,不算輸入層。

時間複雜度:

  • 乘加運算次數

下圖3x4 + 4x2 =20

第1層第2層