Python高級架構模式知識點總結
1、殘差連接是目前常用的組件,解決了大規模深度學習模型梯度消失和瓶頸問題。
通常,在10層以上的模型中追加殘差連接可能有幫助。
from keras import layers x = ... y = layers.Conv2D(128, 3, activation=’relu’, padding=’same’)(x)y = layers.Conv2D(128, 3, activation=’relu’, padding=’same’)(y)y = layers.MaxPooling2D(2, strides=2)(y) # 形狀不同,要做線性變換:residual = layers.Conv2D(128, 1, strides=2, padding=’same’)(x) # 使用 1×1 卷積,將 x 線性下采樣為與 y 具有相同的形狀 y = layers.add([y, residual])
2、標準化用于使模型看到的不同樣本更相似,有助于模型的優化和泛化。
# Convconv_model.add(layers.Conv2D(32, 3, activation=’relu’))conv_model.add(layers.BatchNormalization()) # Densedense_model.add(layers.Dense(32, activation=’relu’))dense_model.add(layers.BatchNormalization())
3、深度可分離卷積層,在Keras中被稱為SeparableConv2D,其功能與普通Conv2D相同。
但是SeparableConv2D比Conv2D輕,訓練快,精度高。
from tensorflow.keras.models import Sequential, Modelfrom tensorflow.keras import layers height = 64width = 64channels = 3num_classes = 10 model = Sequential()model.add(layers.SeparableConv2D(32, 3,activation=’relu’,input_shape=(height, width, channels,)))model.add(layers.SeparableConv2D(64, 3, activation=’relu’))model.add(layers.MaxPooling2D(2)) model.add(layers.SeparableConv2D(64, 3, activation=’relu’))model.add(layers.SeparableConv2D(128, 3, activation=’relu’))model.add(layers.MaxPooling2D(2)) model.add(layers.SeparableConv2D(64, 3, activation=’relu’))model.add(layers.SeparableConv2D(128, 3, activation=’relu’))model.add(layers.GlobalAveragePooling2D()) model.add(layers.Dense(32, activation=’relu’))model.add(layers.Dense(num_classes, activation=’softmax’)) model.compile(optimizer=’rmsprop’, loss=’categorical_crossentropy’)
Counter實例擴展:
from collections import Counterlist1 = [’a’,’b’,’c’,23,23,’a’,’d’,’b’,’e’]counter1 = Counter(list1)print(counter1)print(counter1[’a’])#1.1.1統計不同單詞的數目print(len(set(list1)))#1.1.2對統計結果進行分組 下面的方法表示分為4組,不填默認全部分組,以列表#存儲,里面元素是tuple對象print(counter1.most_common(4))#1.1.3 elements()獲取Counter()生成對象的所有鍵名,重復的幾個會全部打印# 該方法返回一個迭代器對象keylist = counter1.elements()print(keylist)print(list(keylist))#1.1.4 update(x) 更新計數器 把x的內容加入到原來計數器中#x可以作為字符串,列表,元組,集合,但是不能作為字典,純數字,否則報錯list2 = [’a’,’d’,’f’,’q’,2,3,2,3,4]print(counter1)counter1.update(list2)print(counter1)#1.1.5 substract(x) 更新計數器 把x代表的次數減少1,默認減少1,(通過字典形式指定一次減少的個數)#,不存在則減為-1,依次減,作用與update()相反counter1.subtract(’a’)print(counter1)counter1.subtract([’a’,’b’,2])print(counter1)
到此這篇關于Python高級架構模式知識點總結的文章就介紹到這了,更多相關Python高級架構模式的整理內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: