[27c943]: / pathflowai / __pycache__ / sampler.cpython-36.pyc

Download this file

38 lines (38 with data), 2.5 kB

3

ΈA]	γ@s@dZddlZddlZddlZddlZGdd„dejjjj	ƒZ
dS)zl
sampler.py
=======================
Balanced sampling based on one of the columns of the patch information.
ιNc@s2eZdZdZddd„Zdd„Zdd„Zd	d
„ZdS)ΪImbalancedDatasetSamplera-Samples elements randomly from a given list of indices for imbalanced dataset
    https://raw.githubusercontent.com/ufoym/imbalanced-dataset-sampler/master/sampler.py
    Arguments:
        indices (list, optional): a list of indices
        num_samples (int, optional): number of samples to draw
    Ncs¬|dkrtttˆƒƒƒn|ˆ_tˆjƒˆ_|dkr<tˆjƒn|ˆ_i‰x<ˆjD]2}ˆjˆ|ƒ}|ˆkrxˆ|d7<qNdˆ|<qNW‡‡‡fdd„ˆjDƒ}tj	|ƒˆ_
dS)Nιcs g|]}dˆˆjˆ|ƒ‘qS)gπ?)Ϊ
_get_label)Ϊ.0Ϊidx)ΪdatasetΪlabel_to_countΪself©ϊC/Users/joshualevy/Documents/GitHub/PathFlowAI/pathflowai/sampler.pyϊ
<listcomp>-sz5ImbalancedDatasetSampler.__init__.<locals>.<listcomp>)ΪlistΪrangeΪlenΪindicesΪtargetsΪ	n_targetsΪnum_samplesrΪtorchΪDoubleTensorΪweights)r	rrrrΪlabelrr
)rrr	rΪ__init__s
z!ImbalancedDatasetSampler.__init__cCsŠt|ƒ}|tjjkr"|j|jƒS|tjjkr<|j|dS|jj	||j
j}|jdkrft
j|ƒ}nt|tt
jfƒr~|d}t|ƒSdS)Nrr)ΪtypeΪtorchvisionΪdatasetsΪMNISTΪtrain_labelsΪitemΪImageFolderΪimgsΪ
patch_infoΪilocrΪvaluesrΪnpΪargmaxΪ
isinstancer
ΪndarrayΪint)r	rrZdataset_typeΪyr
r
rr1s
z#ImbalancedDatasetSampler._get_labelcs"‡fdd„tjˆjˆjddDƒS)Nc3s|]}ˆj|VqdS)N)r)rΪi)r	r
rϊ	<genexpr>Asz4ImbalancedDatasetSampler.__iter__.<locals>.<genexpr>T)Ϊreplacement)rΪmultinomialrr)r	r
)r	rΪ__iter__@sz!ImbalancedDatasetSampler.__iter__cCs|jS)N)r)r	r
r
rΪ__len__Dsz ImbalancedDatasetSampler.__len__)NN)Ϊ__name__Ϊ
__module__Ϊ__qualname__Ϊ__doc__rrr.r/r
r
r
rr
s

r)r3rΪtorch.utils.datarΪnumpyr$ΪutilsΪdataΪsamplerΪSamplerrr
r
r
rΪ<module>s