圖像分類數據集

《動手學深度學習》-3.5-學習筆記

# 通過ToTensor實例將圖像數據從PIL類型變換成32位浮點數格式,
# 并除以255使得所有像素的數值均在0~1之間
trans = transforms.ToTensor()#用于將圖像數據從 PIL 圖像格式(Python Imaging Library,Python 的圖像處理庫)轉換為 PyTorch 張量(Tensor)。
mnist_train = torchvision.datasets.FashionMNIST(root="../data", train=True, transform=trans, download=True)#加載訓練數據集
mnist_test = torchvision.datasets.FashionMNIST(root="../data", train=False, transform=trans, download=True)#加載測試數據集
  • torchvision.datasets.FashionMNIST 是 PyTorch 提供的用于加載 FashionMNIST 數據集的類。

  • 參數解釋:

    • root="../data":指定數據集的存儲路徑。如果數據集不存在,PyTorch 會自動下載到這個路徑。

    • train=True:表示加載訓練數據集。

    • transform=trans:指定對圖像數據應用的預處理操作,這里是 transforms.ToTensor(),即將圖像轉換為歸一化的張量。

    • download=True:如果指定路徑下沒有數據集,會自動從網絡下載。

    • ?了解基礎情況:在 PyTorch 中,mnist_train 是一個 torchvision.datasets.FashionMNIST 數據集對象,它是一個可迭代的集合,包含了所有訓練樣本的圖像和標簽。mnist_train[3] 表示獲取數據集中的第四個樣本(索引從 0 開始),包括第四個樣本的圖像和標簽。
    • image.shape 輸出 torch.Size([1, 28, 28]),表示圖像是一個張量(Tensor),形狀為:

      • 1:表示圖像有 1 個通道(灰度圖)。

      • 28:圖像的寬度為 28 像素。

      • 28:圖像的高度為 28 像素。

    • label 輸出的是一個整數,表示圖像的類別標簽。FashionMNIST 數據集有 10 個類別,每個類別對應一個整數標簽(從 0 到 9)。

    • 打印出來看了一下
      ?

      def get_fashion_mnist_labels(labels): """返回Fashion-MNIST數據集的文本標簽"""text_labels = ['t-shirt', 'trouser', 'pullover', 'dress', 'coat','sandal', 'shirt', 'sneaker', 'bag', 'ankle boot']return [text_labels[int(i)] for i in labels]
    • 這是一個列表推導式,用于將輸入的整數標簽列表 labels 轉換為對應的文本標簽列表。

    • 對于 labels 中的每個元素 i

      • int(i) 確保 i 是整數(雖然通常 labels 已經是整數,但這里加了保險)。

      • text_labels[int(i)]text_labels 列表中獲取對應的文本標簽。
        對text_labels

      • 列表的索引(從 0 到 9)對應于數據集中的整數標簽。例如:

        • 0 對應 't-shirt'

        • 1 對應 'trouser'

        • 9 對應 'ankle boot'
          下面這段 僅僅是 使用這個函數,應用場景

def show_images(imgs, num_rows, num_cols, titles=None, scale=1.5): """繪制圖像列表"""figsize = (num_cols * scale, num_rows * scale)_, axes = d2l.plt.subplots(num_rows, num_cols, figsize=figsize)axes = axes.flatten()for i, (ax, img) in enumerate(zip(axes, imgs)):if torch.is_tensor(img):# 圖片張量ax.imshow(img.numpy())else:# PIL圖片ax.imshow(img)ax.axes.get_xaxis().set_visible(False)ax.axes.get_yaxis().set_visible(False)if titles:ax.set_title(titles[i])return axes

?show_images 是一個用于批量顯示圖像的工具函數,

X, y = next(iter(data.DataLoader(mnist_train, batch_size=18)))
show_images(X.reshape(18, 28, 28), 2, 9, titles=get_fashion_mnist_labels(y));

從 FashionMNIST 數據集中加載一批圖像,使用 show_images 函數將圖像以 2 行 9 列的網格形式顯示,并為每張圖像添加文本標簽。


?

創建Dataloader

