在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

PyTorch入門須知PyTorch教程-2.2. 數據預處理

jf_bzMfoexS ? 來源:PyTorch ? 作者:PyTorch ? 2023-06-05 15:15 ? 次閱讀

到目前為止,我們一直在處理以現成張量形式到達的合成數據。然而,要在野外應用深度學習,我們必須提取以任意格式存儲的雜亂數據,并對其進行預處理以滿足我們的需要。幸運的是,pandas 庫可以完成大部分繁重的工作。本節雖然不能替代適當的pandas 教程,但將為您提供一些最常見例程的速成課程。

2.2.1. 讀取數據集

逗號分隔值 (CSV) 文件普遍用于存儲表格(類似電子表格)數據。此處,每一行對應一個記錄并由多個(逗號分隔)字段組成,例如,“Albert Einstein,March 14 1879,Ulm,Federal polytechnic school,Accomplishments in the field of gravitational physics”。為了演示如何加載 CSV 文件pandas,我們在下面創建了一個 CSV 文件 ../data/house_tiny.csv。此文件表示房屋數據集,其中每一行對應一個不同的房屋,列對應房間數 ( NumRooms)、屋頂類型 ( RoofType) 和價格 ( Price)。

import os

os.makedirs(os.path.join('..', 'data'), exist_ok=True)
data_file = os.path.join('..', 'data', 'house_tiny.csv')
with open(data_file, 'w') as f:
  f.write('''NumRooms,RoofType,Price
NA,NA,127500
2,NA,106000
4,Slate,178100
NA,NA,140000''')

現在讓我們導入pandas并加載數據集read_csv。

import pandas as pd

data = pd.read_csv(data_file)
print(data)

  NumRooms RoofType  Price
0    NaN   NaN 127500
1    2.0   NaN 106000
2    4.0  Slate 178100
3    NaN   NaN 140000

import pandas as pd

data = pd.read_csv(data_file)
print(data)

  NumRooms RoofType  Price
0    NaN   NaN 127500
1    2.0   NaN 106000
2    4.0  Slate 178100
3    NaN   NaN 140000

import pandas as pd

data = pd.read_csv(data_file)
print(data)

  NumRooms RoofType  Price
0    NaN   NaN 127500
1    2.0   NaN 106000
2    4.0  Slate 178100
3    NaN   NaN 140000

import pandas as pd

data = pd.read_csv(data_file)
print(data)

  NumRooms RoofType  Price
0    NaN   NaN 127500
1    2.0   NaN 106000
2    4.0  Slate 178100
3    NaN   NaN 140000

2.2.2. 數據準備

在監督學習中,我們訓練模型在給定一組輸入值的情況下預測指定的目標值。我們處理數據集的第一步是分離出對應于輸入值和目標值的列。我們可以按名稱或通過基于整數位置的索引 ( ) 選擇列。iloc

您可能已經注意到,pandas將所有 CSV 條目替換NA為一個特殊的NaN(不是數字)值。這也可能在條目為空時發生,例如“3,,,270000”。這些被稱為缺失值,它們是數據科學的“臭蟲”,是您在整個職業生涯中都會遇到的持續威脅。根據上下文,缺失值可以通過 插補或刪除來處理。插補用缺失值的估計值替換缺失值,而刪除只是丟棄那些包含缺失值的行或列。

以下是一些常見的插補啟發法。對于分類輸入字段,我們可以將其視為NaN一個類別。由于該RoofType 列采用值Slate和NaN,pandas可以將此列轉換為兩列RoofType_Slate和RoofType_nan。屋頂類型為的行將分別將和 Slate的值設置為 1 和 0。相反的情況適用于具有缺失值的行。RoofType_SlateRoofType_nanRoofType

inputs, targets = data.iloc[:, 0:2], data.iloc[:, 2]
inputs = pd.get_dummies(inputs, dummy_na=True)
print(inputs)

  NumRooms RoofType_Slate RoofType_nan
