zoukankan      html  css  js  c++  java
  • Gluon Data API

    http://mxnet.apache.org/api/python/gluon/data.html

    import sys
    import os
    import time
    import mxnet as mx
    from mxnet import autograd,nd
    from mxnet import gluon,init
    from mxnet.gluon import data as gdata,loss as gloss
    from mxnet.gluon import nn
    
    #gdata.ArrayDataset()  组合数据,线性回归中使用过了
    #gdata.DataLoader()    从数据集返回一个小批量数据集
    
    #常用数据集
    #gdata.vision.MNIST
    #gdata.vision.FashionMNIST
    #gdata.vision.CIFAR10
    #gdata.vision.CIFAR100
    #gdata.vision.ImageRecordDataset
    #gdata.vision.ImageFolderDataset
    
    # 视觉变换
    # gluon.data.vision.transforms
    
    from mxnet.gluon.data.vision import MNIST,transforms
    
    '''
    transforms.Cast     # 转特定数据类型
    transforms.ToTensor # 将 ndarray 转为 张量 ndarray
    transforms.Normalize # 用 平均值和标准差 规范化一个张量
    transforms.RandomResizedCrop # 使用随机比例裁剪图像
    transforms.CenterCrop  # 裁剪到中心
    transforms.Resize    # 调整到指定大小
    transforms.RandomFlipLeftRight # 以0.5的概率左右翻转图像
    transforms.RandomFlipTopBottom
    transforms.RandomBrightness  # 随机抖动图像亮度
    transforms.RandomContrast   # 随机抖动图像对比度
    transforms.RandomSaturation  # 随机抖动图像饱和度
    transforms.RandomHue        # 随机抖动图像色调
    transforms.RandomColorJitter # 随机抖动图像 亮度,对比度,饱和度,色调
    transforms.RandomLighting   # 添加一个AlexNet-Style的噪声到图像
    '''
    
    transform = transforms.Compose(
        [transforms.Resize(300),
         transforms.RandomResizedCrop(224),
         transforms.RandomBrightness(0.1),
         transforms.ToTensor(),
         transforms.Normalize(0,1)
         ]
    )
    
    data = MNIST(train=True).transform_first(transform)
    #print(len(data))
    data_loader = gluon.data.DataLoader(data,batch_size=32,num_workers=0)
    for data,label in data_loader:
        #print(data)
        #print(label)
        break
    #print(len(data_loader))
    
    
    # API Reference
    # 定义数据
    tmp = gluon.data.ArrayDataset([1,2,3],[2,3,4])
    
    # 采样
    sampler = gluon.data.SequentialSampler(10)
    print(list(sampler))
    batch_sampler = gluon.data.BatchSampler(sampler,3,last_batch='keep')
    print(list(batch_sampler))
    
    # 从数据集加载数据并返回小批量数据
    # gluon.data.DataLoader
    # dataset : numpy,mxnet数组均可以直接作为数据集
    # batch_size(int) 小批量的大小
    # shuffle(bool) 是否要洗牌样品
    # sampler 要使用的采样器,shuffle和 sampler 选其一
    # last_batch 最后一批,{'keep','discard','rollover'}
    # batch_sampler 返回小批量采样器,指定了batch_sampler则不需要指定 batch_size,shuffle,sampler,last_batch
    # batchify_fn 回调函数
    # num_workers 加速读取
    # pin_memory(bool) True,将数据写入GPU
    # prefetch 预读取某些批次
    
    # (fn,lazy=True)
    # 默认需要时转换数据
    # gluon.data.Dataset.transform()
    # gluon.data.Dataset.transform_first()

  • 相关阅读:
    Python爬虫利器一之Requests库的用法
    python——时间与时间戳之间的转换
    pyDes库 实现python的des加密
    python 统计发送请求到接收response的时间
    Jenkins进阶系列之——02email-ext邮件通知模板
    Jenkins进阶系列之——01使用email-ext替换Jenkins的默认邮件通知
    Jenkins+Ant+Jmeter搭建持续集成的接口测试平台
    Java连接MySQL数据库——含步骤和代码
    CentOS 7.1 中文正式版下载
    Python数据结构之实现队列
  • 原文地址:https://www.cnblogs.com/TreeDream/p/10049043.html
Copyright © 2011-2022 走看看