2024-06-29|閱讀時間 ‧ 約 23 分鐘

筆記-深度學習參數理解:input_shape

前言

在閱讀《強化式學習:打造最強 AlphaZero 通用演算法》時,對一些看似基本,但是重要且會影響到之後實作的項目概念有點疑惑,覺得應該查清楚,所以搞懂後記錄下來,寫下這篇文章(應該說是筆記?)。



正文

下面這段程式碼:

model = Sequential()
model.add(Dense(256, activation='sigmoid', input_shape=(784,)))

其中"input_shape"是用來指定輸入樣本的數據形狀,也是張量的shape,當數據進入模型時會被轉為張量,input_shape描述了這些張量的形狀,此例是一個包含784個特徵的向量。


向量跟張量的關係:0階張量為純量、1階張量為向量、2階張量為矩陣、3階張量則是由多個矩陣所組成—出自何為張量(Tensor)?三分鐘圖解類神經網路基本資料結構,這篇文章講得很詳細,就不再贅述了。


當我要將一個形狀為(3, 3, 2)的三維張量傳給Dense層時,出現錯誤,因為Dense層接受的輸入通常是一維的平坦數據,須將三維數據平坦化(flatten)再輸入。而處理圖像的Conv2D層則可以接受此形狀的張量,(3, 3, 2)代表的是高度為3、寬度為3、通道數為2的圖像,不過通道數通常為3,因為有R、G、B三個通道。


下面是一個例子:

[
[
[[1, 2], [3, 4], [5, 6]],
[[7, 8], [9, 10], [11, 12]],
[[13, 14], [15, 16], [17, 18]]
]
]

此例的第一個通道為:

[
[1, 3, 5],
[7, 9, 11],
[13, 15, 17]
]

第二個通道為:

[
[2, 4, 6],
[8, 10, 12],
[14, 16, 18]
]


以上~



參考



小結

繼續趕路,繼續留腳印(XD),週末快樂!

分享至
成為作者繼續創作的動力吧!
從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

作者的相關文章

柴郡貓姍蒂的沙龍 的其他內容

你可能也想看

發表回應

成為會員 後即可發表留言
© 2024 vocus All rights reserved.