batch_size = 256def get_dataloader_workers():  """使用4個進程來讀取數據"""return 4train_iter = data.DataLoader(mnist_train, batch_size, shuffle=True,num_workers=get_dataloader_workers())
def load_data_fashion_mnist(batch_size, resize=None): """下載Fashion-MNIST數據集"""trans = [transforms.ToTensor()]if resize:trans.insert(0, transforms.Resize(resize))trans = transforms.Compose(trans)mnist_train = torchvision.datasets.FashionMNIST(root="../data", train=True, transform=trans, download=True)mnist_test = torchvision.datasets.FashionMNIST(root="../data", train=False, transform=trans, download=True)return (data.DataLoader(mnist_train, batch_size, shuffle=True,num_workers=get_dataloader_workers()),data.DataLoader(mnist_test, batch_size, shuffle=False,num_workers=get_dataloader_workers()))

用于下載并加載 FashionMNIST 數據集,并將其轉換為適合訓練和測試的 DataLoader 對象。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/73329.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/73329.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/73329.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

架構師面試(十五):熔斷設計

問題 某電商平臺經常需要在大促運營活動中暫停評論、退款等業務,基于服務治理的設計理念,我們需要對該電商平臺微服務系統的【服務熔斷】進行設計,對此下面描述中說法正確的有哪幾項呢? A. 服務管控系統管理著平臺中所有服務之間…

Ubuntu20.04安裝運行DynaSLAM

目錄 一、安裝Anaconda 二、相關依賴庫安裝 1、boost安裝 2、Eigen 3安裝 3、opencv安裝 4、Pangolin安裝 三、配置Mask_RCNN環境 四、DynaSLAM編譯 五、DynaSLAM運行 一、安裝Anaconda 打開以下鏈接: Index of / 下載和自己系統匹配的安裝包。這里下…

X86 RouterOS 7.18 設置筆記三:防火墻設置(IPV4)

X86 j4125 4網口小主機折騰筆記五:PVE安裝ROS RouterOS X86 RouterOS 7.18 設置筆記一:基礎設置 X86 RouterOS 7.18 設置筆記二:網絡基礎設置(IPV4) X86 RouterOS 7.18 設置筆記三:防火墻設置(IPV4) X86 RouterOS 7.18 設置筆記四…

從 YOLOv1 到 YOLOv2:目標檢測的進化之路

引言 你有沒有想過,當你用手機拍一張照片,里面的人、車、狗是怎么被自動識別出來的?這背后靠的就是目標檢測技術。目標檢測是計算機視覺中的一個重要領域,它不僅要回答“圖片里有什么”,還要告訴你“這些東西在哪里”…

數據的存儲---整型、浮點型

目錄 一、整型在內存中的存儲 1. 原碼、反碼、補碼 2. 大端與小端 二、浮點數在內存中的存儲 1.浮點數的存 2. 浮點數的取 3. 題目解析 一個變量的創建需要在內存中開辟空間,而開辟的空間大小是由數據類型決定的。下面我們就來討論一下整型、浮點型在內存中的…

Java 大視界 -- Java 大數據在智能教育虛擬實驗室建設與實驗數據分析中的應用(132)

💖親愛的朋友們,熱烈歡迎來到 青云交的博客!能與諸位在此相逢,我倍感榮幸。在這飛速更迭的時代,我們都渴望一方心靈凈土,而 我的博客 正是這樣溫暖的所在。這里為你呈上趣味與實用兼具的知識,也…

??Jolt -- 通過JSON配置來處理復雜數據轉換的工具

簡介:一個能夠通過JSON配置(特定的語法)來處理復雜數據轉換的工具。 比如將API響應轉換為內部系統所需的格式,或者處理來自不同來源的數據結構差異。例如,將嵌套的JSON結構扁平化,或者重命名字段&#xff0…

47.全排列 II

47.全排列 II 力扣題目鏈接 給定一個可包含重復數字的序列 nums ,按任意順序 返回所有不重復的全排列。 示例 1: 輸入:nums [1,1,2] 輸出: [[1,1,2],[1,2,1],[2,1,1]]示例 2: 輸入:nums [1,2,3] 輸出…

centos沒有ll