0    NaN        0       1
1    2.0        0       1
2    4.0        1       0
3    NaN        0       1

inputs, targets = data.iloc[:, 0:2], data.iloc[:, 2]
inputs = pd.get_dummies(inputs, dummy_na=True)
print(inputs)

  NumRooms RoofType_Slate RoofType_nan
0    NaN        0       1
1    2.0        0       1
2    4.0        1       0
3    NaN        0       1

inputs, targets = data.iloc[:, 0:2], data.iloc[:, 2]
inputs = pd.get_dummies(inputs, dummy_na=True)
print(inputs)

  NumRooms RoofType_Slate RoofType_nan
0    NaN        0       1
1    2.0        0       1
2    4.0        1       0
3    NaN        0       1

inputs, targets = data.iloc[:, 0:2], data.iloc[:, 2]
inputs = pd.get_dummies(inputs, dummy_na=True)
print(inputs)

  NumRooms RoofType_Slate RoofType_nan
0    NaN        0       1
1    2.0        0       1
2    4.0        1       0
3    NaN        0       1

對于缺失的數值,一種常見的啟發式方法是用 NaN相應列的平均值替換條目。

inputs = inputs.fillna(inputs.mean())
print(inputs)

  NumRooms RoofType_Slate RoofType_nan
0    3.0        0       1
1    2.0        0       1
2    4.0        1       0
3    3.0        0       1

inputs = inputs.fillna(inputs.mean())
print(inputs)

  NumRooms RoofType_Slate RoofType_nan
0    3.0        0       1
1    2.0        0       1
2    4.0        1       0
3    3.0        0       1

inputs = inputs.fillna(inputs.mean())
print(inputs)

  NumRooms RoofType_Slate RoofType_nan
0    3.0        0       1
1    2.0        0       1
2    4.0        1       0
3    3.0        0       1

inputs = inputs.fillna(inputs.mean())
print(inputs)

  NumRooms RoofType_Slate RoofType_nan
0    3.0        0       1
1    2.0        0       1
2    4.0        1       0
3    3.0        0       1

2.2.3. 轉換為張量格式

inputs現在 和中的所有條目targets都是數字,我們可以將它們加載到張量中(回憶一下2.1 節)。

import torch

X, y = torch.tensor(inputs.values), torch.tensor(targets.values)
X, y

(tensor([[3., 0., 1.],
     [2., 0., 1.],
     [4., 1., 0.],
     [3., 0., 1.]], dtype=torch.float64),
 tensor([127500, 106000, 178100, 140000]))

from mxnet import np

X, y = np.array(inputs.values), np.array(targets.values)
X, y

(array([[3., 0., 1.],
    [2., 0., 1.],
    [4., 1., 0.],
    [3., 0., 1.]], dtype=float64),
 array([127500, 106000, 178100, 140000], dtype=int64))

from jax import numpy as jnp

X, y = jnp.array(inputs.values), jnp.array(targets.values)
X, y

No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)

(Array([[3., 0., 1.],
    [2., 0., 1.],
    [4., 1., 0.],
    [3., 0., 1.]], dtype=float32),
 Array([127500, 106000, 178100, 140000], dtype=int32))

import tensorflow as tf

X, y = tf.constant(inputs.values), tf.constant(targets.values)
X, y

(,
 )

2.2.4. 討論

