当前位置: 首页 > news >正文

网站建设部署查网站排名

网站建设部署,查网站排名,落地页网站,免费的室内设计网站目录 1.高维数组 1.1 回归数据准备 1.2 分类数据准备 2. 图像数据 1.torchvision.datasets模块导入数据并预处理 2.从文件夹中导入数据并进行预处理 pytorch中torch.utils.data模块包含着一些常用的数据预处理的操作,主要用于数据的读取、切分、准备等。 常用…

目录

1.高维数组

1.1 回归数据准备

1.2 分类数据准备

2. 图像数据

1.torchvision.datasets模块导入数据并预处理

2.从文件夹中导入数据并进行预处理


pytorch中torch.utils.data模块包含着一些常用的数据预处理的操作,主要用于数据的读取、切分、准备等。

常用数据操作类功能
torch.utils.data.TensorDataset()将数据处理为张量
torch.utils.data.ConcatDataset()连接多个数据集
torch.utils.data.Subset()根据索引获取数据集的子集
torch.utils.data.DataLoader()数据加载器
torch.utils.data.random_split()随机将数据集拆分为给定长度的非重叠数据集

使用这些类能够对高维数组、图像等各种类型的数据进行预处理,以便深度学习模型的使用,针对文本数据的处理可以使用torchtext库进行相关的数据准备操作。

1.高维数组

在很多情况下,我们需要从文本(如CSV文件)中读取高维数组数据,这类数据的特征是每个样本都有很多个预测变量(特征)和一个被预测变量(目标标签),特征通常是数值变量或者离散变量,被预测变量如果是连续的数值,则对应着回归问题,如果是离散变量,则对应分类问题。

1.1 回归数据准备

import torch
import numpy as np
import torch.utils.data as Data
from sklearn.datasets import load_boston,load_iris
#读取波士顿回归数据
boston_x,boston_y=load_boston(return_X_y=True)
print(boston_x.dtype)
print(boston_y.dtype)
"""
上面程序输出的数据集的特征和被预测变量都是numpy的64位浮点型数据。
而使用Pytorch时需要的数据是torch的32位浮点数的张量
需要将boston_x,boston_y转换为32位浮点型张量
"""
#将训练集转换为张量
train_x=torch.from_numpy(boston_x.astype(np.float32))
train_y=torch.from_numpy(boston_y.astype(np.float32))
"""
上面一段程序先将numpy数据转化为32位浮点型
然后使用torch.from_numpy()函数转化为张量
在训练全连接神经网络的时候,通常一次使用一个
batch的数据进行权重更新,torch.utils.data.DataLoader()
函数可以将输入的数据集(包含数据特征张量和被预测变量张量)
获得一个加载器,每次迭代可使用一个batch的数据
"""
#将训练集转化为张量之后,使用TensorDataset将train_x,train_y整合
train_data=Data.TensorDataset(train_x,train_y)
#定义一个数据加载器,将训练数据集进行批量处理
train_load=Data.DataLoader(dataset=train_data,#使用的数据集batch_size=64,#批处理的样本大小shuffle=True,#每次迭代前打乱数据num_workers=0#使用一个线程
)
print("======================")
#检查训练数据集的一个batch的样本的维度是否正确
for step,(b_x,b_y) in enumerate(train_load):if step>0:break
print("b_x.shape",b_x.shape)
print("b_y.shape",b_y.shape)
print("b_x.dtype",b_x.dtype)
print("b_y.dtype",b_y.dtype)

1.2 分类数据准备

分类数据与回归数据的不同之处在于,分类数据的被预测变量是离散型变量,所以在pytorch中默认的预测标签是64位有符号整型

