mxnet进阶 - mxnet.io.DataDesc 源码分析

全称应该叫Data Descriptor 数据描述子

一个namedtuple的子类

本质也是一个tuple,只不过对不同位置的元素命名了而已,可以通过命名访问到元素,和ordinaried字典类似

mxnet.DataDesc 使用了两个信息描述数据

  • name 是名字 字符串 str
  • shape 是数据形状 元组 里面存int类型的数 
class DataDesc(namedtuple('DataDesc', ['name', 'shape'])):
    """DataDesc is used to store name, shape, type and layout
    information of the data or the label.

    The `layout` describes how the axes in `shape` should be interpreted,
    for example for image data setting `layout=NCHW` indicates
    that the first axis is number of examples in the batch(N),
    C is number of channels, H is the height and W is the width of the image.

    For sequential data, by default `layout` is set to ``NTC``, where
    N is number of exam
要将Kaggle的数字识别(Digit Recognizer)数据转化为`mxnet.gluon.data.dataloader.DataLoader`格式,你可以按照以下步骤进行操作: 1. 导入必要的库: ```python import numpy as np import pandas as pd import mxnet as mx from mxnet.gluon.data import Dataset, DataLoader ``` 2. 加载训练数据集: ```python train_data = pd.read_csv('train.csv') ``` 3. 定义自定义数据集类: ```python class DigitDataset(Dataset): def __init__(self, data, transform=None): self.data = data self.transform = transform def __getitem__(self, idx): image = np.array(self.data.iloc[idx, 1:]).reshape(28, 28, 1).astype(np.float32) / 255.0 label = np.array(self.data.iloc[idx, 0]) if self.transform: image = self.transform(image) return image, label def __len__(self): return len(self.data) ``` 在这个自定义数据集类中,我们将图像数据转化为`np.float32`类型,并将像素值缩放到0-1范围内。你也可以根据需要添加其他的数据转换操作。 4. 创建数据集实例并进行数据转换(如果需要的话): ```python dataset = DigitDataset(train_data) ``` 5. 创建`DataLoader`实例: ```python batch_size = 32 dataloader = DataLoader(dataset, batch_size=batch_size, shuffle=True) ``` 在这里,设置了批量大小(`batch_size`),并选择是否对数据进行洗牌(`shuffle=True`)。 现在,你可以使用`dataloader`来迭代访问你的数据集。每次迭代将返回一个批量的图像和标签。 希望这能帮助到你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值