筆記-深度學習模型訓練:利用殘差網路做影像辨識

更新於 發佈於 閱讀時間約 4 分鐘

前言

讀了許多理論,是時候實際動手做做看了,以下是我的模型訓練初體驗,有點糟就是了XD。



正文

def conv(filters, kernel_size, strides=1):
return Conv2D(filters,
kernel_size,
strides=strides,
padding='same',
use_bias=True,
kernel_initializer='he_normal',
kernel_regularizer=l2(0.0001))
def residual_unit(filters):
def f(x):
x_b = x
# x = BatchNormalization()(x) 2.加了似乎會過擬合​
# x = Activation('relu')(x) 2.加了似乎會過擬合​
x = conv(filters, 1)(x)

x = BatchNormalization()(x)
x = Activation('relu')(x)
x = conv(filters, 3)(x)

x = BatchNormalization()(x)
x = Activation('relu')(x)
x = conv(filters, 3)(x)

# x = BatchNormalization()(x) 2.加了似乎會過擬合​
# x = Activation('relu')(x) 2.加了似乎會過擬合​
x = conv(64, 1)(x)

return Add()([x, x_b])
return f
input = Input(shape=(32, 32, 3))

x = conv(64, 1)(input)

for i in range(3):
x = residual_unit(64)(x)

for i in range(4):
x = residual_unit(128)(x)

for i in range(6):
x = residual_unit(256)(x)

for i in range(3):
x = residual_unit(512)(x)

x = BatchNormalization()(x) # 1.沒加會訓練不起來
x = Activation('relu')(x) # 1.沒加會訓練不起來

x = GlobalAveragePooling2D()(x)

output = Dense(10, activation='softmax', kernel_regularizer=l2(0.0001))(x)

model = Model(inputs=input, outputs=output)

以上是我的模型,架構參考《強化式學習:打造最強 AlphaZero 通用演算法》書中的範例,以及前面兩篇論文。

邊訓練會邊遇到問題而邊調整,還滿有趣的,只是要有耐心XD。上面的程式碼中標記"1."的地方,是一開始沒有加的程式行,沒加的話發現每回合的準確率(acc)都只有0.1,訓練不起來;"1."的地方加了之後有進展,也想說標記"2."的地方應該也要加,加了後觀察到驗證的acc落差的比訓練的acc有點多,應該是發生了過擬合,所以把"2."的地方又拿掉了。途中有遇到acc在回合間來回,調過learning rate後就好了。

以下是我的模型的訓練間紀錄和訓練後結果,因為那時候還沒買Colab Pro(Colab的付費方案),為了趕在時間內跑完,訓練回合只設定了20(書是設定120),而且也沒做正規化,所以跑出來的結果還滿差的,預測10個資料10個都錯XD​。

前12個epoch的訓練紀錄

前12個epoch的訓練紀錄

後8個epoch的訓練紀錄

後8個epoch的訓練紀錄

訓練準確率和驗證準確率每回合的比較圖

訓練準確率和驗證準確率每回合的比較圖

用測試資料測試結果模型的損失和準確

用測試資料測試結果模型的損失和準確

用前10筆測試資料測試結果模型,沒有一個是對的XD

用前10筆測試資料測試結果模型,沒有一個是對的XD

第一次花四、五個小時訓練模型,雖然結果不甚滿意,但在過程中有學到東西,也算是有所收獲啦XD!



參考

  • 《強化式學習:打造最強 AlphaZero 通用演算法》



小結

上一篇文章暫時被我隱藏起來了,因為發現有點問題,等確認後再發佈,跟各位說聲不好意思!繼續趕路,繼續留腳印(XD),明天台中放颱風假QQXD~



