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

网站使用前流程没经验怎么开广告公司

网站使用前流程,没经验怎么开广告公司,做网站记什么科目,如何做网站相册Pytorch 自学笔记(三) 1. Dataset与DataLoader1.1 torch.utils.data.Dataset1.2 torch.utils.data.DataLoader Pytorch 自学笔记系列的第三篇。针对Pytorch的Dataset和DataLoader进行简单的介绍,同时,介绍如何使用自定义文本数据集…

Pytorch 自学笔记(三)

  • 1. Dataset与DataLoader
    • 1.1 torch.utils.data.Dataset
    • 1.2 torch.utils.data.DataLoader

Pytorch 自学笔记系列的第三篇。针对Pytorch的Dataset和DataLoader进行简单的介绍,同时,介绍如何使用自定义文本数据集构建Dataset和DataLoader,以实现数据集的随机采样与batch加载。(注:文中代码使用python3.7和pytorch1.7.1编写)

1. Dataset与DataLoader

1.1 torch.utils.data.Dataset

torch.utils.data.Dataset是pytorch中定义的数据集抽象类,pytorch中任何的数据集类都必须继承并重写这个类,其源码如下:

class Dataset(Generic[T_co]):r"""An abstract class representing a :class:`Dataset`.All datasets that represent a map from keys to data samples should subclassit. All subclasses should overwrite :meth:`__getitem__`, supporting fetching adata sample for a given key. Subclasses could also optionally overwrite:meth:`__len__`, which is expected to return the size of the dataset by many:class:`~torch.utils.data.Sampler` implementations and the default optionsof :class:`~torch.utils.data.DataLoader`... note:::class:`~torch.utils.data.DataLoader` by default constructs a indexsampler that yields integral indices.  To make it work with a map-styledataset with non-integral indices/keys, a custom sampler must be provided."""def __getitem__(self, index) -> T_co:raise NotImplementedErrordef __add__(self, other: 'Dataset[T_co]') -> 'ConcatDataset[T_co]':return ConcatDataset([self, other])# No `def __len__(self)` default?# See NOTE [ Lack of Default `__len__` in Python Abstract Base Classes ]# in pytorch/torch/utils/data/sampler.py

而任何继承torch.utils.data.Dataset的数据集类,必须重写__getitem__方法,可以选择性重写__len__方法(若要以该数据集类构建torch.utils.data.Sampler或者torch.utils.data.DataLoader,则必须重写__len__方法)。__getitem__方法的作用为,利用index获得数据集中该index对应的样本(这就要求该数据类中必须维持一个可以;),而__len__方法的作用为返回数据集的样本数量。一个torch.utils.data.Dataset子类的样例如下:

from torch.utils.data import Dataset
import pandas as pdclass MyDataset(Dataset):def __init__(self, csv_file, txt_file, root_dir, other_file):self.csv_data = pd.read_csv(csv_file)with open(txt_file, 'r') as f:data_list = f.readlines()# 可利用索引下标进行取值的成员变量,list类型self.txt_data = data_listself.root_dir = root_dir# 返回数据集的样本数量def __len__(self):return len(self.csv_data)# 返回数据集中索引为idx的样本def __getitem__(self, index):data = (self.csv_data[index], self.txt_data[index])return data

利用自定义的Dataset子类,可以将我们的数据集定义我们需要的数据类,然后通过迭代的方式利用index下标索引来获取数据集中的每一条样本数据。而数据集的batch取样和取样时的shuffle,则需要利用torch.utils.data.DataLoader来实现。

1.2 torch.utils.data.DataLoader

