
    BVh                         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
lmZ d Zd Z G d de      Zy)z1Code for creating a dataset out of a NumPy array.    N)dataset_ops)context)dtypes)ops)	array_ops)variable_scope)variable_v1)nestc                 .   t        j                         5  t        j                         r| j	                  |       	 ddd       y|J |j                  | j                         t        j                  t        j                  d      }t        j                  t        j                  d      }t        j                  | j                        }| || j	                  |      }t        j                  |j                  dd       | j                  j                  z  }t!        t        j"                  d|z              }d}	|j                  d   }
|	|
k  r3t%        |	|z   |
      }|j                  |||	|||||	| i       |}	|	|
k  r3ddd       y# 1 sw Y   yxY w)zFInitialize `input_var` to `numpy_input` using `session` in graph mode.N    i   r   )	feed_dict)r   
init_scoper   executing_eagerlyassignruninitializerr   placeholderr   int64dtypenpprodshapesizeintceilmin)	input_varnumpy_inputsessionstart_placeholderend_placeholderslice_placeholderassign_slice_opbyte_size_per_batch_elementbatch_size_per_slicestartlimitends               Z/home/dcms/DCMS/lib/python3.12/site-packages/tensorflow/python/distribute/numpy_dataset.pyinit_var_from_numpyr+      s   
~~ '  "{#' '
 KK	%%&!--fllB?++FLL"=O!--ioo> 1/BIIO 	!!!"%&)=)==   
889;
 Ea E
%-,,e4ckk/
U
3
[s3.5k 6 e %-C' ' 's   'FD<FFc                 \   fd}t        j                  |       }t        j                  |      5  t	        d |D              }ddd       t        |      D ]  \  }}t        |||        t        j                  | |      }t        j                  j                  |      S # 1 sw Y   _xY w)z7Create a dataset on `colocate_with` from `numpy_input`.c                     |d<    | di |S )Ncolocate_withr   r   )next_creatorkwargsr.   s     r*   create_colocated_variablez9one_host_numpy_dataset.<locals>.create_colocated_variableL   s    +F?!&!!    c              3      K   | ]C  }t        j                  t        j                  |j                  |j
                        d        E yw)F)	trainableN)r	   
VariableV1r   zerosr   r   ).0is     r*   	<genexpr>z)one_host_numpy_dataset.<locals>.<genexpr>R   s@      + ",,Y__QWWagg-N7<> > +s   A	AN)r
   flattenr   variable_creator_scopetuplezipr+   pack_sequence_asr   Datasetfrom_tensor_slices)	r   r.   r    r1   
numpy_flat	vars_flatvr8   vars_nesteds	    `       r*   one_host_numpy_datasetrE   I   s    " ||K(*,,-FG + +)+ +I+ )Z( 'da1g&'%%k9=+				/	/	<<+ +s   B""B+c                       e Zd ZdZd Zy)SingleDevicez<Used with `colocate_with` to create a non-mirrored variable.c                     || _         y )N)device)selfrI   s     r*   __init__zSingleDevice.__init__^   s	    DKr2   N)__name__
__module____qualname____doc__rK   r   r2   r*   rG   rG   [   s
    Dr2   rG   )rO   numpyr   tensorflow.python.data.opsr   tensorflow.python.eagerr   tensorflow.python.frameworkr   r   tensorflow.python.opsr   r   r	   tensorflow.python.utilr
   r+   rE   objectrG   r   r2   r*   <module>rW      s<    8  2 + . + + 0 - ')X=$6 r2   