vi /etc/bashrc alias ll‘ls -l’ source /etc/bashrc

04 1個路由器配置一個子網的dhcp服務

前言 這是最近一個朋友的 ensp 相關的問題, 這里來大致了解一下 ensp, 計算機網絡拓撲 相關基礎知識 這里一系列文章, 主要是參照了這位博主的 ensp 專欄 這里 我只是做了一個記錄, 自己實際操作了一遍, 增強了一些 自己的理解 當然 這里僅僅是一個 簡單的示例, 實際場景…

網絡空間安全(31)安全巡檢

一、定義與目的 定義: 安全巡檢是指由專業人員或特定部門負責,對各類設施、設備、環境等進行全面或重點檢查,及時發現潛在的安全隱患或問題。 目的: 預防事故發生:通過定期的安全巡檢,及時發現并解決潛在的…

在IGH ethercat主站中Domain和Entry之間的關系

在 IGH EtherCAT 主站中,“domain”(域)和 “entry”(條目)存在著緊密的關系,具體如下: 數據組織與管理方面:“domain” 是 EtherCAT 主站中用于管理和處理從站配置、數據映射和數據…

信息學奧賽一本通 1449:【例題2】魔板

題目 1449:【例題2】魔板 分析 首先注意:輸入是按順時針給出的,但我們處理時需要按正常順序排,可以用以下代碼讀入 string s(8, 0); // 初始化全零字符串 cin>>s[0]>>s[1]>>s[2]>>s[3]; cin>>…

Unity開發的抖音小游戲接入抖音開放平臺中的流量主(抖音小游戲接入廣告)

前言:作者在進行小游戲審核版本的過程中,碰到了下列問題,所以對這個抖音小游戲接入廣告研究了下。 還有就是作者的TTSDK版本號是6.2.6,使用的Unity版本是Unity2022.3.29f1,最好和作者的兩個版本號保持一致,因為我發現TTSDK舊版的很多函數在新版中就已經無法正常使用了,必…

【xv6操作系統】系統調用與traps機制解析及實驗設計

【xv6操作系統】系統調用與traps機制解析及實驗設計 系統調用相關理論系統調用追溯系統調用實驗設計Sysinfo🚩系統調用總結(結合trap機制) traptrap機制trap代碼流程Backtrace實驗alarm實驗 系統調用 相關理論 隔離性(isolation)…

Docker文件夾上傳秘籍Windows下的高效傳輸之道

哈嘍,大家好,我是木頭左! 一、理解Docker容器與Windows文件系統的差異 在深入探討如何從 Windows 系統將文件夾及遞歸文件夾和文件上傳到 Docker 容器之前,有必要先明晰 Docker 容器與 Windows 文件系統之間存在的本質差異。 (一)Docker 容器的文件系統特性 Docker 容…

08 | 實現版本號打印功能

提示: 所有體系課見專欄:Go 項目開發極速入門實戰課;歡迎加入 云原生 AI 實戰 星球,12 高質量體系課、20 高質量實戰項目助你在 AI 時代建立技術競爭力(聚焦于 Go、云原生、AI Infra);本節課最終…

在微信小程序或前端開發中,picker 和 select 都是用戶交互中用于選擇的組件,但它們在功能、設計和使用場景上有一定的區別

在微信小程序或前端開發中,picker 和 select 都是用戶交互中用于選擇的組件,但它們在功能、設計和使用場景上有一定的區別。 1. picker 的特點 描述: picker 是微信小程序中的原生組件,通常用于選擇單項或多項值,如時…

PMP 證書的含金量怎么樣?

pmp含金量,這是一個很有爭議的話題,我根據我以往的面試跟工作經歷對 PMP 也有幾點看法,想跟大家聊一聊。 一、如果真心想做項目管理,PMP 一定要去考一個 現在的早已不是憑經驗做項目的時代了,各大企業都追求專業式的…

Springboot連接neo4j

?一、Spring Data Neo4j 核心知識體系 ?1. 核心概念 ?圖數據庫特性: 數據以 ?節點(Node)? 和 ?關系(Relationship)? 形式存儲,支持屬性(Property)。查詢語言:Cyp…