中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Pytorch中如何實現病蟲害圖像分類

發布時間:2021-12-24 21:05:46 來源:億速云 閱讀:225 作者:柒染 欄目:開發技術

本篇文章給大家分享的是有關Pytorch中如何實現病蟲害圖像分類,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

一、pytorch框架

1.1、概念

PyTorch是一個開源的Python機器學習庫,基于Torch,用于自然語言處理等應用程序。

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

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

2、包含自動求導系統的深度神經網絡。

1.2、機器學習與深度學習的區別

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

前者為機器學習的過程。

后者為深度學習的過程。

Pytorch中如何實現病蟲害圖像分類

1.3、在python中導入pytorch成功截圖

Pytorch中如何實現病蟲害圖像分類

二、數據集

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

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

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

在我下一篇博客中將數據集開源。

下面是我的數據集截圖:

Pytorch中如何實現病蟲害圖像分類

三、代碼復現

3.1、導入第三方庫

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代碼

# 構建神經網絡
class Net(nn.Module):#定義網絡模塊
    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) # 顯示圖片

四、訓練結果

4.1、LOSS損失函數

Pytorch中如何實現病蟲害圖像分類

4.2、 ACC

Pytorch中如何實現病蟲害圖像分類

4.3、單張圖片識別準確率

Pytorch中如何實現病蟲害圖像分類

以上就是Pytorch中如何實現病蟲害圖像分類,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高台县| 芦山县| 富宁县| 凤冈县| 定边县| 遂川县| 抚顺市| 昭觉县| 阳原县| 双峰县| 玛纳斯县| 宁都县| 喜德县| 寿阳县| 布尔津县| 肇州县| 高安市| 甘孜| 扎鲁特旗| 乐平市| 安乡县| 焦作市| 海丰县| 南漳县| 襄樊市| 永定县| 新巴尔虎左旗| 漠河县| 新和县| 谷城县| 嵊泗县| 广西| 平果县| 新郑市| 德令哈市| 舞阳县| 饶阳县| 巴东县| 乌苏市| 峡江县| 弥勒县|