如何構(gòu)建一個(gè) CNN 模型,以從圖像中對(duì)幼苗的種類(lèi)進(jìn)行分類(lèi)?
new_train = np.a(chǎn)sarray(new_train)
# CLEANED IMAGES
for i in range(8):
plt.subplot(2,4,i+1)
plt.imshow(new_train[i])
將標(biāo)簽轉(zhuǎn)換為數(shù)字
標(biāo)簽是字符串,這些很難處理。因此,我們將這些標(biāo)簽轉(zhuǎn)換為二元分類(lèi)。
分類(lèi)可以由 12 個(gè)數(shù)字組成的數(shù)組表示,這些數(shù)字將遵循以下條件:
如果未檢測(cè)到物種,則為 0。
1 如果檢測(cè)到該物種。
示例:如果檢測(cè)到 Blackgrass,則數(shù)組將為 = [1,0,0,0,0,0,0,0,0,0,0,0]
labels = preprocessing.LabelEncoder()
labels.fit(traininglabels[0])
print('Classes'+str(labels.classes_))
encodedlabels = labels.transform(traininglabels[0])
clearalllabels = np_utils.to_categorical(encodedlabels)
classes = clearalllabels.shape[1]
print(str(classes))
traininglabels[0].value_counts().plot(kind='pie')
定義我們的模型并拆分?jǐn)?shù)據(jù)集
在這一步中,我們將拆分訓(xùn)練數(shù)據(jù)集進(jìn)行驗(yàn)證。我們正在使用 scikit-learn 中的 train_test_split() 函數(shù)。這里我們拆分?jǐn)?shù)據(jù)集,保持 test_size=0.1。這意味著總數(shù)據(jù)的 10% 用作測(cè)試數(shù)據(jù),其余 90% 用作訓(xùn)練數(shù)據(jù)。檢查以下代碼以拆分?jǐn)?shù)據(jù)集。new_train = new_train/255
x_train,x_test,y_train,y_test = train_test_split(new_train,clearalllabels,test_size=0.1,random_state=seed,stratify=clearalllabels)
防止過(guò)擬合
過(guò)擬合是機(jī)器學(xué)習(xí)中的一個(gè)問(wèn)題,我們的模型在訓(xùn)練數(shù)據(jù)上表現(xiàn)非常好,但在測(cè)試數(shù)據(jù)上表現(xiàn)不佳。在深度神經(jīng)網(wǎng)絡(luò)過(guò)度擬合的深度學(xué)習(xí)中,過(guò)度擬合的問(wèn)題很?chē)?yán)重。過(guò)度擬合的問(wèn)題嚴(yán)重影響了我們的最終結(jié)果。為了擺脫它,我們需要減少它。在這個(gè)問(wèn)題中,我們使用 ImageDataGenerator() 函數(shù)隨機(jī)改變圖像的特征并提供數(shù)據(jù)的隨機(jī)性。、為了避免過(guò)擬合,我們需要一個(gè)函數(shù)。此函數(shù)隨機(jī)改變圖像特性。檢查以下代碼以了解如何減少過(guò)度擬合generator = ImageDataGenerator(rotation_range = 180,zoom_range = 0.1,width_shift_range = 0.1,height_shift_range = 0.1,horizontal_flip = True,vertical_flip = True)
generator.fit(x_train)
定義卷積神經(jīng)網(wǎng)絡(luò)
我們的數(shù)據(jù)集由圖像組成,因此我們不能使用線性回歸、邏輯回歸、決策樹(shù)等機(jī)器學(xué)習(xí)算法。我們需要一個(gè)用于圖像的深度神經(jīng)網(wǎng)絡(luò)。在這個(gè)問(wèn)題中,我們將使用卷積神經(jīng)網(wǎng)絡(luò)。該神經(jīng)網(wǎng)絡(luò)將圖像作為輸入,并將提供最終輸出作為物種值。我們隨機(jī)使用了 4 個(gè)卷積層和 3 個(gè)全連接層。此外,我們使用了多個(gè)函數(shù),如 Sequential()、Conv2D()、Batch Normalization、Max Pooling、Dropout 和 Flatting。
我們使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
該模型有 4 個(gè)卷積層。
該模型有 3 個(gè)全連接層。
np.random.seed(seed)
model = Sequential()
model.a(chǎn)dd(Conv2D(filters=64, kernel_size=(5, 5), input_shape=(scale, scale, 3), activation='relu'))
model.a(chǎn)dd(BatchNormalization(axis=3))
model.a(chǎn)dd(Conv2D(filters=64, kernel_size=(5, 5), activation='relu'))
model.a(chǎn)dd(MaxPooling2D((2, 2)))
model.a(chǎn)dd(BatchNormalization(axis=3))
model.a(chǎn)dd(Dropout(0.1))
model.a(chǎn)dd(Conv2D(filters=128, kernel_size=(5, 5), activation='relu'))
model.a(chǎn)dd(BatchNormalization(axis=3))
model.a(chǎn)dd(Conv2D(filters=128, kernel_size=(5, 5), activation='relu'))
model.a(chǎn)dd(MaxPooling2D((2, 2)))
model.a(chǎn)dd(BatchNormalization(axis=3))
model.a(chǎn)dd(Dropout(0.1))
model.a(chǎn)dd(Conv2D(filters=256, kernel_size=(5, 5), activation='relu'))
model.a(chǎn)dd(BatchNormalization(axis=3))
model.a(chǎn)dd(Conv2D(filters=256, kernel_size=(5, 5), activation='relu'))
model.a(chǎn)dd(MaxPooling2D((2, 2)))
model.a(chǎn)dd(BatchNormalization(axis=3))
model.a(chǎn)dd(Dropout(0.1))
model.a(chǎn)dd(Flatten())
model.a(chǎn)dd(Dense(256, activation='relu'))
model.a(chǎn)dd(BatchNormalization())
model.a(chǎn)dd(Dropout(0.5))
model.a(chǎn)dd(Dense(256, activation='relu'))
model.a(chǎn)dd(BatchNormalization())
model.a(chǎn)dd(Dropout(0.5))
model.a(chǎn)dd(Dense(classes, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
圖片新聞
-
機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹(shù)機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-
存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-
長(zhǎng)安汽車(chē)母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-
豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-
字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
-
員工持股爆雷?廣汽埃安緊急回應(yīng)
-
中國(guó)“智造”背后的「關(guān)鍵力量」
-
小米汽車(chē)研發(fā)中心重磅落地,寶馬家門(mén)口“搶人”
最新活動(dòng)更多
-
即日-9.16點(diǎn)擊進(jìn)入 >> 【限時(shí)福利】TE 2025國(guó)際物聯(lián)網(wǎng)展·深圳站
-
10月23日立即報(bào)名>> Works With 開(kāi)發(fā)者大會(huì)深圳站
-
10月24日立即參評(píng)>> 【評(píng)選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評(píng)選
-
11月27日立即報(bào)名>> 【工程師系列】汽車(chē)電子技術(shù)在線大會(huì)
-
12月18日立即報(bào)名>> 【線下會(huì)議】OFweek 2025(第十屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
精彩回顧立即查看>> 【限時(shí)下載】ADI中國(guó)三十周年感恩回饋助力企業(yè)升級(jí)!
推薦專(zhuān)題
- 1 阿里首位程序員,“掃地僧”多隆已離職
- 2 先進(jìn)算力新選擇 | 2025華為算力場(chǎng)景發(fā)布會(huì)暨北京xPN伙伴大會(huì)成功舉辦
- 3 宇樹(shù)機(jī)器人撞人事件的深度剖析:六維力傳感器如何成為人機(jī)安全的關(guān)鍵屏障
- 4 清華跑出具身智能獨(dú)角獸:給機(jī)器人安上眼睛和大腦,融資近20億
- 5 踢館大廠和微軟,剖析WPS靈犀的AI實(shí)用主義
- 6 特朗普要求英特爾首位華人 CEO 辭職
- 7 AI版“四萬(wàn)億刺激”計(jì)劃來(lái)了
- 8 騰訊 Q2 財(cái)報(bào)亮眼:AI 已成第二增長(zhǎng)曲線
- 9 谷歌吹響AI沖鋒號(hào),AI還有哪些機(jī)會(huì)
- 10 騰訊米哈游押寶的中國(guó)AI應(yīng)用,正在海外悶聲發(fā)財(cái)