日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习之基于Tensorflow2.0实现AlexNet网络

發布時間:2023/12/15 pytorch 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习之基于Tensorflow2.0实现AlexNet网络 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在之前的實驗中,一直是自己搭建或者是遷移學習進行物體識別,但是沒有對某一個網絡進行詳細的研究,正好人工智能課需要按組上去展示成果,借此機會實現一下比較經典的網絡,為以后的研究學習打下基礎。本次基于Tensorflow2.0實現AlexNet網絡。

1.AlexNet 網絡簡介

作為LeNet網絡提出后的第一個比較成熟的網絡,AlexNet不負眾望的在2012年的ImageNet比賽中以遠超第二名的成績奪冠,使得卷積神經網絡廣受關注,它相比于VGG系列的網絡,層數并不多,而且也沒有Xception和Inception等網絡比較精巧的設計,但是卻是后面網絡的基礎,在深度學習領域具有重要的意義。

2.網絡結構

AlexNet網絡結構如下所示:

更為具體的網絡結構:

3.創新點

AlexNet網絡相比于之前的LeNet網絡,更能提取圖片的特征,主要得益于以下幾點創新:

① 使用了更深的網絡結構。
② 使用卷積層+卷積層+池化層的網絡結構來提取圖像特征。
③ 使用數據增強以及Dropout來抑制過擬合現象。
④ 使用Relu作為激活函數,替換之前的sigmoid函數。
⑤ 使用多GPU進行訓練。
⑥ 使用LRN(局部響應歸一化)進行泛化。

4.網絡實現

def AlexNet(nb_classes,input_shape):input_ten = Input(shape=input_shape)#1x = tf.keras.layers.Conv2D(filters=96,kernel_size=(11,11),strides=(4,4),activation='relu')(input_ten)x = BatchNormalization()(x)##利用BN代替LRNx = MaxPooling2D(pool_size=(3,3),strides=2)(x)#2x = tf.keras.layers.Conv2D(filters=256,kernel_size=(5,5),strides=(1,1),activation='relu',padding='same')(x)x = BatchNormalization()(x)x = MaxPooling2D(pool_size=(3,3),strides=2)(x)#3x = tf.keras.layers.Conv2D(filters=384,kernel_size=(3,3),strides=(1,1),activation='relu',padding='same')(x)#4x = tf.keras.layers.Conv2D(filters=384,kernel_size=(3,3),strides=(1,1),activation='relu',padding='same')(x)#5x = tf.keras.layers.Conv2D(filters=256,kernel_size=(3,3),strides=(1,1),activation='relu',padding='same')(x)x = MaxPooling2D(pool_size=(3,3),strides=2)(x)#FCx = tf.keras.layers.Flatten()(x)x = Dense(4096,activation='relu')(x)x = tf.keras.layers.Dropout(0.5)(x)x = Dense(4096,activation='relu')(x)x = tf.keras.layers.Dropout(0.5)(x)output_ten = tf.keras.layers.Dense(nb_classes,activation='softmax')(x)model = Model(input_ten,output_ten)return model model_AlexNet = AlexNet(24,(img_height,img_width,3)) model_AlexNet.summary() Model: "model" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= input_1 (InputLayer) [(None, 224, 224, 3)] 0 _________________________________________________________________ conv2d (Conv2D) (None, 54, 54, 96) 34944 _________________________________________________________________ batch_normalization (BatchNo (None, 54, 54, 96) 384 _________________________________________________________________ max_pooling2d (MaxPooling2D) (None, 26, 26, 96) 0 _________________________________________________________________ conv2d_1 (Conv2D) (None, 26, 26, 256) 614656 _________________________________________________________________ batch_normalization_1 (Batch (None, 26, 26, 256) 1024 _________________________________________________________________ max_pooling2d_1 (MaxPooling2 (None, 12, 12, 256) 0 _________________________________________________________________ conv2d_2 (Conv2D) (None, 12, 12, 384) 885120 _________________________________________________________________ conv2d_3 (Conv2D) (None, 12, 12, 384) 1327488 _________________________________________________________________ conv2d_4 (Conv2D) (None, 12, 12, 256) 884992 _________________________________________________________________ max_pooling2d_2 (MaxPooling2 (None, 5, 5, 256) 0 _________________________________________________________________ flatten (Flatten) (None, 6400) 0 _________________________________________________________________ dense (Dense) (None, 4096) 26218496 _________________________________________________________________ dropout (Dropout) (None, 4096) 0 _________________________________________________________________ dense_1 (Dense) (None, 4096) 16781312 _________________________________________________________________ dropout_1 (Dropout) (None, 4096) 0 _________________________________________________________________ dense_2 (Dense) (None, 24) 98328 ================================================================= Total params: 46,846,744 Trainable params: 46,846,040 Non-trainable params: 704 _________________________________________________________________

最終需要訓練的參數為46,846,040個,相比起LeNet已經是多到爆,但是相比于后面的網絡,這些訓練參數還是比較少的。

努力加油a啊

總結

以上是生活随笔為你收集整理的深度学习之基于Tensorflow2.0实现AlexNet网络的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。