留言0
查看全部
avatar-img
發表第一個留言支持創作者!
柴郡貓姍蒂的沙龍 的其他內容
前言 承上一篇筆記文章,繼續閱讀推薦的第二篇論文:Identity Mappings in Deep Residual Networks—Kaiming He、Xiangyu Zhang、Shaoqing Ren、Jian Sun。也是一樣的發表者,內容是對他們之前發表的Deep Residual
前言 在閱讀《強化式學習:打造最強 AlphaZero 通用演算法》時,文中介紹了殘差網路,並推薦了兩篇論文;因為在看了書後,對殘差網路的概念還是不很清楚,於是決定用ChatGPT翻譯這兩篇論文來增強理解,以下正文是第一篇論文:Deep Residual Learning for Image Re
前言 在閱讀網路文章時,有看到說1X1的卷積層能夠升維、降維,不了解所以然,故來查找。:P 正文 卷積核尺寸為1X1的卷積層能夠達到降低和增加輸出的維度,是因為它能夠改變輸入數據的通道數量(depth),而不改變其空間維度(height和width),原理如下。 1X1卷積在每個空間位置
前言 對標題上的這兩個項目有疑惑,不知道它們返回的資料的不同;查找資料後記錄下來,讓自己以後可以回來翻閱。 正文 numpy.ndarray.flatten:返回攤平的一維array,可參考NumPy: numpy.ndarray.flatten() function,有示意圖 te
前言 在閱讀《強化式學習:打造最強 AlphaZero 通用演算法》時,對一些看似基本,但是重要且會影響到之後實作的項目概念有點疑惑,覺得應該查清楚,所以搞懂後記錄下來,寫下這篇文章(應該說是筆記?)。 正文 下面這段程式碼: model = Sequential() model.add
前言 其實摸機器學習、深度學習也有一陣子了,雖然大致上都理解,不過有些細節若不是那麼清楚,我也沒仔細去弄懂。今天剛好在《強化式學習:打造最強 AlphaZero 通用演算法》這本書看到之前略過的幾個名詞,書中有解釋其背後代表的東西的功能,在此記錄下來,以後又忘掉時可回來查看。 正文 "激活
前言 承上一篇筆記文章,繼續閱讀推薦的第二篇論文:Identity Mappings in Deep Residual Networks—Kaiming He、Xiangyu Zhang、Shaoqing Ren、Jian Sun。也是一樣的發表者,內容是對他們之前發表的Deep Residual
前言 在閱讀《強化式學習:打造最強 AlphaZero 通用演算法》時,文中介紹了殘差網路,並推薦了兩篇論文;因為在看了書後,對殘差網路的概念還是不很清楚,於是決定用ChatGPT翻譯這兩篇論文來增強理解,以下正文是第一篇論文:Deep Residual Learning for Image Re
前言 在閱讀網路文章時,有看到說1X1的卷積層能夠升維、降維,不了解所以然,故來查找。:P 正文 卷積核尺寸為1X1的卷積層能夠達到降低和增加輸出的維度,是因為它能夠改變輸入數據的通道數量(depth),而不改變其空間維度(height和width),原理如下。 1X1卷積在每個空間位置
前言 對標題上的這兩個項目有疑惑,不知道它們返回的資料的不同;查找資料後記錄下來,讓自己以後可以回來翻閱。 正文 numpy.ndarray.flatten:返回攤平的一維array,可參考NumPy: numpy.ndarray.flatten() function,有示意圖 te
前言 在閱讀《強化式學習:打造最強 AlphaZero 通用演算法》時,對一些看似基本,但是重要且會影響到之後實作的項目概念有點疑惑,覺得應該查清楚,所以搞懂後記錄下來,寫下這篇文章(應該說是筆記?)。 正文 下面這段程式碼: model = Sequential() model.add
前言 其實摸機器學習、深度學習也有一陣子了,雖然大致上都理解,不過有些細節若不是那麼清楚,我也沒仔細去弄懂。今天剛好在《強化式學習:打造最強 AlphaZero 通用演算法》這本書看到之前略過的幾個名詞,書中有解釋其背後代表的東西的功能,在此記錄下來,以後又忘掉時可回來查看。 正文 "激活
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 129 中說,Bidirectional Encoder Representations from Transformers (BER
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在某些情況下,別人提供的 Pretrained Transformer Model 效果不盡人意,可能會想要自己做 Pretrained Model,但是這會耗費大量運
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們已經在 AI說書 - 從0開始 - 114 建立了 Transformer 模型。 現在我們來載入預訓練權重,預訓練的權重包含 Transformer 的智慧
Thumbnail
本文將延續上一篇文章,經由訓練好的VAE模型其中的解碼器,來生成圖片。 [深度學習]訓練VAE模型用於生成圖片_訓練篇 輸入產生的隨機雜訊,輸入VAE的解碼器後,生成的圖片
Thumbnail
此篇調查論文探討了Diffusion模型在文字、圖片和聲音轉換為影片,以及影片衍生和編輯的應用類型。作者也介紹了U-Net架構和Vision Transformer等生成圖像架構,並詳細探討了訓練模型的方法以及不同的影像資料集來源。
Thumbnail
筆記-曲博談AI模型.群聯-24.05.05 https://www.youtube.com/watch?v=JHE88hwx4b0&t=2034s *大型語言模型 三個步驟: 1.預訓練,訓練一次要用幾萬顆處理器、訓練時間要1個月,ChatGPT訓練一次的成本為1000萬美金。 2.微調(
Thumbnail
延續上週提到的,「有哪些不訓練模型的情況下,能夠強化語言模型的能力」,這堂課接續介紹其中第 3、4 個方法
Thumbnail
本篇文章參考 Youtube 影片(...真實模型推薦...)內容,為大家找出影片中的模型,直接作圖測試,您直接連結過去,就可以在 TensorArt 內直接使用囉!
Thumbnail
前言 上一篇討論到如何訓練出模型,此篇將說明Streamlit建立的簡單Web應用程式的解說 Streamlit網頁App_貓狗辨識 連結 程式碼Github連結 [機器學習]CNN學習MNIST 手寫英文字母資料,用網頁展現成果_模型訓練篇 如何連動github與stramlit可以參考
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 129 中說,Bidirectional Encoder Representations from Transformers (BER
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在某些情況下,別人提供的 Pretrained Transformer Model 效果不盡人意,可能會想要自己做 Pretrained Model,但是這會耗費大量運
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們已經在 AI說書 - 從0開始 - 114 建立了 Transformer 模型。 現在我們來載入預訓練權重,預訓練的權重包含 Transformer 的智慧
Thumbnail
本文將延續上一篇文章,經由訓練好的VAE模型其中的解碼器,來生成圖片。 [深度學習]訓練VAE模型用於生成圖片_訓練篇 輸入產生的隨機雜訊,輸入VAE的解碼器後,生成的圖片
Thumbnail
此篇調查論文探討了Diffusion模型在文字、圖片和聲音轉換為影片,以及影片衍生和編輯的應用類型。作者也介紹了U-Net架構和Vision Transformer等生成圖像架構,並詳細探討了訓練模型的方法以及不同的影像資料集來源。
Thumbnail
筆記-曲博談AI模型.群聯-24.05.05 https://www.youtube.com/watch?v=JHE88hwx4b0&t=2034s *大型語言模型 三個步驟: 1.預訓練,訓練一次要用幾萬顆處理器、訓練時間要1個月,ChatGPT訓練一次的成本為1000萬美金。 2.微調(
Thumbnail
延續上週提到的,「有哪些不訓練模型的情況下,能夠強化語言模型的能力」,這堂課接續介紹其中第 3、4 個方法
Thumbnail
本篇文章參考 Youtube 影片(...真實模型推薦...)內容,為大家找出影片中的模型,直接作圖測試,您直接連結過去,就可以在 TensorArt 內直接使用囉!
Thumbnail
前言 上一篇討論到如何訓練出模型,此篇將說明Streamlit建立的簡單Web應用程式的解說 Streamlit網頁App_貓狗辨識 連結 程式碼Github連結 [機器學習]CNN學習MNIST 手寫英文字母資料,用網頁展現成果_模型訓練篇 如何連動github與stramlit可以參考