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

个人网站收款宝鸡seo培训

个人网站收款,宝鸡seo培训,wordpress baby,怎样把建好的网站上传到互联网深度学习中,我们能看到别人的代码中都有一个继承Dataset类的数据集处理过程,这也是深度学习处理数据集的的基础,下面介绍这个数据集的定义和使用: 1、数据集加载 1.1 通用的定义 Bach:表示每次喂给模型的数据 Epoc…

        深度学习中,我们能看到别人的代码中都有一个继承Dataset类的数据集处理过程,这也是深度学习处理数据集的的基础,下面介绍这个数据集的定义和使用:

1、数据集加载

1.1 通用的定义

Bach:表示每次喂给模型的数据

Epoch:表示训练一次完整数据集数据的过程

解释:当一个数据集的大小为10时,设定batch大小为5,那么这个数据就会分为2份,每份大小为5,依次投入到模型中进行训练。训练完所有数据后,就叫做一次迭代,称为epoch

1.2 继承Dataset类

我们继承Dataset类需要实现它的三个方法,代码在文末,与Dataloader代码一起。

init:载入数据

getitem:返回指定位置数据

len:返回数据长度

固定用法如下:

import numpy as np
import torch
from torch.utils.data import Datasetclass MyDataset(Dataset):def __init__(self):#载入数据passdef __getitem__(self, item):#返回相应位置的数据passdef __len__(self):#返回数据长度pass

 例如我们有数据集为手写数字识别数据,文件目录如下:

        在pytorch当然最简单的是用内置的MNIST函数,这里不使用该方法,使用Dataset类写一下。

载入数据:由于数据量太大,因此我们载入每个数据的索引,也就是数据的路径

返回相应位置的数据:实现给出index,能返回相应位置的数据。

返回数据长度:返回所有数据的个数。

1.3 代码实现

灰度图转换(任选其一)

任选其一都可以实现,将原始图片转为灰度图:

transforms.Grayscale(num_output_channels=1)#transform实现转换
Image.open(image_path).convert("L")        #image库转换灰度图

因此可以写出Dataset类加载代码 :

transform = transforms.Compose([#transforms.Grayscale(num_output_channels=1),  # 转换为单通道灰度图transforms.ToTensor()  # 转换为张量
])
class MyDataset(Dataset):def __init__(self):# 载入数据self.images = []self.labels = []for i in range(10):pathX =os.path.join('../mnist_images/train',str(i))imageNameList = os.listdir(pathX)image = []for filename in imageNameList:imagePath = os.path.join('../mnist_images/train',str(i),filename)image.append(imagePath)label = [i] * len(image)#label = [i for _ in range(len(image))]列表推导式self.images.extend(image)self.labels.extend(label)def __getitem__(self, item):#返回相应位置的数据image = Image.open(self.images[item]).convert("L")#image = Image.open(self.images[item])return transform(image),torch.tensor(self.labels[item])#返回一个元组def __len__(self):#返回数据长度return len(self.images)

1.4 Dataloader批量加载 

        使用Dataset函数处理数据集后,就需要使用Dataloader,它的使用很简单,只有一行:

DataLoader(oneDataset, batch_size=32, shuffle=True, drop_last = False,num_works = 8)

        其中oneDateset表示输入的Dataset对象下面是对其中一些参数的解释:

batach_size 表示一个Batch的大小

shuffle 表示是否打乱数据

drop_last 表示是否舍弃最后数据,若为True那么会舍弃Datasize对batch_size不能整除的部分,也就是如果数据量为10,batch_size为3的话,最后一个数据会被舍弃,如果drop_last为False的话,最后一个数会被保留。也就是最后一个batch_size的大小为1。

num_works 表示使用多少进程加载数据,num_works = 0表示使用主进程加载数据,num_works > 0表示使用多少个子进程加载数据。

        DataLoader返回为一个张量形状为[batch_size, channels, height, width] batch_size表示批量大小,可以是任意正整数,训练模型时,模型输入对该参数batch_size无要求限制,但是后面的三个特征维度[channels, height, width]必须跟模型model定义的输入层数据维度一致。

1.5完整代码:

import os
import torch
from PIL import Image
from torch.utils.data import Dataset, DataLoader
from torchvision.transforms import transformstransform = transforms.Compose([#transforms.Grayscale(num_output_channels=1),  # 转换为单通道灰度图transforms.ToTensor()  # 转换为张量
])
class MyDataset(Dataset):def __init__(self):# 载入数据self.images = []self.labels = []for i in range(10):pathX =os.path.join('../mnist_images/train',str(i))imageNameList = os.listdir(pathX)image = []for filename in imageNameList:imagePath = os.path.join('../mnist_images/train',str(i),filename)image.append(imagePath)label = [i] * len(image)#label = [i for _ in range(len(image))]列表推导式self.images.extend(image)self.labels.extend(label)def __getitem__(self, item):#返回相应位置的数据image = Image.open(self.images[item]).convert("L")#image = Image.open(self.images[item])return transform(image),torch.tensor(self.labels[item])#返回一个元组def __len__(self):#返回数据长度return len(self.images)
def getDataloder():oneDataset = MyDataset()return DataLoader(oneDataset, batch_size=32, shuffle=True)
if __name__ == '__main__':dataloader = getDataloder()for images, labels in dataloader:print("Batch shape:", images.shape)  # 输出批次形状print("Labels:", labels)  # 输出标签#print(images[0][0][18])break  # 只打印第一个批次

二、 文件下载

文件项目是一个完整的简单神经网络训练手写数字识别,打包下载在这里:点击下载项目

        最后:实现手写数字识别数据集加载方法最简单的是使用pytorch内置MNIST函数实现,仅有一行代码实现上述功能,本文不采用该方法,通过自行实现理解数据集加载原理。

train_dataset = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform)

http://www.dtcms.com/wzjs/353443.html

相关文章:

  • 广州网站建设 企业灰色关键词排名
  • 上海专业高端网站建设服务器上海关键词排名手机优化软件
  • 那几家是做失物招领的网站网络科技有限公司
  • 佛山专业网站建设的公司百度搜索排行榜风云榜
  • 免费自助建设网站哪有网页设计公司
  • 中国铁建官网朝阳区搜索优化seosem
  • 软件商店电脑版官方下载宁波seo在线优化方案公司
  • 手把手教网站建设品牌营销做得好的品牌有哪些
  • 厦门公司做网站响应式网站模板的应用
  • 静海做网站公司荆门网络推广
  • 黄石做网站的公司第三方平台推广引流
  • 宁波市住房和城乡建设培训中心网站网络自动推广软件
  • 福鼎网站优化公司免费开源网站
  • 描述建设一个网站的具体流程百度扫一扫网页版
  • 广州市网站建设科技个人博客搭建
  • 国外品牌网站建设线上营销方式主要有哪些
  • 邯郸做网站的公司百度网盘下载app
  • 上海平台网站建设公司最新做做网站
  • 恒基建设集团网站地址网站开发是做什么的
  • 专做白酒的网站b2b是什么意思
  • 网站域名空间一年费用是多少钱seoapp推广
  • 校园二手交易网站开发背景百度资源搜索平台
  • 做网站的软件工程师湖南网站建设效果
  • 做网站怎么开发客户源新产品的推广销售方法
  • 南皮做网站价格安徽网站seo公司
  • 无锡建设网站的公司哪家好建站系统推荐
  • 天津智能网站建设泉州排名推广
  • 合肥市做网站的公司有哪些360网站推广客服电话
  • 网站显示乱码怎么办啊企业站seo报价
  • 做微商去哪些社交网站互联网seo是什么意思