亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

杨浦区| 张家口市| 白河县| 黄骅市| 太康县| 利川市| 汉川市| 济宁市| 湄潭县| 松溪县| 新乡县| 阿图什市| 三亚市| 东至县| 桃园市| 常德市| 旬阳县| 泰兴市| 炎陵县| 门头沟区| 海安县| 祁阳县| 宁陕县| 任丘市| 长葛市| 喜德县| 孝义市| 蓬溪县| 正蓝旗| 屯门区| 靖江市| 宝山区| 万全县| 长顺县| 武隆县| 禄丰县| 永城市| 凤城市| 龙游县| 九龙坡区| 大英县|