keras的conv2d類有很多引數,哪些是重要的?應該保留哪些預設值?
tensorflow.keras.layers.conv2d(filters, kernel_size, strides=(1, 1),
padding='valid', data_format=none, dilation_rate=(1, 1),
activation=none, use_bias=true, kernel_initializer='glorot_uniform',
bias_initializer='zeros', kernel_regularizer=none,
bias_regularizer=none, activity_regularizer=none,
kernel_constraint=none, bias_constraint=none)
您可能需要根據(1)資料集的複雜性和(2)神經網路的深度來調整確切的值,建議您從[32,64,128]範圍內的過濾器開始,然後逐漸增加最多為[256、512、1024]。
示例:這是設計cnn架構的常見做法。
model.add(conv2d(32, (3, 3), padding="same", activation="relu"))
model.add(maxpooling2d(pool_size=(2, 2)))
...model.add(conv2d(64, (3, 3), padding="same", activation="relu"))
model.add(maxpooling2d(pool_size=(2, 2)))
...model.add(conv2d(128, (3, 3), padding="same", activation="relu"))
model.add(maxpooling2d(pool_size=(2, 2)))
...model.add(activation("softmax"))
首先必須是乙個奇數整數,何時使用多大的尺寸?如果輸入影象大於128×128,則可以選擇使用大於3的核心大小來(1)學習更大的空間過濾器(2)幫助減小體積。如果影象小於128×128,則考慮使用1×1和3×3。
1×1 ,
3×3 ,
5×5 ,和
7×7
其他網路(例如vggnet)專門使用(3
* 3)的過濾器。更先進的網路體系結構,如resnet和squeezenet設計的結構,是在網路內部,區域性採用不同的尺度(區域性特徵1×1 ,3×3 ,和5×5 ),然後結合輸出。
組合輸出。
通常預設引數是(1 ,
1 )但是有時可能會將其增加到(2 ,
2 )以幫助減小輸出的大小(因為濾波器的步長較大)。
padding引數接收兩個值,valid 或 same,預設值為
valid,一般通常將其設定為same,然後通過以下兩種方法之一來減小體積的空間尺寸:1、最大池化 2、交叉卷積
可選值是channels_last 或者
keras作為高階框架,支援多個深度學習後端。因此,它包括對「最後乙個channels和「第乙個channels」排序的支援。
使用此引數的一般情況:
您正在使用更高解析度的影象,但是細粒度的細節仍然很重要
您正在使用較少的引數構建網路
允許您提供乙個字串,該字串指定要在執行卷積後應用的啟用函式的名稱。
model.add(conv2d(32, (3, 3), activation="relu"))
# 等同於
model.add(conv2d(32, (3, 3)))
model.add(activation("relu"))
引數控制是否將偏移量新增到卷積層。
當使用大型資料集和深度神經網路時,通常必須使用正則化。通常,遇到應用l1或l2正則化的情況—如果發現過擬合的跡象,在網路上使用l2正則化。應用的正則化量是需要針對自己的資料集進行調整的超引數,0.0001-0.001區間是乙個比較適合的初始值。
from tensorflow.keras.regularizers import l2
...model.add(conv2d(32, (3, 3), activation="relu"),
kernel_regularizer=l2(0.0005))
一般為預設值 機器學習學習筆記
2.機器學習書籍 機器學習tom,這個是老經典,就是翻譯欠佳 prml,這個書正版的超貴,但是比較新且系統,可以通過其他途徑搞個副本。3.自己動手編碼實現2 3種經典演算法,比如svm,lr,bpnn等。4.了解spark上目前支援的機器學習方法的用途和用法,這個在日常工作中會用到。知道的多一點,方...
機器學習 學習筆記
關於梯度下降演算法的優化與 會有三種方法優化梯度下降演算法 1.共軛梯度下降法 conjugate 2.變尺度法 bfgs 3.限制變尺度法 l bfgs 這些方法的好處是 1.不用選擇學習速率 2.收斂的速度快,執行效率高 但是她們的缺點在於 實現她們的方法太複雜,所以我們就可以使用語言的內建庫函...
機器學習 學習筆記
監督學習 我們的學習演算法使用的資料是給出正確答案的資料,然後我們執行學習演算法,出更多的正確答案。理解為像深度需學習類似,利用訓練樣本訓練處學習模型,然後用測試樣本對學習到的模型進行檢測,輸出 結果。無監督學習 可以理解為對於學習演算法所使用的資料集並沒有給出正確答案,學習演算法就是要對這資料集進...