欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pytorch深度學(xué)習(xí)之實現(xiàn)病蟲害圖像分類

 更新時間:2021年12月24日 16:33:28   作者:masterHu_  
PyTorch是一個開源的Python機(jī)器學(xué)習(xí)庫,基于Torch,用于自然語言處理等應(yīng)用程序。它具有強(qiáng)大的GPU加速的張量計算和自動求導(dǎo)系統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)。本文將介紹如何通過PyTorch實現(xiàn)病蟲害圖像分類,感興趣的可以學(xué)習(xí)一下

一、pytorch框架

1.1、概念

PyTorch是一個開源的Python機(jī)器學(xué)習(xí)庫,基于Torch,用于自然語言處理等應(yīng)用程序。

2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch。它是一個基于Python的可續(xù)計算包,提供兩個高級功能:

1、具有強(qiáng)大的GPU加速的張量計算(如NumPy)。

2、包含自動求導(dǎo)系統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)。

1.2、機(jī)器學(xué)習(xí)與深度學(xué)習(xí)的區(qū)別

兩者之間區(qū)別很多,在本篇博客中只簡單描述一部分。以圖片的形式展現(xiàn)。

前者為機(jī)器學(xué)習(xí)的過程。

后者為深度學(xué)習(xí)的過程。

1.3、在python中導(dǎo)入pytorch成功截圖

二、數(shù)據(jù)集

本次實驗使用的是coco數(shù)據(jù)集中的植物病蟲害數(shù)據(jù)集。分為訓(xùn)練文件Traindata和測試文件TestData.,

TrainData有9種分類,每一種分類有100張圖片。

TestData有9中分類,每一種分類有10張圖片。

在我下一篇博客中將數(shù)據(jù)集開源。

下面是我的數(shù)據(jù)集截圖:

三、代碼復(fù)現(xiàn)

3.1、導(dǎo)入第三方庫

import torch
from torch.utils.data import Dataset, DataLoader
import numpy as np
import matplotlib
import os
import cv2
from PIL import Image
import torchvision.transforms as transforms
import torch.optim as optim
from torch.autograd import Variable
import torch.nn as nn
import torch.nn.functional as F
from Test.CNN import Net
import json
from Test.train_data import Mydataset,pad_image

3.2、CNN代碼

# 構(gòu)建神經(jīng)網(wǎng)絡(luò)
class Net(nn.Module):#定義網(wǎng)絡(luò)模塊
    def __init__(self):
        super(Net, self).__init__()
        # 卷積,該圖片有3層,6個特征,長寬均為5*5的像素點,每隔1步跳一下
        self.conv1 = nn.Conv2d(3, 6, 5)
        #//(conv1): Conv2d(3, 6, kernel_size=(5, 5), stride=(1, 1))
        self.pool = nn.MaxPool2d(2, 2)#最大池化
        #//(pool): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
        self.conv2 = nn.Conv2d(6, 16, 5)#卷積
        #//(conv2): Conv2d(6, 16, kernel_size=(5, 5), stride=(1, 1))
        self.fc1 = nn.Linear(16*77*77, 120)#全連接層,圖片的維度為16,
        #(fc1): Linear(in_features=94864, out_features=120, bias=True)
        self.fc2 = nn.Linear(120, 84)#全連接層,輸入120個特征輸出84個特征
        self.fc3 = nn.Linear(84, 7)#全連接層,輸入84個特征輸出7個特征
 
   def forward(self, x):
        print("x.shape1: ", x.shape)
        x = self.pool(F.relu(self.conv1(x)))
        print("x.shape2: ", x.shape)
        x = self.pool(F.relu(self.conv2(x)))
        print("x.shape3: ", x.shape)
        x = x.view(-1, 16*77*77)
        print("x.shape4: ", x.shape)
        x = F.relu(self.fc1(x))
        print("x.shape5: ", x.shape)
        x = F.relu(self.fc2(x))
        print("x.shape6: ", x.shape)
        x = self.fc3(x)
        print("x.shape7: ", x.shape)
        return x


3.3、測試代碼

