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

表白网页制作网站wordpress分类添加自定义字段

表白网页制作网站,wordpress分类添加自定义字段,广告网页制作模板,wordpress 底部 wap重点在第二部分的构建数据通道和第三部分的加载数据集 Pytorch通常使用Dataset和DataLoader这两个工具类来构建数据管道。 Dataset定义了数据集的内容#xff0c;它相当于一个类似列表的数据结构#xff0c;具有确定的长度#xff0c;能够用索引获取数据集中的元素。 而D…重点在第二部分的构建数据通道和第三部分的加载数据集 Pytorch通常使用Dataset和DataLoader这两个工具类来构建数据管道。 Dataset定义了数据集的内容它相当于一个类似列表的数据结构具有确定的长度能够用索引获取数据集中的元素。 而DataLoader定义了按batch加载数据集的方法它是一个实现了__iter__方法的可迭代对象每次迭代输出一个batch的数据。 DataLoader能够控制batch的大小batch中元素的采样方法以及将batch结果整理成模型所需输入形式的方法并且能够使用多进程读取数据。 在绝大部分情况下用户只需实现Dataset的__len__方法和__getitem__方法就可以轻松构建自己的数据集并用默认数据管道进行加载。 一Dataset和DataLoader概述 1获取一个batch数据的步骤 让我们考虑一下从一个数据集中获取一个batch的数据需要哪些步骤。 (假定数据集的特征和标签分别表示为张量X和Y数据集可以表示为(X,Y), 假定batch大小为m) 1首先我们要确定数据集的长度n。 结果类似n 1000。 2然后我们从0到n-1的范围中抽样出m个数(batch大小)。 假定m4, 拿到的结果是一个列表类似indices [1,4,8,9] 3接着我们从数据集中去取这m个数对应下标的元素。 拿到的结果是一个元组列表类似samples [(X[1],Y[1]),(X[4],Y[4]),(X[8],Y[8]),(X[9],Y[9])] 4最后我们将结果整理成两个张量作为输出。 拿到的结果是两个张量类似batch (features,labels) 其中 features torch.stack([X[1],X[4],X[8],X[9]]) labels torch.stack([Y[1],Y[4],Y[8],Y[9]]) 2Dataset和DataLoader的功能分工 上述第1个步骤确定数据集的长度是由 Dataset的__len__ 方法实现的。 第2个步骤从0到n-1的范围中抽样出m个数的方法是由 DataLoader的 sampler和 batch_sampler参数指定的。 sampler参数指定单个元素抽样方法一般无需用户设置程序默认在DataLoader的参数shuffleTrue时采用随机抽样shuffleFalse时采用顺序抽样。 batch_sampler参数将多个抽样的元素整理成一个列表一般无需用户设置默认方法在DataLoader的参数drop_lastTrue时会丢弃数据集最后一个长度不能被batch大小整除的批次在drop_lastFalse时保留最后一个批次。 第3个步骤的核心逻辑根据下标取数据集中的元素 是由 Dataset的 __getitem__方法实现的。 第4个步骤的逻辑由DataLoader的参数collate_fn指定。一般情况下也无需用户设置。 3Dataset和DataLoader的主要接口 伪代码实际应用意义不大 import torch class Dataset(object):def __init__(self):passdef __len__(self):raise NotImplementedErrordef __getitem__(self,index):raise NotImplementedErrorclass DataLoader(object):def __init__(self,dataset,batch_size,collate_fn,shuffle True,drop_last False):self.dataset datasetself.sampler torch.utils.data.RandomSampler if shuffle else \torch.utils.data.SequentialSamplerself.batch_sampler torch.utils.data.BatchSamplerself.sample_iter self.batch_sampler(self.sampler(range(len(dataset))),batch_size batch_size,drop_last drop_last)def __next__(self):indices next(self.sample_iter)batch self.collate_fn([self.dataset[i] for i in indices])return batch 二使用Dataset创建数据集 Dataset创建数据集常用的方法有 使用 torch.utils.data.TensorDataset 根据Tensor创建数据集(numpy的arrayPandas的DataFrame需要先转换成Tensor)。 使用 torchvision.datasets.ImageFolder 根据图片目录创建图片数据集。 继承 torch.utils.data.Dataset 创建自定义数据集。 此外还可以通过 torch.utils.data.random_split 将一个数据集分割成多份常用于分割训练集验证集和测试集。 调用Dataset的加法运算符()将多个数据集合并成一个数据集。 1根据Tensor创建数据集 头文件 import numpy as np import torch from torch.utils.data import TensorDataset,Dataset,DataLoader,random_split 根据Tensor创建数据集 from sklearn import datasets iris datasets.load_iris() ds_iris TensorDataset(torch.tensor(iris.data),torch.tensor(iris.target))分割成训练集和预测集 n_train int(len(ds_iris)*0.8) n_valid len(ds_iris) - n_train ds_train,ds_valid random_split(ds_iris,[n_train,n_valid])使用DataLoader加载数据集 dl_train,dl_valid DataLoader(ds_train,batch_size 8),DataLoader(ds_valid,batch_size 8)#查看数据集 for features,labels in dl_train:print(features,labels)break演示加法运算符的合并作用 ds_data ds_train ds_validprint(len(ds_train) ,len(ds_train)) print(len(ds_valid) ,len(ds_valid)) print(len(ds_trainds_valid) ,len(ds_data))print(type(ds_data))2根据图片目录创建图片数据集 头文件 import numpy as np import torch from torch.utils.data import DataLoader from torchvision import transforms,datasets 图片加载 from PIL import Image img Image.open(./data/cat.jpeg)随机数值翻转 transforms.RandomVerticalFlip()(img)随机旋转 transforms.RandomRotation(45)(img)定义图片增强操作 transform_train transforms.Compose([transforms.RandomHorizontalFlip(), #随机水平翻转transforms.RandomVerticalFlip(), #随机垂直翻转transforms.RandomRotation(45), #随机在45度角度内旋转transforms.ToTensor() #转换成张量] ) transform_valid transforms.Compose([transforms.ToTensor()] ) 根据图片目录创建数据集 ds_train datasets.ImageFolder(./data/cifar2/train/,transform transform_train,target_transform lambda t:torch.tensor([t]).float()) ds_valid datasets.ImageFolder(./data/cifar2/test/,transform transform_train,target_transform lambda t:torch.tensor([t]).float())print(ds_train.class_to_idx) 使用DataLoader加载数据集 #注意windows用户要把num_workers去掉容易报错 dl_train DataLoader(ds_train,batch_size 50,shuffle True,num_workers3) dl_valid DataLoader(ds_valid,batch_size 50,shuffle True,num_workers3)for features,labels in dl_train:print(features.shape)print(labels.shape)break三使用DataLoader加载数据集 DataLoader能够控制batch的大小batch中元素的采样方法以及将batch结果整理成模型所需输入形式的方法并且能够使用多进程读取数据。 DataLoader的函数签名 DataLoader(dataset,batch_size1,shuffleFalse,samplerNone,batch_samplerNone,num_workers0,collate_fnNone,pin_memoryFalse,drop_lastFalse,timeout0,worker_init_fnNone,multiprocessing_contextNone, )一般情况下我们仅仅会配置 dataset, batch_size, shuffle, num_workers, drop_last这五个参数其他参数使用默认值即可。 dataset : 数据集 batch_size: 批次大小 shuffle: 是否乱序 sampler: 样本采样函数一般无需设置。 batch_sampler: 批次采样函数一般无需设置。 num_workers: 使用多进程读取数据设置的进程数。 collate_fn: 整理一个批次数据的函数。 pin_memory: 是否设置为锁业内存。默认为False锁业内存不会使用虚拟内存(硬盘)从锁业内存拷贝到GPU上速度会更快。 drop_last: 是否丢弃最后一个样本数量不足batch_size批次数据。 timeout: 加载一个数据批次的最长等待时间一般无需设置。 worker_init_fn: 每个worker中dataset的初始化函数常用于 IterableDataset。一般不使用。 #构建输入数据管道 ds TensorDataset(torch.arange(1,50)) dl DataLoader(ds,batch_size 10,shuffle True,num_workers2,drop_last True) #迭代数据 for batch, in dl:print(batch)
http://www.huolong8.cn/news/226930/

