最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pytorch深度神經(jīng)網(wǎng)絡(luò)入門準備自己的圖片數(shù)據(jù)

 更新時間:2022年06月29日 17:31:24   作者:denny402  
這篇文章主要為大家介紹了pytorch深度神經(jīng)網(wǎng)絡(luò)入門準備自己的圖片數(shù)據(jù)示例過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

正文

圖片數(shù)據(jù)一般有兩種情況:

1、所有圖片放在一個文件夾內(nèi),另外有一個txt文件顯示標簽。

2、不同類別的圖片放在不同的文件夾內(nèi),文件夾就是圖片的類別。

針對這兩種不同的情況,數(shù)據(jù)集的準備也不相同,第一種情況可以自定義一個Dataset,第二種情況直接調(diào)用torchvision.datasets.ImageFolder來處理。下面分別進行說明:

一、所有圖片放在一個文件夾內(nèi)

這里以mnist數(shù)據(jù)集的10000個test為例, 我先把test集的10000個圖片保存出來,并生著對應(yīng)的txt標簽文件。

先在當前目錄創(chuàng)建一個空文件夾mnist_test, 用于保存10000張圖片,接著運行代碼:

import torch
import torchvision
import matplotlib.pyplot as plt
from skimage import io
mnist_test= torchvision.datasets.MNIST(
    './mnist', train=False, download=True
)
print('test set:', len(mnist_test))
f=open('mnist_test.txt','w')
for i,(img,label) in enumerate(mnist_test):
    img_path="./mnist_test/"+str(i)+".jpg"
    io.imsave(img_path,img)
    f.write(img_path+' '+str(label)+'\n')
f.close()

經(jīng)過上面的操作,10000張圖片就保存在mnist_test文件夾里了,并在當前目錄下生成了一個mnist_test.txt的文件,大致如下:

前期工作就裝備好了,接著就進入正題了:

from torchvision import transforms, utils
from torch.utils.data import Dataset, DataLoader
import matplotlib.pyplot as plt
from PIL import Image
def default_loader(path):
    return Image.open(path).convert('RGB')
class MyDataset(Dataset):
    def __init__(self, txt, transform=None, target_transform=None, loader=default_loader):
        fh = open(txt, 'r')
        imgs = []
        for line in fh:
            line = line.strip('\n')
            line = line.rstrip()
            words = line.split()
            imgs.append((words[0],int(words[1])))
        self.imgs = imgs
        self.transform = transform
        self.target_transform = target_transform
        self.loader = loader
    def __getitem__(self, index):
        fn, label = self.imgs[index]
        img = self.loader(fn)
        if self.transform is not None:
            img = self.transform(img)
        return img,label
    def __len__(self):
        return len(self.imgs)
train_data=MyDataset(txt='mnist_test.txt', transform=transforms.ToTensor())
data_loader = DataLoader(train_data, batch_size=100,shuffle=True)
print(len(data_loader))
def show_batch(imgs):
    grid = utils.make_grid(imgs)
    plt.imshow(grid.numpy().transpose((1, 2, 0)))
    plt.title('Batch from dataloader')
for i, (batch_x, batch_y) in enumerate(data_loader):
    if(i<4):
        print(i, batch_x.size(),batch_y.size())
        show_batch(batch_x)
        plt.axis('off')
        plt.show()

自定義了一個MyDataset, 繼承自torch.utils.data.Dataset。然后利用torch.utils.data.DataLoader將整個數(shù)據(jù)集分成多個批次。

二、不同類別的圖片放在不同的文件夾內(nèi)

同樣先準備數(shù)據(jù),這里以flowers數(shù)據(jù)集為例

提取 鏈接: https://pan.baidu.com/s/1dcAsOOZpUfWNYR77JGXPHA?pwd=mwg6 

花總共有五類,分別放在5個文件夾下。大致如下圖:

我的路徑是d:/flowers/.

數(shù)據(jù)準備好了,就開始準備Dataset吧,這里直接調(diào)用torchvision里面的ImageFolder

import torch
import torchvision
from torchvision import transforms, utils
import matplotlib.pyplot as plt
img_data = torchvision.datasets.ImageFolder('D:/bnu/database/flower',
                                            transform=transforms.Compose([
                                                transforms.Scale(256),
                                                transforms.CenterCrop(224),
                                                transforms.ToTensor()])
                                            )
