o
    Ni                     @   s   d Z ddlmZ ddlmZ ddlmZ ddlZddlm  mZ	 ddl
mZ dZdZdZd	Zd
Zg dZddddZG dd dejjZdd ZG dd dejjZdS )5Imagewang contains Imagenette and Imagewoof combined.    )absolute_import)division)print_functionNz
@misc{imagewang,
  author    = "Jeremy Howard",
  title     = "Imagewang",
  url       = "https://github.com/fastai/imagenette/"
}
u  Imagewang contains Imagenette and Imagewoof combined
Image网 (pronounced "Imagewang"; 网 means "net" in Chinese) contains Imagenette
and Imagewoof combined, but with some twists that make it into a tricky
semi-supervised unbalanced classification problem:

* The validation set is the same as Imagewoof (i.e. 30% of Imagewoof images);
  there are no Imagenette images in the validation set (they're all in the
  training set)
* Only 10% of Imagewoof images are in the training set!
* The remaining are in the unsup ("unsupervised") directory, and you can not
  use their labels in training!
* It's even hard to type and hard to say!

The dataset comes in three variants:

  * Full size
  * 320 px
  * 160 px

This dataset consists of the Imagenette dataset {size} variant.
z6Imagewang contains Imagenette and Imagewoof combined.
z)image_classification/imagewang_labels.txtz*https://s3.amazonaws.com/fast-ai-imageclas)	full-size320px160px	imagewangzimagewang-320zimagewang-160c                       s    e Zd ZdZ fddZ  ZS )ImagewangConfigzBuilderConfig for Imagewang.c                    s,   t t| jddtjdi| || _d S )Nversionz2.0.0 )superr
   __init__tfdscoreVersionsize)selfr   kwargs	__class__r   f/home/ubuntu/.local/lib/python3.10/site-packages/tensorflow_datasets/image_classification/imagewang.pyr   N   s   

zImagewangConfig.__init__)__name__
__module____qualname____doc__r   __classcell__r   r   r   r   r
   K   s    r
   c                  C   s&   g } t D ]}| t||td q| S )N)namer   description)_SIZESappendr
   _DESCRIPTION_SHORT)configsr   r   r   r   _make_builder_configsT   s   r#   c                   @   s.   e Zd ZdZe Zdd Zdd Zdd ZdS )		Imagewangr   c              	   C   sB   t jt}t jj| tt jt j t jj	|ddddt
dS )N)
names_fileimagelabelz$https://github.com/fastai/imagenette)builderr   featuressupervised_keyshomepagecitation)r   r   get_tfds_path_LABELS_FNAMEDatasetInfo_DESCRIPTIONr*   FeaturesDictImage
ClassLabel	_CITATION)r   r%   r   r   r   _infoa   s   zImagewang._infoc                 C   s   | j j}|tv r9|dkrdnd|dd  }dtd| g}||}tj|t| d}tj|t| d	}nt	d
t t
jjt
jjd|idt
jjt
jjd|idgS )zReturns SplitGenerators.r    -N/zimagewang%s.tgztrainvalzsize must be one of %sdatapath)r   
gen_kwargs)builder_configr   r   join_URL_PREFIXdownload_and_extractospath_SIZE_TO_DIRNAME
ValueErrorr   r   SplitGeneratorSplitTRAIN
VALIDATION)r   
dl_managerr   size_strurlrD   
train_pathval_pathr   r   r   _split_generatorso   s&   
zImagewang._split_generatorsc                 c   sZ    t jj|D ]"}t jjtj||dD ]}tj|}||d}||fV  qqdS )zYields examples.z*.JPEGr&   N)	tfiogfilelistdirglobrC   rD   r@   basename)r   r=   r(   fpathfnamerecordr   r   r   _generate_examples   s   zImagewang._generate_examplesN)	r   r   r   r   r#   BUILDER_CONFIGSr6   rP   rZ   r   r   r   r   r$   \   s    r$   )r   
__future__r   r   r   rC   tensorflow.compat.v2compatv2rQ   tensorflow_datasets.public_api
public_apir   r5   r1   r!   r/   rA   r   rE   r   BuilderConfigr
   r#   GeneratorBasedBuilderr$   r   r   r   r   <module>   s(   	