
    BVh
                         d 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	Z G d
 dej                        Zy)z5The implementation of `tf.data.Dataset.sparse_batch`.    )dataset_ops)convert)dtypes)sparse_tensor)tensor_shape)gen_experimental_dataset_opsNc                     t        | |||      S N)_DenseToSparseBatchDataset)input_dataset
batch_size	row_shapenames       Z/home/dcms/DCMS/lib/python3.12/site-packages/tensorflow/python/data/ops/sparse_batch_op.py_sparse_batchr      s    	#M:y$	OO    c                   4     e Zd ZdZd fd	Zed        Z xZS )r   zNA `Dataset` that batches ragged dense elements into `tf.sparse.SparseTensor`s.c                 v   t        t        j                  |      t        j                        s"t        dt        j                  |       d      || _        || _        || _        t        j                  t        j                  dg      j                  | j                        t        j                  |            | _        || _        t!        j"                  | j                  j$                  | j                  fdt'        j(                  | j                        i| j*                  }t,        t.        | c  ||       y)z7See `Dataset.dense_to_sparse_batch()` for more details.z`dense_to_sparse_batch` requires an input dataset whose elements have a single component, but the given dataset has the following component types: .Nr   )
isinstancer   get_legacy_output_typesr   DType	TypeError_input_dataset_batch_size
_row_shaper   SparseTensorSpecr   TensorShapeconcatenate_element_spec_nameged_opsdense_to_sparse_batch_dataset_variant_tensorr   partial_shape_to_tensor_flat_structuresuperr   __init__)selfr   r   r   r   variant_tensor	__class__s         r   r(   z#_DenseToSparseBatchDataset.__init__   s   ++M:FLLJ < %<<]KLAO P P (D!DDO&77  $(44T__E++M:<D DJ::++  11$//B  

	 N
 

$d4]5CEr   c                     | j                   S r
   )r    )r)   s    r   element_specz'_DenseToSparseBatchDataset.element_spec6   s    r   r
   )__name__
__module____qualname____doc__r(   propertyr-   __classcell__)r+   s   @r   r   r      s     VE.  r   r   r
   )r1   tensorflow.python.data.opsr   tensorflow.python.data.utilr   tensorflow.python.frameworkr   r   r   tensorflow.python.opsr   r"   r   UnaryDatasetr    r   r   <module>r:      s4    < 2 / . 5 4 IP!9!9 r   