【问题标题】:mxnet ndarray indexing in pythonpython中的mxnet ndarray索引
【发布时间】:2018-02-12 19:14:25
【问题描述】:

我是 mxnet 的新手。我刚刚在带有 CUDA 8.0 和 cudnn 7.0.5 的 Ubuntu 14.04 机器上安装了 mxnet 1.0.0 和 python 3.5。

我的代码如下。我正在尝试将图像数据存储在 ndarray 中。 (原文见https://github.com/ypwhs/DogBreed_gluon/blob/master/get_features_v3.ipynb) -

X_224 = nd.zeros((n, 3, 224, 224))
X_299 = nd.zeros((n, 3, 299, 299))

mean = np.array([0.485, 0.456, 0.406])
std = np.array([0.229, 0.224, 0.225])

for i, (fname, breed) in tqdm(df.iterrows(), total=n):
    img = cv2.imread('data/train/%s.jpg' % fname)
    img_224 = ((cv2.resize(img, (224, 224))[:, :, ::-1] / 255.0 - mean) / std).transpose((2, 0, 1))
    img_299 = ((cv2.resize(img, (299, 299))[:, :, ::-1] / 255.0 - mean) / std).transpose((2, 0, 1))

    X_224[i] = nd.array(img_224) <-- I get error in this line
    X_299[i] = nd.array(img_299)

这是我得到的错误:

ValueError:不支持使用 index=0 和 type=class 'numpy.int64' 对 NDArray 进行索引。

我假设它必须索引一个多维 nd 数组。所以我尝试切片 - X_224[i:i+1] = .... 但这给了我另一个错误。

【问题讨论】:

    标签: python mxnet


    【解决方案1】:

    您可以将索引的类型从numpy.int64 转换为int;例如i = int(i) 在尝试设置切片之前。

    df.iterrows() 返回元组,其中第一个元素的类型取决于数据帧索引的类型。 df.iterrows() 在运行 Github 示例时返回类型元组 (int,pandas.core.series.Series),因此我不需要转换(使用 Pandas 0.22)。

    除了这个特定的问题,您可能还想看看这个任务的 Gluon Datasets 和 DataLoaders。 mxnet.gluon.data.vision.datasets.ImageFolderDataset 可用于加载图像,它通过transform 参数接受图像转换函数。

    def transform_fn(data, label):
        mean = np.array([0.485, 0.456, 0.406])
        std = np.array([0.229, 0.224, 0.225])
        data = ((cv2.resize(data, (224, 224))[:, :, ::-1] / 255.0 - mean) / std).transpose((2, 0, 1))
        return data, label
    
    image_directory = os.path.join(data_dir, "train")
    dataset = mx.gluon.data.vision.ImageFolderDataset(image_directory, transform=transform_fn)
    data_loader = mx.gluon.data.DataLoader(dataset, batch_size=10, shuffle=True)
    
    for data, label in data_loader:
        ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-10
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多