精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于 Faster ViT 進(jìn)行圖像分類

開發(fā) 人工智能
Faster Vision Transformer(FVT)是Vision Transformer(ViT)架構(gòu)的一個(gè)變體,這是一種為計(jì)算機(jī)視覺任務(wù)設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)。

Faster Vision Transformer(FVT)是Vision Transformer(ViT)架構(gòu)的一個(gè)變體,這是一種為計(jì)算機(jī)視覺任務(wù)設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)。FVT 是原始 ViT 模型的更快、更高效版本,原始模型由 Dosovitskiy 等人在 2020 年的論文 “一幅圖像值 16x16 個(gè)詞:用于大規(guī)模圖像識(shí)別的轉(zhuǎn)換器” 中引入。

FVT 的關(guān)鍵特性

  • 高效架構(gòu):FVT 旨在比原始 ViT 模型更快、更高效。它通過減少參數(shù)數(shù)量和計(jì)算復(fù)雜性,同時(shí)保持類似的性能來實(shí)現(xiàn)這一點(diǎn)。
  • 多尺度視覺轉(zhuǎn)換器:FVT 使用多尺度視覺轉(zhuǎn)換器架構(gòu),允許它以多種尺度和分辨率處理圖像。這是通過使用層次結(jié)構(gòu)實(shí)現(xiàn)的,其中較小的轉(zhuǎn)換器用于處理圖像的較小區(qū)域。
  • 自注意力機(jī)制:FVT 使用自注意力機(jī)制,允許它對圖像的不同部分之間的復(fù)雜關(guān)系進(jìn)行建模。這是通過使用在訓(xùn)練過程中學(xué)習(xí)到的注意力權(quán)重來實(shí)現(xiàn)的。
  • 位置編碼:FVT 使用位置編碼來保留圖像的空間信息。這是通過使用學(xué)習(xí)到的位置嵌入來實(shí)現(xiàn)的,它們被添加到輸入令牌中。

首先,讓我們開始實(shí)現(xiàn)在自定義數(shù)據(jù)集上訓(xùn)練視覺轉(zhuǎn)換器。為此,我們需要通過 pip 安裝 fastervit。

pip install fastervit

讓我們導(dǎo)入我們剛剛通過 pip 安裝的 pytorch 庫以及更快視覺轉(zhuǎn)換器庫。

import torch
from torchvision import datasets, transforms
from torch.utils.data import DataLoader
import os

在這個(gè)實(shí)現(xiàn)中,我從 Kaggle 下載了損壞道路數(shù)據(jù)集。在這里檢查。然后將它們分割為訓(xùn)練和驗(yàn)證數(shù)據(jù)集。之后加載數(shù)據(jù)集并應(yīng)用數(shù)據(jù)轉(zhuǎn)換。

data_dir = 'sih_road_dataset'

# Define data transformations
data_transforms = {
    'train': transforms.Compose([
        transforms.RandomResizedCrop(224),
        transforms.RandomHorizontalFlip(),
        transforms.ToTensor(),
        transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
    ]),
    'val': transforms.Compose([
        transforms.Resize(256),
        transforms.CenterCrop(224),
        transforms.ToTensor(),
        transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
    ]),
}

# Load datasets
image_datasets = {x: datasets.ImageFolder(os.path.join(data_dir, x), data_transforms[x]) for x in ['train', 'val']}
dataloaders = {x: DataLoader(image_datasets[x], batch_size=32, shuffle=True, num_workers=4) for x in ['train', 'val']}
dataset_sizes = {x: len(image_datasets[x]) for x in ['train', 'val']}
class_names = image_datasets['train'].classes
接下來我們將加載更快視覺轉(zhuǎn)換器模型。
# Load the FasterViT model and modify it for your number of classes.

from fastervit import create_model

# Load FasterViT model
model = create_model('faster_vit_0_224', 
                     pretrained=True,
                     model_path="faster_vit_0.pth.tar")

# Print the model architecture
print(model)

接下來我們將加載更快視覺轉(zhuǎn)換器模型。