print(len(img_data))
data_loader = torch.utils.data.DataLoader(img_data, batch_size=20,shuffle=True)
print(len(data_loader))
def show_batch(imgs):
    grid = utils.make_grid(imgs,nrow=5)
    plt.imshow(grid.numpy().transpose((1, 2, 0)))
    plt.title('Batch from dataloader')
for i, (batch_x, batch_y) in enumerate(data_loader):
    if(i<4):
        print(i, batch_x.size(), batch_y.size())
        show_batch(batch_x)
        plt.axis('off')
        plt.show()

以上就是pytorch深度神經(jīng)網(wǎng)絡(luò)入門準備自己的圖片數(shù)據(jù)的詳細內(nèi)容,更多關(guān)于pytorch圖片數(shù)據(jù)準備的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python使用VIF實現(xiàn)檢測多重共線性

    Python使用VIF實現(xiàn)檢測多重共線性

    多重共線性是指多元回歸模型中有兩個或兩個以上的自變量,它們之間具有高度的相關(guān)性,本文主要介紹了如何使用VIF實現(xiàn)檢測多重共線性,需要的可以參考下
    2023-12-12
  • Python 的第三方調(diào)試庫 ???pysnooper?? 使用示例

    Python 的第三方調(diào)試庫 ???pysnooper?? 使用示例

    這篇文章主要介紹了Python 的第三方調(diào)試庫 ???pysnooper?? 使用示例的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • python 讀取視頻,處理后,實時計算幀數(shù)fps的方法

    python 讀取視頻,處理后,實時計算幀數(shù)fps的方法

    今天小編就為大家分享一篇python 讀取視頻,處理后,實時計算幀數(shù)fps的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python批量獲取并保存手機號歸屬地和運營商的示例

    Python批量獲取并保存手機號歸屬地和運營商的示例

    這篇文章主要介紹了Python批量獲取并保存手機號的歸屬地和運營商的示例,幫助大家更好的利用python處理數(shù)據(jù),感興趣的朋友可以了解下
    2020-10-10
  • Python使用遺傳算法解決最大流問題

    Python使用遺傳算法解決最大流問題

    這篇文章主要為大家詳細介紹了Python使用遺傳算法解決最大流問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python爬蟲請求頭設(shè)置代碼

    python爬蟲請求頭設(shè)置代碼

    在本篇文章里小編給大家整理的是一篇關(guān)于python爬蟲請求頭如何設(shè)置內(nèi)容,需要的朋友們可以學(xué)習下。
    2020-07-07
  • Python中作用域的深入講解

    Python中作用域的深入講解

    這篇文章主要給大家介紹了關(guān)于Python中作用域的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2018-12-12
  • 簡單了解為什么python函數(shù)后有多個括號

    簡單了解為什么python函數(shù)后有多個括號

    這篇文章主要介紹了簡單了解為什么python函數(shù)后有多個括號,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2019-12-12
  • 基于python cut和qcut的用法及區(qū)別詳解

    基于python cut和qcut的用法及區(qū)別詳解

    今天小編就為大家分享一篇基于python cut和qcut的用法及區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python標準庫學(xué)習之sys模塊詳解

    python標準庫學(xué)習之sys模塊詳解

    sys模塊是最常用的和python解釋器交互的模塊,sys模塊可供訪問由解釋器(interpreter)使用或維護的變量和與解釋器進行交互的函數(shù),下面這篇文章主要給大家介紹了關(guān)于python標準庫學(xué)習之sys模塊的相關(guān)資料,需要的朋友可以參考下
    2022-08-08

最新評論

芷江| 新竹市| 广南县| 临江市| 阳山县| 襄樊市| 德庆县| 穆棱市| 淅川县| 抚宁县| 广平县| 永安市| 四子王旗| 宜兴市| 宜黄县| 阳江市| 新宁县| 孙吴县| 加查县| 韶山市| 隆昌县| 澳门| 丹阳市| 澳门| 蒲江县| 进贤县| 剑阁县| 南华县| 乡宁县| 平安县| 永善县| 关岭| 灵宝市| 沛县| 英德市| 芷江| 洮南市| 洛川县| 江津市| 连山| 阿拉善盟|