o
    Ni7                     @   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dlmZ dZdZd	Zd
ZdZG dd dejjZdS )zMovingMNIST.    )absolute_import)division)print_functionN)image_as_moving_sequence)@   r      z5http://www.cs.toronto.edu/~nitish/unsupervised_video/aX  @article{DBLP:journals/corr/SrivastavaMS15,
  author    = {Nitish Srivastava and
               Elman Mansimov and
               Ruslan Salakhutdinov},
  title     = {Unsupervised Learning of Video Representations using LSTMs},
  journal   = {CoRR},
  volume    = {abs/1502.04681},
  year      = {2015},
  url       = {http://arxiv.org/abs/1502.04681},
  archivePrefix = {arXiv},
  eprint    = {1502.04681},
  timestamp = {Mon, 13 Aug 2018 16:47:05 +0200},
  biburl    = {https://dblp.org/rec/bib/journals/corr/SrivastavaMS15},
  bibsource = {dblp computer science bibliography, https://dblp.org}
}
zMoving variant of MNIST database of handwritten digits. This is the
data used by the authors for reporting model performance. See
`tfds.video.moving_mnist.image_as_moving_sequence`
for generating training/validation data from the MNIST dataset.
c                   @   s6   e Zd ZdZejddZdd Zdd Z	dd	 Z
d
S )MovingMnistzMovingMnist.z1.0.0z6New split API (https://tensorflow.org/datasets/splits)c              	   C   s6   t jj| tt jdt jjtft d dit	t
dS )Nimage_sequence)   )shape)builderdescriptionfeatureshomepagecitation)tfdscoreDatasetInfo_DESCRIPTIONr   FeaturesDictVideo_SEQUENCE_LENGTH_OUT_RESOLUTION_URL	_CITATION)self r   Z/home/ubuntu/.local/lib/python3.10/site-packages/tensorflow_datasets/video/moving_mnist.py_info>   s   zMovingMnist._infoc                 C   s*   | td }tjjtjjt|ddgS )Nzmnist_test_seq.npy)	data_path)name
gen_kwargs)downloadr   r   r   SplitGeneratorSplitTESTdict)r   
dl_managerr   r   r   r   _split_generatorsJ   s   zMovingMnist._split_generatorsc                 c   s|    t jj|d}t|}W d   n1 sw   Y  t|d}tj|dd}t|D ]\}}|t	|dfV  q/dS )zGenerate MovingMnist sequences.

    Args:
      data_path (str): Path to the data file

    Yields:
      20 x 64 x 64 x 1 uint8 numpy arrays
    rbN)r
   r         )axis)r	   )
tfiogfileGFilenpload	transposeexpand_dims	enumerater&   )r   r   fpimagesisequencer   r   r   _generate_examplesV   s   	zMovingMnist._generate_examplesN)__name__
__module____qualname____doc__r   r   VersionVERSIONr   r(   r;   r   r   r   r   r   8   s    r   )r?   
__future__r   r   r   numpyr2   tensorflow.compat.v2compatv2r.   tensorflow_datasets.public_api
public_apir   )tensorflow_datasets.video.moving_sequencer   r   r   r   r   r   r   GeneratorBasedBuilderr   r   r   r   r   <module>   s   