Relu激活函數(shù)
Relu函數(shù)為f(x)= max(0,x)
1.sigmoid與tanh有飽和區(qū),Relu函數(shù)在x>0時導(dǎo)數(shù)一直是1,因?yàn)樘荻鹊倪B乘表達(dá)式包括各層激活函數(shù)的導(dǎo)數(shù)以及各層的權(quán)重,reLU解決了激活函數(shù)的導(dǎo)數(shù)問題,所以有助于緩解梯度消失,也能在一定程度上解決梯度爆炸,從而加快訓(xùn)練速度。
2.無論是正向傳播還是反向傳播,計算量顯著小于sigmoid和tanh。
from keras.models import Sequential from keras.layers import Dense, Flatten, Dropout from keras.layers.convolutional import Conv2D, MaxPooling2D from keras.utils.np_utils import to_categorical
import numpy as np
seed = 7 np.random.seed(seed) # 創(chuàng)建模型序列 model = Sequential() #第一層卷積網(wǎng)絡(luò),使用96個卷積核,大小為11x11步長為4, 要求輸入的圖片為227x227, 3個通道,不加邊,激活函數(shù)使用relu model.add(Conv2D(96, (11, 11), strides=(1, 1), input_shape=(28, 28, 1), padding='same', activation='relu', kernel_initializer='uniform')) # 池化層 model.add(MaxPooling2D(pool_size=(3, 3), strides=(2, 2))) # 第二層加邊使用256個5x5的卷積核,加邊,激活函數(shù)為relu model.add(Conv2D(256, (5, 5), strides=(1, 1), padding='same', activation='relu', kernel_initializer='uniform')) #使用池化層,步長為2 model.add(MaxPooling2D(pool_size=(3, 3), strides=(2, 2))) # 第三層卷積,大小為3x3的卷積核使用384個 model.add(Conv2D(384, (3, 3), strides=(1, 1), padding='same', activation='relu', kernel_initializer='uniform')) # 第四層卷積,同第三層 model.add(Conv2D(384, (3, 3), strides=(1, 1), padding='same', activation='relu', kernel_initializer='uniform')) # 第五層卷積使用的卷積核為256個,其他同上 model.add(Conv2D(256, (3, 3), strides=(1, 1), padding='same', activation='relu', kernel_initializer='uniform')) model.add(MaxPooling2D(pool_size=(3, 3), strides=(2, 2))) model.add(Flatten()) model.add(Dense(4096, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(4096, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(10, activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy']) model.summary() 參考來源:(https://blog.csdn.net/qq_41559533/article/details/83718778 )
聯(lián)系:highspeedlogic
QQ :1224848052
微信:HuangL1121
郵箱:1224848052@qq.com
網(wǎng)站:http://www.mat7lab.com/
網(wǎng)站:http://www.hslogic.com/
微信掃一掃: