91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

富顺县| 莱州市| 哈密市| 伊宁市| 荆州市| 巴里| 麦盖提县| 德惠市| 新丰县| 宜阳县| 米林县| 阆中市| 集贤县| 青冈县| 五峰| 顺昌县| 灵寿县| 望谟县| 博兴县| 贵南县| 巴彦淖尔市| 谢通门县| 通化市| 大庆市| 大新县| 陕西省| 江永县| 伊宁县| 合江县| 永仁县| 贺州市| 镇康县| 阿合奇县| 府谷县| 卢湾区| 万宁市| 宣汉县| 上虞市| 崇仁县| 唐河县| 安徽省|