o
    ?e                     @   s   d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddlm
Z
 dd	lmZ 	
			dddZG dd dejZG dd dejZdS )z.The implementation of `tf.data.Dataset.batch`.    N)dataset_ops)
debug_mode)nest)dtypes)ops)tensor_util)gen_dataset_opsFc                 C   sJ   |du st jr|durt jstd t| |||dS t| |||||dS )z See `Dataset.batch` for details.NzaThe `deterministic` argument has no effect unless the `num_parallel_calls` argument is specified.)name)r   Z
DEBUG_MODEwarningswarn_BatchDataset_ParallelBatchDataset)input_dataset
batch_sizedrop_remaindernum_parallel_callsdeterministicr	    r   d/home/www/facesmatcher.com/pyenv/lib/python3.10/site-packages/tensorflow/python/data/ops/batch_op.py_batch   s   
r   c                       s.   e Zd ZdZd fdd	Zedd Z  ZS )r   z<A `Dataset` that batches contiguous elements from its input.Nc                    s   || _ tj|tjdd| _tj|tjdd| _t	| j}|r2t	| j t
 fdd|j| _n
t
dd |j| _|| _tj|jf| j| jd| j}t || dS )	"See `Dataset.batch()` for details.r   Zdtyper	   r   c                    
   |   S Nr   Zcomponent_specZconstant_batch_sizer   r   <lambda>E      
 z(_BatchDataset.__init__.<locals>.<lambda>c                 S   
   |  d S r   r   r   r   r   r   r   I   r   )r   r   N)_input_datasetr   convert_to_tensorr   int64_batch_sizebool_drop_remainderr   constant_valuer   map_structureelement_spec
_structure_namer   Zbatch_dataset_v2_variant_tensor_common_argssuper__init__)selfr   r   r   r	   constant_drop_remaindervariant_tensor	__class__r   r   r.   5   s8   
z_BatchDataset.__init__c                 C      | j S r   r)   r/   r   r   r   r(   T      z_BatchDataset.element_specr   __name__
__module____qualname____doc__r.   propertyr(   __classcell__r   r   r2   r   r   2   s
    r   c                       s0   e Zd ZdZ	d fdd	Zedd Z  ZS )r   zHA `Dataset` that batches contiguous elements from its input in parallel.Nc           	         s   || _ tj|tjdd| _tj|tjdd| _tj|tjdd| _|du r)d| _	n	|r/d| _	nd| _	t
| j}|rMt
| j t fd	d
|j| _n
tdd
 |j| _|| _tj|jf| j| j| j| j	d| j}t || dS )r   r   r   r   r   Ndefaulttruefalsec                    r   r   r   r   r   r   r   r   z   r   z0_ParallelBatchDataset.__init__.<locals>.<lambda>c                 S   r   r   r   r   r   r   r   r   ~   r   )r   r   r   r   )r    r   r!   r   r"   r#   r$   r%   Z_num_parallel_callsZ_deterministicr   r&   r   r'   r(   r)   r*   r   Zparallel_batch_datasetr+   r,   r-   r.   )	r/   r   r   r   r   r   r	   r0   r1   r2   r   r   r.   \   sL   
z_ParallelBatchDataset.__init__c                 C   r4   r   r5   r6   r   r   r   r(      r7   z"_ParallelBatchDataset.element_specr   r8   r   r   r2   r   r   Y   s    0r   )FNNN)r<   r
   Ztensorflow.python.data.opsr   r   Ztensorflow.python.data.utilr   Ztensorflow.python.frameworkr   r   r   Ztensorflow.python.opsr   r   ZUnaryDatasetr   r   r   r   r   r   <module>   s    
'