python中的mxnet ndarray索引

python中的mxnet ndarray索引,python,mxnet,Python,Mxnet,我是mxnet的新手。我刚刚在Ubuntu14.04机器上安装了MXNET1.0.0和Python3.5,并安装了CUDA8.0和CUDNN7.0.5 我的代码如下。我正在尝试将图像数据存储在数据阵列中。(有关原始代码,请参见) - X_224=nd.zero((n,3224224)) X_299=nd.zero((n,3299299)) 平均值=np.数组([0.485,0.456,0.406]) 标准=np.数组([0.229,0.224,0.225]) 对于tqdm(df.iterrows

我是mxnet的新手。我刚刚在Ubuntu14.04机器上安装了MXNET1.0.0和Python3.5,并安装了CUDA8.0和CUDNN7.0.5

我的代码如下。我正在尝试将图像数据存储在数据阵列中。(有关原始代码,请参见) -

X_224=nd.zero((n,3224224))
X_299=nd.zero((n,3299299))
平均值=np.数组([0.485,0.456,0.406])
标准=np.数组([0.229,0.224,0.225])
对于tqdm(df.iterrows(),total=n)中的i(fname,breed):
img=cv2.imread('data/train/%s.jpg'%fname)
img_224=((cv2.resize(img,(224224,224))[:,:,::-1]/255.0-mean)/std)。转置((2,0,1))
img_299=((cv2.resize(img,(299299))[:,:,::-1]/255.0-mean)/std)。转置((2,0,1))

X_224[i]=nd.array(img_224)您可以将索引的类型从
numpy.int64
转换为
int
;e、 g.
i=int(i)
在尝试设置切片之前

df.iterrows()
返回元组,其中第一个元素的类型取决于数据帧索引的类型<运行Github示例时,code>df.iterrows()
返回类型的元组(
int
pandas.core.series.series
),因此无需进行转换(使用pandas 0.22)

除了这个特定的问题之外,您可能还想看看这个任务的Gluon数据集和数据加载程序
mxnet.glion.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:
    ...
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:
    ...