# Load the FasterViT model and modify it for your number of classes.

from fastervit import create_model

# Load FasterViT model
model = create_model('faster_vit_0_224', 
                     pretrained=True,
                     model_path="faster_vit_0.pth.tar")

# Print the model architecture
print(model)

當(dāng)我們打印模型時(shí),我們可以看到末尾的頭部層,這是需要修改以進(jìn)行微調(diào)的部分。

為了針對您的自定義分類任務(wù)修改這一層,您應(yīng)該用一個(gè)具有適當(dāng)數(shù)量輸出類別的新線性層替換頭部層。

# Modify the final layer for custom classification
num_ftrs = model.head.in_features
model.head = torch.nn.Linear(num_ftrs, len(class_names))

# Move the model to GPU if available
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model = model.to(device)

接下來指定優(yōu)化器和學(xué)習(xí)率,

import torch.optim as optim
from torch.optim import lr_scheduler

# Define loss function
criterion = torch.nn.CrossEntropyLoss()

# Define optimizer
optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9)

# Learning rate scheduler
exp_lr_scheduler = lr_scheduler.StepLR(optimizer, step_size=7, gamma=0.1)

好的,現(xiàn)在一切都已定義,我們現(xiàn)在指定將用于訓(xùn)練我們模型的自定義數(shù)據(jù)集的訓(xùn)練函數(shù)。


import time
import copy

def train_model(model, criterion, optimizer, scheduler, num_epochs=5):
    since = time.time()

    best_model_wts = copy.deepcopy(model.state_dict())
    best_acc = 0.0

    for epoch in range(num_epochs):
        print(f'Epoch {epoch}/{num_epochs - 1}')
        print('-' * 10)

        # Each epoch has a training and validation phase
        for phase in ['train', 'val']:
            if phase == 'train':
                model.train()  # Set model to training mode
            else:
                model.eval()   # Set model to evaluate mode

            running_loss = 0.0
            running_corrects = 0

            # Iterate over data.
            for inputs, labels in dataloaders[phase]:
                inputs = inputs.to(device)
                labels = labels.to(device)

                # Zero the parameter gradients
                optimizer.zero_grad()

                # Forward
                with torch.set_grad_enabled(phase == 'train'):
                    outputs = model(inputs)
                    _, preds = torch.max(outputs, 1)
                    loss = criterion(outputs, labels)

                    # Backward + optimize only if in training phase
                    if phase == 'train':
                        loss.backward()
                        optimizer.step()

                # Statistics
                running_loss += loss.item() * inputs.size(0)
                running_corrects += torch.sum(preds == labels.data)

            if phase == 'train':
                scheduler.step()

            epoch_loss = running_loss / dataset_sizes[phase]
            epoch_acc = running_corrects.double() / dataset_sizes[phase]

            print(f'{phase} Loss: {epoch_loss:.4f} Acc: {epoch_acc:.4f}')

            # Deep copy the model
            if phase == 'val' and epoch_acc > best_acc:
                best_acc = epoch_acc
                best_model_wts = copy.deepcopy(model.state_dict())

        print()

    time_elapsed = time.time() - since
    print(f'Training complete in {time_elapsed // 60:.0f}m {time_elapsed % 60:.0f}s')
    print(f'Best val Acc: {best_acc:.4f}')

    # Load best model weights
    model.load_state_dict(best_model_wts)
    return model

下一步是啟動(dòng)訓(xùn)練過程!

# Train the model
model = train_model(model, criterion, optimizer, exp_lr_scheduler, num_epochs=5)

# Save the model
torch.save(model.state_dict(), 'faster_vit_custom_model.pth')

請注意,這不是最好的模型,因?yàn)槲覀兛梢钥吹侥P驮谟?xùn)練數(shù)據(jù)集上過擬合了。本文的主要目的是演示如何實(shí)現(xiàn) Faster Vision Transformer 并在自定義數(shù)據(jù)集上訓(xùn)練它們。還有其他方法可以解決過擬合問題。