import torch
import numpy as np
import torch.utils.data as Data
from sklearn.datasets import load_iris
iris_x,iris_y=load_iris(return_X_y=True)
print(iris_x.dtype)
print(iris_y.dtype)
"""
从上面程序输出可知,该数据集的特征数据(x)为64位浮点型,
标签y为32位整型。在pytorch构建网络中,x默认的数据格式是
torch.float32,所以转化为张量时,数据的特征要转化为32位浮点型
数据的类别标签y要转化为64位有符号整型,下面将x,y都转化为张量
"""
train_x=torch.from_numpy(iris_x.astype(np.float32))
train_y=torch.from_numpy(iris_y.astype(np.int64))
# print(train_x.dtype)
# print(train_y.dtype)
#将训练集转化为张量之后,使用TensorDataset将x,y整理到一块
train_data=Data.TensorDataset(train_x,train_y)
train_loader=Data.DataLoader(dataset=train_data,batch_size=10,#批处理样本大小shuffle=True,#每次迭代前打乱num_workers=0#使用两个线程
)
#检查一个训练集的batch样本维度是否正确
for step,(b_x,b_y) in enumerate(train_loader):if step>0:break
print("b_x.shape",b_x.shape)
print("b_y.shape",b_y.shape)
print("b_x.dtype",b_x.dtype)
print("b_y.dtype",b_y.dtype)

2. 图像数据

torchvision中的datasets模块包含多种常用的分类数据集下载及导入函数

数据集对应的类描述
datasets.MNIST()手写字体数据集
datasets.FashionMNIST()衣服、鞋子、包等10类数据集
dataets.KMNIST()一些文字的灰度数据
datasets.CocoCaptions()用于图像标注的MS coco数据
datasets.CocoDetection()用于检测的MS COCO数据
datasets.LSUN()10个场景和20个目标分类数据集
datasets.CIFAR10()CIFAR10类数据集
datasets.CIFAR100()CIFAR100类数据集
datasets.STL10()包含10类的分类数据集和大量的未标注数据
datasets.ImageFolder()定义一个数据加载器从文件夹中读取数据

torchvision中的transforms模块可以针对每张图像进行预处理操作。

数据集对应的类描述
transforms.Compose()将多个transform组合起来使用
transforms.Scale()按照指定图像尺寸对图像进行调整
transforms.CenterCrop()将图像进行中心切割,得到给定的大小
transforms.RandomCrop()切割中心点的位置随机选取
transforms.RandomHorizontalFlip()图像随机水平翻转
transforms.RandomSizedCrop()将给定的图像随机切割,然后再变换为给定的大小
transforms.Pad()将图像所有边用给定的pad value 填充
transforms.ToTensor()把一个取值范围是[0-255]的PIL图像或形状为[H,W,C]的数组,转换成形状为[C,H,W],取值范围是[0,1.0]的张量
transforms.Normalize()将给定的图像进行规范化操作
transforms.Lambda(lam)使用lam作为转化器,可自定义图像操作方式

1.torchvision.datasets模块导入数据并预处理

FashionMNIST数据集包含一个60000张28*28的灰度图片作为训练集,以及10000张28*28的灰度图片作测试集。数据共10类,分别是鞋子、连衣裙等服饰类的图像。