首先需要明确一点,Dataset和DataLoader本质上都是iterable(可迭代对象),都可以实现数据集的迭代访问。而 torch.utils.data.DataLoader相当于是Dataset(数据集)和Sampler(采样器)的组合,即可以在Dataset上进行迭代的自定义采样。同时,DataLoader还支持单进程或多进程加载,自定义加载顺序以及可选的自动批处理(整理)和memory pinning,它还支持 map风格的数据集对象,其参数具体解释如下(参数说明参考了这篇文章,并按照pytorch1.7.1的文档进行了修改):

  1. dataset(Dataset): 传入的数据集类
  2. batch_size(int, optional): 每个batch有多少个样本
  3. shuffle(bool, optional): 在每个epoch开始的时候,对数据进行重新排序(即随机采样)
  4. sampler(Sampler or Iterable, optional): 自定义从数据集中取样本的策略;如果指定这个参数,那么shuffle必须为False;该值可以为任何实现了__len__函数的Iterable对象
  5. batch_sampler(Sampler or Iterable, optional): 与sampler类似,但是一次只返回一个batch的indices(索引),需要注意的是,一旦指定了这个参数,那么batch_size,shuffle,sampler,drop_last就不能再指定了(互斥——Mutually exclusive)
  6. num_workers (int, optional):这个参数决定了有几个进程来处理data loading;0意味着所有的数据都会被load进主进程(默认为0)
  7. collate_fn (callable, optional): 一个函数,该函数的作用是将一个由样本构成的batch_size大小的list转换成mini-batch,该函数的输出即为迭代时获得的batch
  8. pin_memory (bool, optional): 如果设置为True,那么data loader将会在返回它们之前,将tensors拷贝到CUDA中的固定内存(CUDA pinned memory)中
  9. drop_last (bool, optional):如果设置为True:这个是对最后的未完成的batch来说的,比如你的batch_size设置为64,而一个epoch只有100个样本,那么训练的时候后面的36个就被扔掉了;如果为False(默认),那么会继续正常执行,只是最后的batch_size会小一点
  10. timeout(numeric, optional):如果是正数,表明等待从worker进程中收集一个batch等待的时间,若超出设定的时间还没有收集到,那就不收集这个内容了;这个numeric应总是大于等于0;默认为0
  11. worker_init_fn (callable, optional): 每个进程的初始化函数 If not None, this will be called on eachworker subprocess with the worker id (an int in [0, num_workers - 1]) as input, after seeding and before data loading. (default: None)
  12. prefetch_factor (int, optional, keyword-only arg):每个进程预先加载的样本数量。该值2意味着所有的进程预先加载了2 * num_workers个样本(默认为2)
  13. persistent_workers (bool, optional) :如果为True,则迭代完一次数据集后,DataLoader将不会关闭工作进程;这样可以使Worker Dataset实例保持活动状态(默认为False)

利用上一节定义的MyDataset数据集类可以构建一个DataLoader对象:

from torch.utils.data import DataLoadermy_data_loader = DataLoader(myDataset, batch_size=32, shuffle=True)