讓我們對下面的圖像進(jìn)行訓(xùn)練過的模型的快速測試:

import torch
from torchvision import transforms
from PIL import Image
from fastervit import create_model

# Define the number of classes in your custom dataset
num_classes = 4  # Replace with your actual number of classes

# Create the model architecture
model = create_model('faster_vit_0_224', pretrained=False)

# Modify the final classification layer to match the number of classes in your custom dataset
model.head = torch.nn.Linear(model.head.in_features, num_classes)

# Move the model to GPU if available
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model = model.to(device)

# Load the trained model weights
model.load_state_dict(torch.load('faster_vit_custom_model.pth'))
model.eval()  # Set the model to evaluation mode

# Define data transformations for the input image
preprocess = transforms.Compose([
    transforms.Resize(256),
    transforms.CenterCrop(224),
    transforms.ToTensor(),
    transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])

# Function to load and preprocess the image
def load_image(image_path):
    image = Image.open(image_path).convert('RGB')
    image = preprocess(image)
    image = image.unsqueeze(0)  # Add batch dimension
    return image.to(device)

# Function to make predictions
def predict(image_path, model, class_names):
    image = load_image(image_path)
    with torch.no_grad():
        outputs = model(image)
        _, preds = torch.max(outputs, 1)
        predicted_class = class_names[preds.item()]
    return predicted_class

# List of class names (ensure this matches your custom dataset's classes)
class_names = ['good', 'poor', 'satisfactory', 'very_poor']  # Replace with your actual class names

# Example usage
image_path = 'test_img.jpg'
predicted_class = predict(image_path, model, class_names)
print(predicted_class)

預(yù)測的類別是,

責(zé)任編輯:趙寧寧 來源: 小白玩轉(zhuǎn)Python
相關(guān)推薦

2024-11-21 16:06:02

2023-01-05 16:51:04

機(jī)器學(xué)習(xí)人工智能

2022-09-29 23:53:06

機(jī)器學(xué)習(xí)遷移學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

2022-06-29 09:00:00

前端圖像分類模型SQL

2022-10-30 15:00:40

小樣本學(xué)習(xí)數(shù)據(jù)集機(jī)器學(xué)習(xí)

2023-11-30 09:55:27

鴻蒙鄰分類器

2022-06-16 10:29:33

神經(jīng)網(wǎng)絡(luò)圖像分類算法

2018-04-09 10:20:32

深度學(xué)習(xí)

2024-08-23 08:57:13

PyTorch視覺轉(zhuǎn)換器ViT

2017-11-23 14:35:36

2024-06-03 07:55:00

2022-01-12 17:53:52

Transformer數(shù)據(jù)人工智能

2022-11-11 15:07:50

深度學(xué)習(xí)函數(shù)鑒別器

2022-06-05 21:16:08

機(jī)器學(xué)習(xí)Python

2020-10-10 12:53:57

邏輯回歸機(jī)器學(xué)習(xí)分析

2023-01-06 19:02:23

應(yīng)用技術(shù)

2018-03-26 20:49:08

圖像分類

2025-01-17 10:30:00

2022-08-15 15:16:20

機(jī)器學(xué)習(xí)圖片深度學(xué)習(xí)

2015-04-07 13:23:36