import torch
import torch.utils.data as Data
from torchvision.datasets import FashionMNIST
import torchvision.transforms  as transforms
from torchvision.datasets import ImageFoldertrain_data=FashionMNIST(root="./data/FashionMNIST",#数据的路径train=True,#只使用训练数据集transform=transforms.ToTensor(),download=False#数据集已经离线下载,无需再次下载
)
train_loader=Data.DataLoader(dataset=train_data,batch_size=64,shuffle=True,num_workers=2
)
"""
上面的程序主要完成了以下功能:
(1)通过FashionMNIST()函数来导入数据。在该函数中root参数用于指定需要导
入数据的所在路径(如果指定路径下已经有该数据集,需要指定对应的参数download= False,
如果指定路径下没有该数据集,需要指定对应的参数download=True,将会自动下载数据)。
参数train的取值为Ture或者False,表示导入的数据是训练集(60000张图片)或测试集(10000张图片)。
参数transform用于指定数据集的变换,transform = transforms.ToTensor()表示将数据中的
像素值转换到0 ~1之间,并且将图像数据从形状[H,W ,C]转换成形状为[C,H,W]
(2)在数据导入后需要利用数据加载器DataLoader()将整个数据集切分为多个batch,
用于网络优化时利用梯度下降算法进行求解。在函数中dataset参数用于指定使用的数据集; 
batch__size参数指定每个batch使用的样本数量;shuffle = True表示从数据集中获取每个
批量图片时需先打乱数据;num_workers参数用于指定导人数据使用的进程数量(和并行处理相似)。
经过处理后该训练数据集包含938个batch
"""
#对训练集进行处理后,可以使用相同的方法对测试集进行处理
test_data=FashionMNIST(root="./data/FashionMNIST",train=False,download=False
)
#为数据添加一个通道维度,并且取值范围缩放到0-1之间
test_data_x=test_data.data.type(torch.FloatTensor) /255.0
test_data_x=torch.unsqueeze(test_data_x,dim=1)
test_data_y=test_data.targets
"""
上面的程序使用FashionMNIST()函数导入数据
使用train = False参数指定导入测试集
并将数据集中的像素值除以255.0,使像素值转化到0 ~1之间
再使用函数torch.unsqueeze()为数据添加一个通道即可得到测试数据集。
在test_data中使用test_data.data获取图像数据,
使用test_data.targets获取每个图像所对应的标签。"""

2.从文件夹中导入数据并进行预处理

在torchvision的datasets模块中包含有ImageFolder()函数,它可以读取:在相同的文件路径下,每类数据都单独存放在不同的文件夹下。

#对训练集进行预处理
train_data_transforms=transforms.Compose(transforms.RandomResizedCrop(224),#随机长宽比裁剪224*224transforms.RandomHorizontalFlip(),#依据概率p=0.5水平翻转transforms.ToTensor(),#转化为将张量并归一化至[0-1]transforms.Normalize([0.485,0.456,0.406],[0.229,0.224,0.225])
)
#读取图像
train_data_dir="data/imageData"
train_data=ImageFolder(train_data_dir,transform=train_data_transforms)
train_data_loader=Data.DataLoader(train_data,batch_size=4,shuffle=True,num_workers=2
)

http://www.mnyf.cn/news/53990.html

相关文章:

  • 网站开发+百度编辑器网页制作代码
  • 免费app做logo的网站网上推广赚钱项目
  • asp建设的网站制作百度搜索推广官网
  • 公众号做漫画网站网站下载免费软件
  • 网站怎么能被百度收录谷歌推广app
  • 深圳做手机网站网站怎么优化推荐
  • 做美图 网站有哪些东西吗电商网站公司
  • 个人无网站怎样做cps广告八大营销方式有哪几种
  • 小红书企业推广扬州seo优化
  • 正规网站制作公司是哪家上海seo网站优化
  • flash网站导航条怎么做长沙seo搜索
  • 做网站需要啥备案之类的嘛网络怎么做推广
  • 域名怎么实名认证百度seo公司报价
  • 白日梦怎么做的网站推文关键词生成器
  • 做网站是什么会计科目镇江搜索优化技巧
  • cc域名做网站怎么样手机上如何制作自己的网站
  • 张掖专业做网站的公司中国今天最新军事新闻
  • 房地产楼盘微信网站建设营销方案实体店营销方案
  • 武汉知名网站开发公司seo项目经理
  • 游戏网站开发运营的几个思路seo积分优化
  • 成都网站建设福州焊工培训ppt课件
  • 天津市建筑招标信息网网站在线优化工具
  • dede网站暂时关闭上海搜索seo
  • 网站后期运营方案步骤曼联vs曼联直播
  • 大连城乡住房建设厅网站seo学习网站
  • 连云港网站建设常宁seo外包
  • 怎么在百度提交自己的网站推广赚佣金的平台
  • 劳务输送网站建设方案成都网络推广
  • 免费的网站app下载市场调研报告3000字范文
  • 网站开发找聚脑网重庆森林经典台词罐头