o
    i 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   
DEBUG_MODEwarningswarn_BatchDataset_ParallelBatchDataset)input_dataset
batch_sizedrop_remaindernum_parallel_callsdeterministicr	    r   R/var/www/myenv/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   dtyper	   r   c                    
   |   S Nr   component_spec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   batch_dataset_v2_variant_tensor_common_argssuper__init__)selfr   r   r   r	   constant_drop_remaindervariant_tensor	__class__r   r   r3   5   s8   
z_BatchDataset.__init__c                 C      | j S r   r-   r4   r   r   r   r,   T      z_BatchDataset.element_specr   __name__
__module____qualname____doc__r3   propertyr,   __classcell__r   r   r7   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)   _num_parallel_calls_deterministicr   r*   r   r+   r,   r-   r.   r   parallel_batch_datasetr0   r1   r2   r3   )	r4   r   r   r   r   r   r	   r5   r6   r7   r   r   r3   \   sL   
z_ParallelBatchDataset.__init__c                 C   r9   r   r:   r;   r   r   r   r,      r<   z"_ParallelBatchDataset.element_specr   r=   r   r   r7   r   r   Y   s    0r   )FNNN)rA   r   tensorflow.python.data.opsr   r   tensorflow.python.data.utilr   tensorflow.python.frameworkr   r   r   tensorflow.python.opsr   r   UnaryDatasetr   r   r   r   r   r   <module>   s    
'