亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我可以使用哪些不同維度的圖像集作為預訓練模型的輸入?

我可以使用哪些不同維度的圖像集作為預訓練模型的輸入?

慕村9548890 2022-07-05 18:41:35
我正在研究手寫數字識別問題,使用 OpenCV 進行預處理,使用 Keras/Tensorflow 進行推理。我在 MNIST 手寫數字數據集上訓練了一個模型,其中每張圖像都是 28x28 像素?,F在我正在使用一組新的數字,我計劃使用原始模型架構進行進一步的訓練,并通過權重初始化進行遷移學習。所以這是我的問題:當我縮小到 28x28 像素時,我遇到了丟失某些功能的問題。這是一個例子這意味著是一個 2,頂部循環中的微小間隙對于幫助將其與 9 或 8 區分開來很重要。但是我的預處理版本失去了間隙,所以循環看起來是封閉的。我已經發布了另一個關于如何在不丟失功能的情況下縮小尺寸的問題。另一方面,也許我想縮小到更大的尺寸,比如 56x56 像素,這樣我就不太可能失去這些功能。我如何進行設置以使這個新尺寸與模型融為一體,而不會使預先訓練的權重變得無用?這是預訓練模型的定義:def define_model(learning_rate, momentum):    model = Sequential()    model.add(Conv2D(32, (3,3), activation = 'relu', kernel_initializer = 'he_uniform', input_shape=(28,28,1)))    model.add(MaxPooling2D((2,2)))    model.add(Conv2D(64, (3,3), activation = 'relu', kernel_initializer = 'he_uniform'))    model.add(Conv2D(64, (3,3), activation = 'relu', kernel_initializer = 'he_uniform'))    model.add(MaxPooling2D((2,2)))    model.add(Flatten())    model.add(Dense(100, activation='relu', kernel_initializer='he_uniform'))    model.add(Dense(10, activation='softmax'))    opt = SGD(lr=learning_rate, momentum=momentum)    model.compile(optimizer=opt, loss='categorical_crossentropy', metrics=['accuracy'])    return model這是我的一個想法:在第一層之后增加最大池內核的大小,以使該層的輸出具有與我使用 28x28 像素圖像相同的形狀。(但這不會導致我失去該功能嗎?)
查看完整描述

2 回答

?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

為什么不升級 MNST 進行培訓?您的問題是關于圖像的分辨率,MNST 數據集是很久以前創建的,當時 GPU 內存還非常小。最近的模型都具有大于 的圖像尺寸200 * 200,例如 resnet224*224用作輸入形狀。由于您的圖像從一開始就已經是低分辨率的,并且您縮小了尺寸,您將使模型難以相互區分。由于您的模型相當簡單,我建議升級訓練數據集。

是的,如果你使用你提到的池,你可能也會丟失信息。

希望這可以幫助。


查看完整回答
反對 回復 2022-07-05
?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

一種選擇是如上所建議的 -例如,從28x28到的高檔初始數據集。56x56


第二個選項是在訓練模型的開頭添加一個附加層MaxPooling或AveragePooling層,例如:


new_input = Input(shape=(56, 56, 1), name='new_input')

x = AveragePooling2D((2,2), name='avg_pool')(new_input)

new_output = trained_model(x)

new_model = Model(new_input, new_output)

以下是新模型的摘要:


_________________________________________________________________

Layer (type)                 Output Shape              Param #   

=================================================================

new_input (InputLayer)       (None, 56, 56, 1)         0         

_________________________________________________________________

avg_pool (AveragePooling2D)  (None, 28, 28, 1)         0         

_________________________________________________________________

trained_model (Sequential)   (None, 10)                159254    

=================================================================

Total params: 159,254

Trainable params: 159,254

Non-trainable params: 0

_________________________________________________________________


查看完整回答
反對 回復 2022-07-05
  • 2 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號