一、初始化為0
import numpy as np
layers_dim = [10,5,2,1]
def initialize_zeros(layers_dim):
'''引數:
輸入:lays_dims 列表,儲存的是每層的節點數量,layers_dim[0]是輸入x的數量,layers_dim[1]是第一層的節點數量
w1 :(layers_dim[1],layers_dim[0])
b1 : (layers_dim[1],1)
w2 : (layers_dim[2],layers_dim[1])
b2 : (layers_dim[1],1)
w3 : (layers_dim[3],layers_dim[2])
b3 : (layers_dim[3],1)
wl : (layers_dim[l],layers_dim[l-1])
bl : (layers_dim[l],1)
:return:parameters 字典,儲存了w b 引數
'''parameters = {} #存w,b這些引數
l = len(layers_dim) # l為神經網路的引數
for l in range(1,l):
parameters["w" + str(l)] = np.zeros(layers_dim[l],layers_dim[l-1]) # 注意parameters初始化的時候,不要用{},要用
parameters["b" + str(l)] = np.zeros(layers_dim[l],1)
return parameters
二、隨機初始化
def initialize_random(layers_dim):
'''引數:
輸入:lays_dims 列表,儲存的是每層的節點數量,layers_dim[0]是輸入x的數量,layers_dim[1]是第一層的節點數量
w1 :(layers_dim[1],layers_dim[0])
b1 : (layers_dim[1],1)
w2 : (layers_dim[2],layers_dim[1])
b2 : (layers_dim[1],1)
w3 : (layers_dim[3],layers_dim[2])
b3 : (layers_dim[3],1)
wl : (layers_dim[l],layers_dim[l-1])
bl : (layers_dim[l],1)
:return:parameters 字典,儲存了w b 引數
'''parameters = {} # 存w,b這些引數
l = len(layers_dim) # l為神經網路的引數
for l in range(1, l):
parameters["w" + str(l)] = np.random.randn((layers_dim[l], layers_dim[l - 1])) * 10# 注意parameters初始化的時候,不要用{},要用
parameters["b" + str(l)] = np.zeros(([l], 1)) #注意b還是初始化為0
return parameters
三、 梯度抑制初始化
def initialize_parameters_he(layers_dims):
'''引數:
輸入:lays_dims 列表,儲存的是每層的節點數量,layers_dim[0]是輸入x的數量,layers_dim[1]是第一層的節點數量
w1 :(layers_dim[1],layers_dim[0])
b1 : (layers_dim[1],1)
w2 : (layers_dim[2],layers_dim[1])
b2 : (layers_dim[1],1)
w3 : (layers_dim[3],layers_dim[2])
b3 : (layers_dim[3],1)
wl : (layers_dim[l],layers_dim[l-1])
bl : (layers_dim[l],1)
:return:parameters 字典,儲存了w b 引數
'''parameters = {} # 存w,b這些引數
l = len(layers_dim) # l為神經網路的引數
for l in range(1, l):
parameters["w" + str(l)] = np.random.randn((layers_dim[l], layers_dim[l - 1])) * np.sqrt(2/layers_dim[l-1]) # 注意parameters初始化的時候,不要用{},要用
parameters["b" + str(l)] = np.zeros(([l], 1)) # 注意b還是初始化為0
return parameters
初始化三種方式
陣列的初始化方式總共有三種 靜態初始化 動態初始化 預設初始化。下面針對這三種方式分別講解。1.靜態初始化 除了用new關鍵字來產生陣列以外,還可以直接在定義陣列的同時就為陣列元素分配空間並賦值。示例7 4 靜態初始化陣列 inta 靜態初始化基本型別陣列 man mans 靜態初始化引用型別陣列 ...
陣列的三種初始化方式
陣列的初始化方式總共有三種 靜態初始化 動態初始化 預設初始化。靜態初始化 除了用new關鍵字來產生陣列以外,還可以直接在定義陣列的同時就為陣列元素分配空間並賦值。eg int arr int arr new int 注意 1.new int 3 錯誤 2.int arr arr 錯誤動態初始化 陣...
C 初始化陣列的三種方式
對於一維陣列 using system using system.data using system.configuration using system.web using system.web.security using system.web.ui using system.web.ui.we...