您現在知道如何對數據列進行分區、估算缺失變量以及將pandas數據加載到張量中。在第 5.7 節中,您將掌握更多數據處理技能。雖然這個速成課程讓事情變得簡單,但數據處理可能會變得棘手。例如,我們的數據集可能分布在從關系數據庫中提取的多個文件中,而不是到達單個 CSV 文件。例如,在電子商務應用程序中,客戶地址可能存在于一個表中,而購買數據則存在于另一個表中。此外,從業者還面臨著分類和數字以外的無數數據類型。其他數據類型包括文本字符串、圖像、音頻數據和點云。通常,需要先進的工具和高效的算法來防止數據處理成為機器學習管道中的最大瓶頸。當我們涉及計算機視覺和自然語言處理時,就會出現這些問題。最后,我們必須關注數據質量。現實世界的數據集經常受到異常值、傳感器錯誤測量和記錄錯誤的困擾,在將數據輸入任何模型之前必須解決這些問題。數據可視化工具,例如 seaborn、 Bokeh或 matplotlib可以幫助您手動檢查數據并形成關于您可能需要解決的問題的直覺。

2.2.5. 練習

嘗試從UCI 機器學習存儲庫加載數據集,例如 Abalone并檢查它們的屬性。其中有多少缺失值?變量的哪一部分是數字的、分類的或文本的?

嘗試按名稱而不是按列號索引和選擇數據列。有關索引的 Pandas 文檔 包含有關如何執行此操作的更多詳細信息

您認為您可以通過這種方式加載多大的數據集?可能有什么限制?提示:考慮讀取數據的時間、表示、處理和內存占用。在筆記本電腦上試試這個。如果您在服務器上試用它會發生什么變化?

您將如何處理具有大量類別的數據?如果類別標簽都是唯一的怎么辦?你應該包括后者嗎?

你能想到什么 pandas 的替代品?如何從文件加載 NumPy 張量?查看Pillow,Python 圖像庫。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7081

    瀏覽量

    89178
  • python
    +關注

    關注

    56

    文章

    4799

    瀏覽量

    84812
  • 深度學習
    +關注

    關注

    73

    文章

    5507

    瀏覽量

    121273
  • pytorch
    +關注

    關注

    2

    文章

    808

    瀏覽量

    13249