相关文章:

  • 长沙给中小企业做网站的公司手机如何登陆Wordpress
  • 2013网站怎么备案WordPress付费会员主题
  • 优化一个网站多少钱wordpress 微信商城
  • 做网站的思路怎么写网站制作公司多少钱
  • 闵行网站搭建哪里有什么叫 营销型网站
  • 哪个网站可以做设计比赛网站开发需要多少钱价格
  • 做网站是用什么技术的鞍山58招聘
  • 企业如何在网站上做宣传深圳在线制作网站
  • 班级网站设计兰州响应式网站建设
  • 做网站哪个平台好网站空间面板
  • 大连网站哪家做的好?网站可以放多少视频
  • 制作网站river潍坊大型做网站建设的公司
  • 常州专业网站建设公司哪家好网站分页需要前端做还是后端
  • 网站做下cdnwordpress 4.9.6 zh
  • 黄金网站软件app下载安装如何优化网站tkd
  • 海洋做网站国外订房网站怎么和做
  • 网站建设需要的资料小程序做网站
  • 肇庆市住房和城乡建设部网站公司内部网站建设方案
  • 学建站wordpress广东佛山
  • 西安推广网站中国网财经
  • 外国人在中国做美食视频网站进空间的网站
  • 广州哪里有做网站推广wordpress架设服务器
  • 广州白云区建站外贸公司珠海建网站的联系方式
  • 巫山做网站那家好即刻搜索引擎入口
  • php网站开发说明做网站不推广管用吗
  • 建筑工程发布网站单机版网页制作软件
  • 怎样在建立公司网站ps做网站效果图
  • 怎么做可以访问网站成都网站的建设
  • 网站建设公司的市场开发方案个人做网站时不要做什么样的网站
  • 百度一下你就知道官方网站纯html网页模板