NEC
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产福利资源在线| 岳毛多又紧做起爽| 国产一区二区小视频| 亚洲精品一二三区区别| 欧美一级欧美三级在线观看 | 亚洲国产精品久久久久爰性色| 欧美日一区二区在线观看| 亚洲第一av网| 在线观看的毛片| 污片在线免费观看| 91免费看片在线观看| 国产日本欧美在线观看| www.av视频在线观看| 欧美午夜精品一区二区三区电影| 欧美一区二区三区四区久久| 成年人视频网站免费观看| 欧美天天影院| 精品一区二区三区免费看| 亚洲综合丁香婷婷六月香| 日本精品一区二区三区高清 久久| 国产一区二区在线视频观看| 美女日韩在线中文字幕| 久久激情视频久久| 波多野结衣av在线观看| a级片在线播放| 亚洲日本黄色| www.久久久久| 国精产品一区一区三区免费视频| 国产精品高清一区二区| 日韩电影精品| 亚洲欧美在线视频观看| 国产专区一区二区| 国产强伦人妻毛片| 蜜臀av一区二区在线观看| 97在线观看视频国产| 你懂得视频在线观看| 免费日韩一区二区三区| 欧美一区二区高清| 午夜久久久精品| 欧美momandson| 黄网动漫久久久| 中文字幕日韩精品无码内射| 日本福利在线| 91一区二区在线| 国产精品久久久久免费| 国产麻豆免费观看| 毛片av中文字幕一区二区| 精品国免费一区二区三区| wwwjizzjizzcom| 欧美videos极品另类| 日本一区二区视频在线| 青青草久久网络| 男女污视频在线观看| 91一区在线观看| 久久精品日韩精品| 亚洲av综合一区| 日韩影院精彩在线| 国产成人激情视频| 男人天堂视频在线| 日韩精品91亚洲二区在线观看| 热99精品只有里视频精品| 青青操免费在线视频| 99精品99| 欧美在线一级视频| 亚洲成熟少妇视频在线观看| 丝袜美腿亚洲色图| 国产精品久久久久久久久久久不卡| jizz国产在线观看| 日韩精品一级二级| 国产精品一区二区久久| a级黄色片免费看| 国产精品国产三级国产在线观看| 色噜噜亚洲精品中文字幕| 女女调教被c哭捆绑喷水百合| 在线一区av| 色婷婷综合视频在线观看| 无人在线观看的免费高清视频 | 国产jzjzjz丝袜老师水多| 国产一区二区三区高清播放| 99re在线视频观看| 天堂成人在线观看| 日韩高清电影一区| 国产精品久久久久久久久粉嫩av| 91国产精品一区| 高清在线不卡av| 欧美精品与人动性物交免费看| 91精品人妻一区二区三区果冻| 国产在线视频精品一区| 国产精品久久亚洲7777| 暖暖视频在线免费观看| 国产精品久久三区| 国产玉足脚交久久欧美| 国产另类xxxxhd高清| 欧美一二三区精品| 精品人妻一区二区三区日产乱码卜| 国产99久久| 欧美另类交人妖| 久久精品视频5| 黑人巨大精品欧美黑白配亚洲| 国产在线一区二| 中文日本在线观看| 亚洲成人精品影院| 欧美大尺度做爰床戏| japanese色系久久精品| 国产亚洲精品美女久久久| 538精品在线视频| 久久久成人网| 亚洲自拍欧美色图| 激情综合闲人网| 夜夜亚洲天天久久| 五月婷婷之综合激情| 国产精品45p| 一个人www欧美| 国产无遮挡又黄又爽在线观看| 青青青伊人色综合久久| 激情小说综合网| 97caopor国产在线视频| 欧美在线你懂的| 免费看a级黄色片| 视频精品二区| 日韩亚洲欧美中文高清在线| 中文字幕第四页| 国产免费成人| 国产91成人在在线播放| 国产三级伦理片| 国产嫩草影院久久久久| 日韩av一二三四区| 91夜夜蜜桃臀一区二区三区| 日韩一区二区av| 亚洲欧美日韩激情| 成年人国产精品| 久操手机在线视频| 国产精品一区二区精品视频观看| 一本一本久久a久久精品牛牛影视 一本色道久久综合亚洲精品小说 一本色道久久综合狠狠躁篇怎么玩 | 国外成人在线直播| 国产人妖在线播放| 国产精品视频一二| 国产成人av影视| 特黄特色欧美大片| 97视频在线观看亚洲| 黄色片网站免费在线观看| 亚洲免费观看高清完整版在线观看| 精品久久久久久中文字幕2017| 美女毛片一区二区三区四区最新中文字幕亚洲| 欧美高清在线视频观看不卡| 国产黄色大片网站| 亚洲欧美欧美一区二区三区| 依人在线免费视频| 北岛玲精品视频在线观看| 在线观看91久久久久久| 亚洲欧美一二三区| 国产午夜久久久久| 美女网站免费观看视频| 精品视频97| 国产精品丝袜一区二区三区| 在线观看的av| 欧美日韩精品综合在线| 一本一本久久a久久| 精品综合久久久久久8888| 中文字幕日韩精品久久| 成人免费91| 欧美高清在线播放| 少妇人妻偷人精品一区二区| 精品国产91久久久| 久久人人爽人人爽人人片| 亚洲一区二区免费看| 欧美亚洲免费在线| 成人自拍视频网| 久久精品国产精品| 精品国产无码一区二区三区| 亚洲一区日韩精品中文字幕| 成人免费无码大片a毛片| 免费在线亚洲| 亚洲国产午夜伦理片大全在线观看网站 | 99在线精品视频免费观看20| 亚洲一区二区影院| 亚洲国产第一区| 日本va欧美va瓶| 蜜桃视频一区二区在线观看| 久久久亚洲欧洲日产| 日本国产高清不卡| 欧美激情办公室videoshd| 欧美一区二区不卡视频| 国产午夜精品无码一区二区| 久久亚洲影视婷婷| 五月婷婷六月丁香激情| 国产尤物精品| 日本一区二区三区视频在线观看| av日韩在线免费观看| 国产+人+亚洲| 91官网在线| 日韩一区在线免费观看| 中文字幕日韩综合| 伊人精品成人久久综合软件| 欧美裸体网站| 高清一区二区三区av| 韩国一区二区电影| www日韩tube| 精品久久久影院| chinese国产精品| 亚洲私人黄色宅男| 亚洲调教欧美在线| 精品在线播放免费| 无罩大乳的熟妇正在播放| 国产一区毛片| 免费91麻豆精品国产自产在线观看| 亚洲成a人片77777精品| 色综合天天综合色综合av| 国产免费一区二区三区四区| 99re这里都是精品| 午夜剧场高清版免费观看| 亚洲另类自拍| 午夜探花在线观看| 少妇一区二区视频| av免费精品一区二区三区| 欧美最新精品| 午夜精品视频网站| av在线免费网址| 在线电影av不卡网址| 天堂在线免费av| 欧美日韩精品在线观看| 99鲁鲁精品一区二区三区| 2019国产精品| 91九色蝌蚪porny| 激情亚洲综合在线| 色一情一乱一伦一区二区三区日本| 国产一区激情| 欧美 日韩 国产 在线观看| 欧美日韩一区二区三区四区不卡 | 久久综合狠狠综合久久激情| 五月天国产视频| 91精品啪在线观看国产81旧版| 久久综合福利| 日本成人片在线| 97视频在线看| 国产中文在线播放| 色综合视频一区中文字幕| 欧美另类极品| 色婷婷综合久久久久中文字幕1| 邻居大乳一区二区三区| 日韩精品在线视频| 五月婷婷丁香网| 亚洲第一精品久久忘忧草社区| 精品久久久久成人码免费动漫| 在线播放中文字幕一区| 亚洲系列在线观看| 欧美人与性动xxxx| 一级欧美一级日韩| 欧美日韩亚洲综合在线| 亚洲精品一区二区二区| 一本到三区不卡视频| 青青青国产在线| 色综合天天综合狠狠| 无码人妻久久一区二区三区| 色婷婷激情久久| 欧美国产一级片| 欧美性色欧美a在线播放| 中文字幕+乱码+中文乱码91| 精品污污网站免费看| 中文字幕码精品视频网站| 欧美日韩国产乱码电影| 国产精品久久久久久久一区二区| 欧美精品成人一区二区三区四区| 国产强被迫伦姧在线观看无码| 欧美成人综合网站| 区一区二在线观看| 在线亚洲人成电影网站色www| 看黄色一级大片| 欧美日韩一区精品| 国产人妻精品一区二区三| 欧美mv和日韩mv的网站| 无码h黄肉3d动漫在线观看| 亚洲男人天堂2019| eeuss影院www在线观看| 欧美成人免费全部| 2020av在线| 日本成人在线视频网址| 精品久久在线| 高清国产一区| 自拍欧美一区| 在线天堂一区av电影| 欧美日韩国产一区精品一区| www国产精品内射老熟女| 日本最新不卡在线| 久久久精品视频国产| 99视频热这里只有精品免费| 性猛交娇小69hd| 亚洲男人的天堂在线aⅴ视频| 奇米影视第四色777| 欧美在线观看你懂的| 精品人妻一区二区三区换脸明星| 亚洲精品第一页| 日本在线观看www| 亚洲3p在线观看| 久久人体av| 精品一区久久久久久| 久久福利综合| 日日橹狠狠爱欧美超碰| 精品中文字幕一区二区小辣椒| 日韩综合第一页| 国产精品福利一区二区三区| 日韩三级小视频| 在线播放91灌醉迷j高跟美女 | www.国产亚洲| 日韩高清电影一区| 稀缺小u女呦精品呦| 中文字幕一区二区在线播放| 国产www在线| 欧美一级二级三级乱码| 岛国视频免费在线观看| 欧美激情中文网| 亚洲网站三级| 亚洲精品成人自拍| 香蕉久久国产| 麻豆短视频在线观看| 国产精品久久777777| 国产精品第5页| 亚洲第一精品自拍| av在线影院| 91九色视频导航| 成人影院在线| 北条麻妃视频在线| 26uuu久久天堂性欧美| 国产一级视频在线播放| 欧美久久久久久久久久| 国产有码在线| 日本sm极度另类视频| 欧洲亚洲成人| 你真棒插曲来救救我在线观看| 亚洲一级一区| 日本一二三区在线| 国产精品91一区二区| 亚洲精品国产精品国自| 一本大道综合伊人精品热热 | 中文字幕综合一区| 韩国久久久久久| 久久资源亚洲| 先锋影音久久久| 一女三黑人理论片在线| 亚洲va欧美va天堂v国产综合| 亚洲成a人片77777精品| 欧美日韩aaaa| 亚洲一区二区三区四区电影| 国产另类第一区| 欧美精品麻豆| 麻豆tv在线观看| 亚洲一区在线电影| 亚洲免费不卡视频| 久久久久久有精品国产| 风间由美性色一区二区三区四区| 激情小视频网站| 成人网在线播放| 日本一道本视频| 欧洲av一区二区嗯嗯嗯啊| 浮生影视网在线观看免费| 国产精品成人av性教育| 欧美亚洲国产激情| 奇米影视四色在线| 成人欧美一区二区三区白人 | 精品一区二区亚洲| 亚洲美女尤物影院| 91久久综合亚洲鲁鲁五月天| 99久久99久久精品国产片桃花| www.超碰97.com| 亚洲卡通欧美制服中文| 精品人妻aV中文字幕乱码色欲| 久久久久国产精品www| 乱亲女h秽乱长久久久| 男人操女人免费| 国产精品美女一区二区三区 | 亚洲精品久久久久| 毛片无码国产| 在线视频亚洲自拍| 成人免费电影视频| 一级做a爰片久久毛片| 这里只有视频精品| 一区二区三区自拍视频| 高清在线观看免费| 国产精品久久久久久久久免费丝袜| av加勒比在线| 欧美亚洲激情在线| 91麻豆精品国产91久久久平台| 国模大尺度视频| 色综合天天综合网国产成人综合天| 毛片在线播放a| 狠狠综合久久av| 精品亚洲porn| 偷偷操不一样的久久| 中文字幕欧美日韩va免费视频| 亚洲国产欧美国产第一区| 成人在线免费观看av| 最新国产精品久久精品| 色欲av永久无码精品无码蜜桃| 国产精品自在线| 亚洲精华国产欧美| 婷婷综合在线视频| 亚洲激情自拍图| 成人在线日韩| 成人免费视频久久| 亚洲国产精品久久久久秋霞影院|