ó šÄïYc@s dZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z m Z ddlm Z mZmZd e jfd „ƒYZd efd „ƒYZd efd„ƒYZde jfd„ƒYZde jfd„ƒYZdS(sDataset container.iÿÿÿÿNi(tdataseti(tdownloadt check_sha1i(tndtimagetrecordiot_DownloadedDatasetcBs2eZdZd„Zd„Zd„Zd„ZRS(s#Base class for MNIST, cifar10, etc.cCsGtjj|ƒ|_||_||_d|_d|_|j ƒdS(N( tostpatht expandusert_roott_traint _transformtNonet_datat_labelt _get_data(tselftrootttraint transform((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyt__init__$s     cCsE|jdk r-|j|j||j|ƒS|j||j|fS(N(R R RR(Rtidx((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyt __getitem__-scCs t|jƒS(N(tlenR(R((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyt__len__2scCs t‚dS(N(tNotImplementedError(R((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyR5s(t__name__t __module__t__doc__RRRR(((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyR"s   tMNISTcBs)eZdZdedd„Zd„ZRS(sìMNIST handwritten digits dataset from `http://yann.lecun.com/exdb/mnist`_. Each sample is an image (in 3D NDArray) with shape (28, 28, 1). Parameters ---------- root : str Path to temp folder for storing data. train : bool Whether to load the training or testing set. transform : function A user defined callback that transforms each instance. For example:: transform=lambda data, label: (data.astype(np.float32)/255, label) s~/.mxnet/datasets/cCs tt|ƒj|||ƒdS(N(tsuperRR(RRRR((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyRIsc Cs³tjj|jƒs(tj|jƒnd}|jrrt|d|jddƒ}t|d|jddƒ}n8t|d|jddƒ}t|d |jdd ƒ}tj|d ƒJ}t j d |j d ƒƒt j |j ƒdt jƒjt jƒ}WdQXtj|d ƒ\}t j d|j dƒƒt j |j ƒdt jƒ}|jt|ƒdddƒ}WdQXg|D]}tj|d|jƒ^q|_||_dS(Ns http://data.mxnet.io/data/mnist/strain-images-idx3-ubyte.gzt sha1_hasht(6c95f4b05d2bf285e1bfb0e7960c31bd3b3f8a7dstrain-labels-idx1-ubyte.gzt(2a80914081dc54586dbdf242f9805a6b8d2a15fcst10k-images-idx3-ubyte.gzt(c3a25af1f52dad7f726cce8cacb138654b760d48st10k-labels-idx1-ubyte.gzt(763e7fa3757d93b0cdec073cef058b2004252c17trbs>IIitdtypes>IIIIiii(RRtisdirR tmakedirsR Rtgziptopentstructtunpacktreadtnpt fromstringtuint8tastypetint32treshapeRRtarrayR&RR(Rturlt data_filet label_filetfintlabeltdatatx((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyRMs*     0$.N(RRRtTrueR RR(((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyR9s tCIFAR10cBs2eZdZdedd„Zd„Zd„ZRS(sûCIFAR10 image classification dataset from `https://www.cs.toronto.edu/~kriz/cifar.html`_. Each sample is an image (in 3D NDArray) with shape (32, 32, 1). Parameters ---------- root : str Path to temp folder for storing data. train : bool Whether to load the training or testing set. transform : function A user defined callback that transforms each instance. For example:: transform=lambda data, label: (data.astype(np.float32)/255, label) s~/.mxnet/datasets/cCsSidd6dd6dd6dd6d d 6d d 6|_tt|ƒj|||ƒdS( Nt(aadd24acce27caa71bf4b10992e9e7b2d74c2540sdata_batch_1.bint(c0ba65cce70568cd57b4e03e9ac8d2a5367c1795sdata_batch_2.bint(1dd00a74ab1d17a6e7d73e185b69dbf31242f295sdata_batch_3.bint(aab85764eb3584312d3c7f65fd2fd016e36a258esdata_batch_4.bint(26e2849e66a845b7f1e4614ae70f4889ae604628sdata_batch_5.bint(67eb016db431130d61cd03c7ad570b013799c88cstest_batch.bin(t _file_hashesRR=R(RRRR((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyRys  cCs¢t|dƒ1}tj|jƒdtjƒjdd ƒ}WdQX|dd…dd…fjddddƒjdd ddƒ|dd…dfjtjƒfS( NR%R&iÿÿÿÿi iii iii ( R*R.R/R-R0R3t transposeR1R2(RtfilenameR8R:((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyt _read_batchƒs0=c s©tjjˆjƒs(tjˆjƒngˆjD]'}|tjjˆjd|ƒf^q2}t‡fd†|DƒƒrÄd}t|ˆjddƒ}t j |ƒ}|j ˆjƒWdQXnˆj rAtjjˆjdƒ}t gtddƒD]}ˆj||ƒ^qøŒ\}}tj|ƒ}tj|ƒ}n-tjjˆjd ƒ}ˆj|ƒ\}}g|D]} tj| d | jƒ^quˆ_|ˆ_dS( Nscifar-10-batches-bin/c3s?|]5\}}tjj|ƒ p6t|ˆj|ƒ VqdS(N(RRtexistsRRD(t.0tnameR(R(s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pys ss7https://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gzR t(e8aa088b9774a44ad217101d2e2569f823d2d491s&cifar-10-batches-bin/data_batch_%d.biniis#cifar-10-batches-bin/test_batch.binR&(RRR'R R(RDtjointanyRttarfileR*t extractallR tziptrangeRGR.t concatenateRR4R&RR( RRJt file_pathsR5RFttartiR:R9R;((Rs7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyRŠs(4   ;.N(RRRR<R RRGR(((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyR=is  tImageRecordDatasetcBs&eZdZddd„Zd„ZRS(sA dataset wrapping over a RecordIO file containing images. Each sample is an image and its corresponding label. Parameters ---------- filename : str Path to rec file. flag : {0, 1}, default 1 If 0, always convert images to greyscale. If 1, always convert images to colored (RGB). transform : function A user defined callback that transforms each instance. For example:: transform=lambda data, label: (data.astype(np.float32)/255, label) icCs,tt|ƒj|ƒ||_||_dS(N(RRVRt_flagR (RRFtflagR((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyR¸s cCsztt|ƒj|ƒ}tj|ƒ\}}|jdk r^|jtj||j ƒ|j ƒStj||j ƒ|j fS(N( RRVRRR,R R RtimdecodeRWR9(RRtrecordtheadertimg((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyR½s "N(RRRR RR(((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyRV¦stImageFolderDatasetcBs8eZdZddd„Zd„Zd„Zd„ZRS(s[A dataset for loading image files stored in a folder structure like:: root/car/0001.jpg root/car/xxxa.jpg root/car/yyyb.jpg root/bus/123.jpg root/bus/023.jpg root/bus/wwww.jpg Parameters ---------- root : str Path to root directory. flag : {0, 1}, default 1 If 0, always convert loaded images to greyscale (1 channel). If 1, always convert loaded images to colored (3 channels). transform : callable A function that takes data and label and transforms them:: transform = lambda data, label: (data.astype(np.float32)/255, label) Attributes ---------- synsets : list List of class names. `synsets[i]` is the name for the integer label `i` items : list of tuples List of all images in (filename, label) pairs. icCsMtjj|ƒ|_||_||_dddg|_|j|jƒdS(Ns.jpgs.jpegs.png(RRR R RWR t_extst _list_iamges(RRRXR((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyRâs   cCs;g|_g|_x"ttj|ƒƒD] }tjj||ƒ}tjj|ƒsrtj d|ddƒq(nt |jƒ}|jj |ƒxŸttj|ƒƒD]ˆ}tjj||ƒ}tjj |ƒd}|j ƒ|jkrtj d||dj|jƒfƒq§n|jj ||fƒq§Wq(WdS(Ns&Ignoring %s, which is not a directory.t stackleveliis'Ignoring %s of type %s. Only support %ss, (tsynsetstitemstsortedRtlistdirRRLR'twarningstwarnRtappendtsplitexttlowerR^(RRtfolderRR9RFtext((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyR_és"   cCsZtj|j|d|jƒ}|j|d}|jdk rP|j||ƒS||fS(Nii(RtimreadRbRWR R (RRR\R9((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyRýs  cCs t|jƒS(N(RRb(R((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyRsN(RRRR RR_RR(((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyR]Ås   (RRR)RNR+RetnumpyR.tRtutilsRRRRRtDatasetRRR=tRecordFileDatasetRVR](((s7build/bdist.linux-armv7l/egg/mxnet/gluon/data/vision.pyts      0=