(2) Mnist: LeNet-5, 手寫數(shù)字識(shí)別 baseline

LeNet-5 出自論文 Gradient-Based Learning Applied to Document Recognition,LeCun大佬非常早期的作品,用于手寫字母識(shí)別,在Mnist數(shù)據(jù)集上能夠達(dá)到 98% 以上的準(zhǔn)確率。

LeNet-5

LeNet-5 Structure

Implement in Keras

基于 Keras 實(shí)現(xiàn) LeNet-5,損失函數(shù)使用交叉熵,優(yōu)化器選擇Adam。

def lenet_v5(in_shape):
    in_x = Input(in_shape)
    conv1 = Conv2D(filters=6, kernel_size=(5, 5), padding='valid', activation='tanh')(in_x)
    map1 = MaxPooling2D((2, 2))(conv1)
    conv2 = Conv2D(filters=16, kernel_size=(5, 5), padding='valid', activation='tanh')(map1)
    map2 = MaxPooling2D((2, 2))(conv2)
    mac = Flatten()(map2)
    fc1 = Dense(120)(mac)
    fc2 = Dense(84)(fc1)
    prob = Dense(10, activation='softmax')(fc2)

    lenet = Model(inputs=[in_x], outputs=prob)
    lenet.compile(loss='categorical_crossentropy', optimizer=Adam(), metrics=['accuracy'])
    # lenet.summary()
    return lenet

模型評(píng)估

數(shù)據(jù)讀取的部分,定義在之前的博客 data_loader

from data_loader import get_test, get_train
from model_defination import lenet_v5
from mnist_utils import train_scheduler


def model_evaluate(model, data_list):
    train_img, train_lbl, test_img, test_lbl = data_list
    model.fit(train_img, train_lbl, epochs=16, verbose=1)
    loss, acc = model.evaluate(test_img, test_lbl)
    print('test loss-%.2f, test accuracy-%.2f%%' % (loss, 100*acc))


if __name__ == "__main__":
    train_img, train_lbl = get_train()
    test_img, test_lbl = get_test()
    datas = (train_img, train_lbl, test_img, test_lbl)
    train_num, *img_shape = train_img.shape

    model = lenet_v5(img_shape)
    model_evaluate(model, datas)

運(yùn)行結(jié)果:

test loss-0.07, test accuracy-98.07

特征可視化

對(duì)于訓(xùn)練集的每一個(gè)樣本,提取最后一層的特征,并且進(jìn)行以下處理

  • 將每個(gè)樣本的特征向量標(biāo)準(zhǔn)化成單位向量,將他們映射到以原點(diǎn)為中心的單位圓上
  • 使用 PCA方法將其降低到3維,便于畫圖
  • 根據(jù)類別描點(diǎn),不同類別賦予不同顏色
feat cluster--2d

可以看出,對(duì)于特征的分布均勻,相同類別的特征比較好的聚集在一起。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容