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

书写网站建设策划书企业电子商务网站建设

书写网站建设策划书,企业电子商务网站建设,深圳极速网站建设费用,百度网络推广怎么收费深度学习中,我们能看到别人的代码中都有一个继承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/582429.html

相关文章:

  • 做外贸的网站怎么建立龙岩网站设计 信任推商吧做词
  • 北京网站建设公司完美湖南岚鸿首 选上海建设工程招投标在什么网站
  • 网站搜索引擎优化的基本内容网站怎么做商家定位
  • 手机酒店网站建设哪些网站做农产品电子商务物流
  • 网站开发有前途么郑州上街网站建设公司
  • 南昌做网站的公司哪个比较好的邦泽网站建设
  • 嵊州市住房和城乡建设局网站网站建设公司山西
  • 做网站多钱甘肃崇信县门户网站
  • 织梦网站模板源码下载优化大师官网下载
  • 电力网站建设好的网站建设价格
  • 宿迁专业三合一网站开发微信公众平台个人注册入口
  • 网站建设意见建议表WordPress主题添加点赞喜欢按钮
  • 商城网站开发实训报告深圳seo网络推广公司
  • 代做论文的网站有哪些好的哈尔滨网站建设吧
  • 中国建设网官方网站企业网银做淘客网站需要备案吗
  • 给我播放电影在线观看济南网站seo外包
  • 网站不让百度收录网站建设应用权限
  • 网站建设培训深圳华为官方手表网站
  • 建设科技信息+网站建设网页制作简单教程
  • php 网站开发架构利用access数据库做网站
  • 响应式网站 手机版网站服务器崩了怎么办
  • 桐城住房和城乡建设局网站微信商城怎么开店
  • 长尾词挖掘工具爱站网上海网站排名
  • 西宁企业网站建设开发可以做积分的网站
  • 单页面网站卖什么好设计素材网站版权
  • 枣强网址建站澧县网页设计
  • wordpress能做企业网站吗查询注册过哪些网站
  • 廉江网站开发公司优质网站策划
  • 十大免费音乐网站网站建站东莞
  • 电信备案新增网站企业定制app