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

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

為什么我在 keras 3d CNN 中的準確率始終為 0?

為什么我在 keras 3d CNN 中的準確率始終為 0?

catspeake 2023-10-18 15:45:36
一般來說,我對 keras、cnn 和深度學習相當陌生,所以如果解決方案非常簡單,我非常抱歉。我真的陷入了死胡同。所以,問題是,我有一個 3D CNN,其輸入數據為 50x50x50 的立方體。我想將它們分類為0或1,所以這是一個二元分類問題。在將其擬合到神經網絡之前,我當然準備了數據,對其進行重構、調整大小和標準化。因此,圖像具有可比性(1 體素為 2 毫米),標準化為 0 到 1 范圍且大小相同。因此,當我嘗試將數據擬合到我的模型中時,結果并不那么令人鼓舞。準確度始終顯示為 0,我在單個 epoch 中獲得的最高準確度是accuracy: 0.0159,損失始終在 3.2 到 3.5 之間我也改變了 epoch 的數量,但無論是 5 個還是 50 個都沒關系。結果總是相同的。這是我的 CNN 架構的代碼    model = Sequential()    model.add(Conv3D(64, kernel_size=(5, 5, 5), activation='linear',                     kernel_initializer='glorot_uniform', input_shape=shape))    model.add(BatchNormalization(center=True, scale=True))    model.add(LeakyReLU(.1))    model.add(Dropout(.25))    model.add(Conv3D(128, kernel_size=(3, 3, 3), activation='linear',                     kernel_initializer='glorot_uniform'))    model.add(BatchNormalization(center=True, scale=True))    model.add(LeakyReLU(.1))    model.add(MaxPooling3D(pool_size=(3, 3, 3)))    model.add(Dropout(.25))    model.add(Conv3D(256, kernel_size=(3, 3, 3), activation='linear',                     kernel_initializer='glorot_uniform'))    model.add(BatchNormalization(center=True, scale=True))    model.add(LeakyReLU(.1))    model.add(Dropout(.25))    model.add(Conv3D(512, kernel_size=(3, 3, 3), activation='linear',                     kernel_initializer='glorot_uniform'))    model.add(BatchNormalization(center=True, scale=True))    model.add(LeakyReLU(.1))    model.add(MaxPooling3D(pool_size=(3, 3, 3)))    model.add(Dropout(.25))    model.add(Flatten())    model.add(Dense(256))    model.add(BatchNormalization(center=True, scale=True))    model.add(LeakyReLU(.1))    model.add(Dropout(.5))    model.add(Dense(512))    model.add(BatchNormalization(center=True, scale=True))    model.add(LeakyReLU(.1))    model.add(Dropout(.5))    model.add(Dense(256))所以我想問一下,我的架構有什么問題嗎?或者您認為問題更多出在數據方面?我只有 420 張圖像;其中 3/4 用于訓練,1/4 用于測試。這可能是問題所在嗎?當基本模型運行穩定時,我想稍后增強圖像?;蛘呶冶仨毾冗@樣做?
查看完整描述

1 回答

?
LEATH

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

這對于具有兩個類別的分類問題沒有意義:

model.add(Dense(256))
model.add(BatchNormalization(center=True, scale=True))
model.add(Activation('softmax'))

改成這樣:

model.add(Dense(1))
model.add(Activation('sigmoid'))

還可以考慮使用'relu'激活而不是'linear'卷積層。


查看完整回答
反對 回復 2023-10-18
  • 1 回答
  • 0 關注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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