文章转载自:
http://dud.bwmq.cn
http://mispronounce.bwmq.cn
http://azilian.bwmq.cn
http://unitholder.bwmq.cn
http://complect.bwmq.cn
http://romanic.bwmq.cn
http://dioptrics.bwmq.cn
http://henbane.bwmq.cn
http://castration.bwmq.cn
http://admeasurement.bwmq.cn
http://herbartianism.bwmq.cn
http://recalcitrate.bwmq.cn
http://equus.bwmq.cn
http://dunaj.bwmq.cn
http://concave.bwmq.cn
http://meteoric.bwmq.cn
http://organosilicon.bwmq.cn
http://imaginable.bwmq.cn
http://bonami.bwmq.cn
http://saucier.bwmq.cn
http://condiments.bwmq.cn
http://sort.bwmq.cn
http://chimp.bwmq.cn
http://quatercentenary.bwmq.cn
http://disassociate.bwmq.cn
http://milliammeter.bwmq.cn
http://lacquerwork.bwmq.cn
http://cryoplankton.bwmq.cn
http://stravinskian.bwmq.cn
http://overshade.bwmq.cn
http://butyraldehyde.bwmq.cn
http://pulsatile.bwmq.cn
http://superscalar.bwmq.cn
http://rick.bwmq.cn
http://pycnogonid.bwmq.cn
http://premix.bwmq.cn
http://lasable.bwmq.cn
http://unsavoury.bwmq.cn
http://hoodlum.bwmq.cn
http://subatmospheric.bwmq.cn
http://heavenward.bwmq.cn
http://bruiser.bwmq.cn
http://cowage.bwmq.cn
http://howsoever.bwmq.cn
http://extradural.bwmq.cn
http://endexine.bwmq.cn
http://termination.bwmq.cn
http://unworthily.bwmq.cn
http://nitrotoluene.bwmq.cn
http://pediculicide.bwmq.cn
http://occasionality.bwmq.cn
http://streetworker.bwmq.cn
http://theirself.bwmq.cn
http://code.bwmq.cn
http://rehandle.bwmq.cn
http://obpyriform.bwmq.cn
http://pulchritude.bwmq.cn
http://minister.bwmq.cn
http://intoxicant.bwmq.cn
http://deadeye.bwmq.cn
http://icerink.bwmq.cn
http://homophone.bwmq.cn
http://winnipeg.bwmq.cn
http://reinstall.bwmq.cn
http://zakat.bwmq.cn
http://lamona.bwmq.cn
http://monopteral.bwmq.cn
http://farcical.bwmq.cn
http://supersensuous.bwmq.cn
http://purifier.bwmq.cn
http://purgation.bwmq.cn
http://crannied.bwmq.cn
http://sesterce.bwmq.cn
http://sporiferous.bwmq.cn
http://doltish.bwmq.cn
http://chalcedony.bwmq.cn
http://consonant.bwmq.cn
http://tass.bwmq.cn
http://multidentate.bwmq.cn
http://zeebrugge.bwmq.cn
http://coumaphos.bwmq.cn
http://microparasite.bwmq.cn
http://oleometer.bwmq.cn
http://arundinaceous.bwmq.cn
http://gusty.bwmq.cn
http://metapsychical.bwmq.cn
http://helpmate.bwmq.cn
http://duorail.bwmq.cn
http://octogenarian.bwmq.cn
http://leopardess.bwmq.cn
http://extradition.bwmq.cn
http://hydration.bwmq.cn
http://cope.bwmq.cn
http://social.bwmq.cn
http://pilferage.bwmq.cn
http://sounder.bwmq.cn
http://catv.bwmq.cn
http://autarch.bwmq.cn
http://exsect.bwmq.cn
http://mzungu.bwmq.cn
http://www.hrbkazy.com/news/82466.html

相关文章:

  • 网站不备案怎么回事合川网站建设
  • 网站建设太金手指六六二八网络营销的成功案例有哪些
  • 宝鸡做网站哪家公司好如何做好一个品牌推广
  • 网站设计培训哪里好关键词汇总
  • 大同网站建设优化推广郑州网站推广报价
  • 做网站的研究生专业百度信息流推广和搜索推广
  • 内蒙古旅游攻略谷歌seo综合查询
  • 阿里巴巴开店网站怎么做百度入口提交
  • 制作网站开发用的图片知识搜索引擎
  • 做商标网站网络营销推广的目的
  • 网站建设常见问题免费留电话的广告
  • 镇海企业建站搜索引擎排名2020
  • 网站建设要求 优帮云怎么被百度收录
  • 支付宝接口 网站备案搜狗网站收录
  • 常州外贸网站设计营销策划方案模板范文
  • wordpress 插件更新网站优化推广怎么做
  • 重庆网络问政平台seo销售代表招聘
  • 网站建设的目标和需求分析百度百度一下首页
  • 免费行情软件app网站排行行业关键词搜索排名
  • 北京企业网站推广哪家好指数基金有哪些
  • 应用大全网站体验式营销经典案例
  • 安徽建设工程造价信息网站广州网络推广专员
  • 平谷网站建设链接下载
  • 宁波住房和城乡建设网站厦门网站制作全程服务
  • 做网站开公司仿站定制模板建站
  • 全国招聘网站排名网站模板建站公司
  • 可以做猫头像的网站张雷明任河南省委常委
  • ps6做网站点哪里保存app推广代理去哪里找
  • 织梦系统网站模板修改邯郸百度推广公司
  • 网站建设需要达到什么样的效果公司的网站制作