
    2Vha                         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	lmZ d d
lmZ 	 	 	 	 	 	 ddZd Zd Zd Zy)    N)distribution_lib)array_data_adapter)data_adapter)py_dataset_adapter)ArrayDataAdapter)GeneratorDataAdapter)PyDatasetAdapter)TFDatasetAdapter)TorchDataLoaderAdapterc           	      t   t        | t        j                        r| S t        j                         }t        |dd      r#t        |       st        dt        |        d      t        j                  | ||f      rt        | ||||||      S t        |       r,|t        ddd       |t        d	d
d       t        | ||      S t        | t        j                        r,|t        ddd       |t        d	d
d       t!        | ||      S t#        |       r9|t        ddd       |t        d	d
d       |t        d|       t%        |       S t        | t&        j(                        r9|t        ddd       |t        d	d
d       |t        d|       t+        |       S t        d|  dt        |        d      )N_is_multi_processFzsWhen using multi-worker distribution, the data must be provided as a `tf.data.Dataset` instance. Received: type(x)=.)sample_weightclass_weightshuffle
batch_sizestepsyzthe targetsztf.data.Datasetsample_weightszthe sample weights)r   distribution	PyDataset)r   r   ztorch DataLoaderz]Argument `class_weight` is not supported for torch DataLoader inputs. Received: class_weight=z]Argument `class_weight` is not supported for Python generator inputs. Received: class_weight=zUnrecognized data type: x=z
 (of type ))
isinstancer   DataAdapterr   r   getattris_tf_dataset
ValueErrortyper   can_convert_arraysr   raise_unsupported_argr
   r   r   r	   is_torch_dataloaderr   typesGeneratorTyper   )xr   r   r   steps_per_epochr   r   r   s           Y/home/dcms/DCMS/lib/python3.12/site-packages/keras/src/trainers/data_adapters/__init__.pyget_data_adapterr'      s%    !\--.
 $002L|0%8	B BBFq'!M
 	

 ,,aM-BC'%!!
 	
 
q	=!#}6GH$! "68I  L|
 	
 
A)33	4=!#}kB$! "6  gNN 
Q	=!#}6HI$! "68J #==INL  &a(( 
Au**	+=!#}kB$! "6 #<<H>K  $A&& 5aS
47)1MNN    c                 2    t        d| d|  d| d| d	      )NzWhen providing `x` as a z, `z!` should not be passed. Instead, z# should be included as part of the r   )r   )arg_namearg_description
input_types      r&   r    r       s8    

":,c( <**9): ;&&0\	4 r(   c                     t        | d      rC| j                  j                  D ]*  }|j                  dv sdt	        |j
                        v s* y y)N	__class__)	DatasetV2DistributedDatasetDistributedDatasetsFromFunctionztensorflow.python.TFhasattrr.   __mro____name__str
__module__r$   parents     r&   r   r      sS    q+kk)) 	F #  '#f.?.?*@@	 r(   c                     t        | d      rD| j                  j                  D ]+  }|j                  dk(  sdt	        |j
                        v s+ y y)Nr.   
DataLoaderztorch.utils.dataTFr2   r8   s     r&   r!   r!      sT    q+kk)) 	F,.3E!!J 4 		
 r(   )NNNNFN)r"   keras.src.distributionr    keras.src.trainers.data_adaptersr   r   r   3keras.src.trainers.data_adapters.array_data_adapterr   7keras.src.trainers.data_adapters.generator_data_adapterr   3keras.src.trainers.data_adapters.py_dataset_adapterr	   3keras.src.trainers.data_adapters.tf_dataset_adapterr
   :keras.src.trainers.data_adapters.torch_data_loader_adapterr   r'   r    r   r!    r(   r&   <module>rD      sU     3 ? 9 ? P Q P kO\	r(   