收藏 人收藏

    評論

    相關推薦

    Pytorch模型訓練實用PDF教程【中文】

    ,結構與機器學習三大部分一致:第一章,介紹數據的劃分,預處理數據增強;第二章,介紹模型的定義,權值初始化,模型 Finetune;第三章,介紹各種損失函數及優化器;第四章,介紹可視化工具,用于監控
    發表于 12-21 09:18

    Pytorch入門之的基本操作

    Pytorch入門之基本操作
    發表于 05-22 17:15

    PyTorch如何入門

    PyTorch 入門實戰(一)——Tensor
    發表于 06-01 09:58

    Pytorch入門教程與范例

    的深度學習框架。 對于系統學習 pytorch,官方提供了非常好的入門教程?,同時還提供了面向深度學習的示例,同時熱心網友分享了更簡潔的示例。 1. overview 不同于 theano
    發表于 11-15 17:50 ?5423次閱讀
    <b class='flag-5'>Pytorch</b><b class='flag-5'>入門</b>教程與范例

    PyTorch官網教程PyTorch深度學習:60分鐘快速入門中文翻譯版

    PyTorch 深度學習:60分鐘快速入門”為 PyTorch 官網教程,網上已經有部分翻譯作品,隨著PyTorch1.0 版本的公布,這個教程有較大的代碼改動,本人對教程進行重新翻
    的頭像 發表于 01-13 11:53 ?1w次閱讀

    基于PyTorch的深度學習入門教程之PyTorch簡單知識

    計算 Part3:使用PyTorch構建一個神經網絡 Part4:訓練一個神經網絡分類器 Part5:數據并行化 本文是關于Part1的內容。 Part1:PyTorch簡單知識 PyTorc
    的頭像 發表于 02-16 15:20 ?2276次閱讀

    基于PyTorch的深度學習入門教程之PyTorch的自動梯度計算

    計算 Part3:使用PyTorch構建一個神經網絡 Part4:訓練一個神經網絡分類器 Part5:數據并行化 本文是關于Part2的內容。 Part2:PyTorch的自動梯度計算 autograd
    的頭像 發表于 02-16 15:26 ?2048次閱讀

    利用Python和PyTorch處理面向對象的數據集(1)

    在本文中,我們將提供一種高效方法,用于完成數據的交互、組織以及最終變換(預處理)。隨后,我們將講解如何在訓練過程中正確地把數據輸入給模型。PyTorch 框架將幫助我們實現此目標,我們
    的頭像 發表于 08-02 08:03 ?690次閱讀

    那些年在pytorch上踩過的坑

    今天又發現了一個pytorch的小坑,給大家分享一下。手上兩份同一模型的代碼,一份用tensorflow寫的,另一份是我拿pytorch寫的,模型架構一模一樣,預處理數據的邏輯也一模一
    的頭像 發表于 02-22 14:18 ?1075次閱讀
    那些年在<b class='flag-5'>pytorch</b>上踩過的坑

    那些年在pytorch上過的當

    最近在修改上一個同事加載和預處理數據的代碼,原版的代碼使用tf1.4.1寫的,數據加載也是完全就是for循環讀取+預處理,每讀入并預處理好一
    的頭像 發表于 02-22 14:19 ?498次閱讀
    那些年在<b class='flag-5'>pytorch</b>上過的當

    PyTorch教程-2.2.數據預處理

    到目前為止,我們一直在處理以現成張量形式到達的合成數據。然而,要在野外應用深度學習,我們必須提取以任意格式存儲的雜亂數據,并對其進行預處理以滿足我們的需要。幸運的是,pandas 庫可
    的頭像 發表于 06-02 09:34 ?585次閱讀

    PyTorch教程之數據預處理

    電子發燒友網站提供《PyTorch教程之數據預處理.pdf》資料免費下載
    發表于 06-02 14:11 ?0次下載
    <b class='flag-5'>PyTorch</b>教程之<b class='flag-5'>數據</b><b class='flag-5'>預處理</b>

    深度學習框架pytorch入門與實踐

    深度學習框架pytorch入門與實踐 深度學習是機器學習中的一個分支,它使用多層神經網絡對大量數據進行學習,以實現人工智能的目標。在實現深度學習的過程中,選擇一個適用的開發框架是非常關鍵
    的頭像 發表于 08-17 16:03 ?1617次閱讀

    pytorch如何訓練自己的數據

    pandas matplotlib 數據準備 在訓練模型之前,我們需要對數據進行預處理。這包括數據清洗、數據增強、
    的頭像 發表于 07-11 10:04 ?556次閱讀

    PyTorch 數據加載與處理方法

    PyTorch 是一個流行的開源機器學習庫,它提供了強大的工具來構建和訓練深度學習模型。在構建模型之前,一個重要的步驟是加載和處理數據。 1. PyTorch
    的頭像 發表于 11-05 17:37 ?434次閱讀
    主站蜘蛛池模板: 午夜精品在线观看| 欧美性生活一级| 人人干人| www.色网| 狠狠色噜噜狠狠狠狠| 欧美二区三区| 色综合天天综合网国产成人| 2021国产精品| 免费特黄视频| 手机在线视频你懂的| 99国产精品农村一级毛片| 久久久成人影院| 免费黄色地址| 欧美一级欧美三级在线| 亚洲国产成人精品久久| 久久精品国产免费观看99| 亚洲一区二区中文| 黄在线视频| 黄色网 在线播放| 性久久久久| 女人aaaaa片一级一毛片 | 色综合久久中文综合网| 日本亚洲精品成人| 三级高清| 日韩精品午夜| 色老二精品视频在线观看| 五色网| 婷婷综合五月| 欧美性色黄在线视| 国产精品久久永久免费| 国产精品美女在线观看| 又长又大又粗又硬3p免费视 | 网友偷自拍原创区| 欧美在线视频二区| 国产成人mv在线观看入口视频 | 午夜三级毛片| 色综合一区二区三区| 久久精品亚洲青青草原| 午夜tv影院| 男人日女人的网站| 亚洲第二页|