img_path = "TestData/test_data/1/Apple2 (1).jpg" #使用相對路徑
image = Image.open(img_path).convert('RGB')
image_pad = pad_image(image, (320, 320))
input = transform(image_pad).to(device).unsqueeze(0)
output = F.softmax(net(input), 1)
_, predicted = torch.max(output, 1)
score = float(output[0][predicted]*100)
print(class_map[predicted], " ", str(score)+" %")
plt.imshow(image_pad) # 顯示圖片

四、訓(xùn)練結(jié)果

4.1、LOSS損失函數(shù)

4.2、 ACC

4.3、單張圖片識別準(zhǔn)確率

四、小結(jié)

這次搭建的網(wǎng)絡(luò)是基于深度學(xué)習(xí)框架Lenet,并自己做了一些修改完成。最終的訓(xùn)練的結(jié)果LOSS接近0,ACC接近100%。但是一般的識別率不會達(dá)到這么高,該模型可能會過擬合。可采取剪枝等操作減小過擬合。

到此這篇關(guān)于Pytorch深度學(xué)習(xí)之實現(xiàn)病蟲害圖像分類的文章就介紹到這了,更多相關(guān)Pytorch圖像分類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pyqt5之將textBrowser的內(nèi)容寫入txt文檔的方法

    pyqt5之將textBrowser的內(nèi)容寫入txt文檔的方法

    今天小編就為大家分享一篇pyqt5之將textBrowser的內(nèi)容寫入txt文檔的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python動態(tài)賦值的陷阱知識點總結(jié)

    Python動態(tài)賦值的陷阱知識點總結(jié)

    在本文中我們給大家整理了關(guān)于Python動態(tài)賦值的陷阱的相關(guān)知識點內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-03-03
  • Python 語言實現(xiàn)六大查找算法

    Python 語言實現(xiàn)六大查找算法

    本文給大家分享Python 語言實現(xiàn)六大查找算法,針對每種算法通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-06-06
  • Python框架Flask的基本數(shù)據(jù)庫操作方法分析

    Python框架Flask的基本數(shù)據(jù)庫操作方法分析

    這篇文章主要介紹了Python框架Flask的基本數(shù)據(jù)庫操作方法,結(jié)合實例形式分析了Flask框架數(shù)據(jù)庫操作常用函數(shù)功能、用法及相關(guān)注意事項,需要的朋友可以參考下
    2018-07-07
  • Python字符串對齊、刪除字符串不需要的內(nèi)容以及格式化打印字符

    Python字符串對齊、刪除字符串不需要的內(nèi)容以及格式化打印字符

    這篇文章主要給大家介紹了關(guān)于Python字符串對齊、刪除字符串不需要的內(nèi)容以及格式化打印字符的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 關(guān)于自動化測試框架pytest的Fixture固件

    關(guān)于自動化測試框架pytest的Fixture固件

    這篇文章主要介紹了關(guān)于自動化測試框架pytest的Fixture固件,Fixture它其實就是一些函數(shù),會在執(zhí)行測試方法/測試函數(shù)前后加載運行它們,需要的朋友可以參考下
    2023-03-03
  • python 求1-100之間的奇數(shù)或者偶數(shù)之和的實例

    python 求1-100之間的奇數(shù)或者偶數(shù)之和的實例

    今天小編就為大家分享一篇python 求1-100之間的奇數(shù)或者偶數(shù)之和的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python使用random.shuffle()隨機(jī)打亂字典排序

    Python使用random.shuffle()隨機(jī)打亂字典排序

    本文主要介紹了Python使用random.shuffle()隨機(jī)打亂字典排序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Python2隨機(jī)數(shù)列生成器簡單實例

    Python2隨機(jī)數(shù)列生成器簡單實例

    這篇文章主要介紹了Python2隨機(jī)數(shù)列生成器,結(jié)合簡單實例形式分析了Python基于random模塊操作隨機(jī)數(shù)的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2017-09-09
  • python簡單的三元一次方程求解實例

    python簡單的三元一次方程求解實例

    這篇文章主要介紹了python簡單的三元一次方程求解實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04

最新評論