B
    ٻd                 @   s   d Z ddl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 ed	e d
Zdd ZG dd dejZdS )z(Implementation of LoadDataset in Python.    N)dataset_ops)structured_function)context)gen_experimental_dataset_ops)gfile)lazy_loadernested_structure_coderz4tensorflow.python.saved_model.nested_structure_coderc             C   s   t | |||S )N)_LoadDataset)pathelement_speccompressionreader_func r   T/var/www/html/venv/lib/python3.7/site-packages/tensorflow/python/data/ops/load_op.pyload    s    r   c                   s6   e Zd ZdZd	 fdd	Zdd Zedd Z  ZS )
r	   z.A dataset that loads previously saved dataset.Nc       
   	      s   |d krdd }|| _ |d krt s.tdttj|t	j
d}| }W d Q R X tj }|| t|}|| _n|| _|| _tj|dt	t	| jd| _tj|f| jjj|| jjd| j}	tt| |	 d S )Nc             S   s   | j dd t tjdS )Nc             S   s   | S )Nr   )xr   r   r   <lambda>.       z9_LoadDataset.__init__.<locals>.<lambda>.<locals>.<lambda>)Zcycle_lengthZnum_parallel_calls)Z
interleavemultiprocessing	cpu_countr   ZAUTOTUNE)Zdatasetsr   r   r   r   -   s   z'_LoadDataset.__init__.<locals>.<lambda>z;In graph mode the `element_spec` argument must be provided.rbzload())Zinput_structure)Zreader_func_other_argsr   r   )_pathr   Zexecuting_eagerly
ValueErrorr   ZGFileosr
   joinr   ZDATASET_SPEC_FILENAMEreadr   Z
struct_pb2ZStructuredValueZParseFromStringZdecode_proto_element_spec_compressionr   ZStructuredFunctionWrapperZDatasetSpec_reader_funcged_opsZload_datasetfunctionZcaptured_inputsZ_flat_structuresuperr	   __init__)
selfr
   r   r   r   fZencoded_specZ	struct_pbspecZvariant_tensor)	__class__r   r   r"   *   s8    




z_LoadDataset.__init__c             C   s   | j gS )N)r   )r#   r   r   r   
_functionsP   s    z_LoadDataset._functionsc             C   s   | j S )N)r   )r#   r   r   r   r   S   s    z_LoadDataset.element_spec)NNN)	__name__
__module____qualname____doc__r"   r'   propertyr   __classcell__r   r   )r&   r   r	   '   s
    %r	   )r+   r   r   Ztensorflow.python.data.opsr   r   Ztensorflow.python.eagerr   Ztensorflow.python.opsr   r   Ztensorflow.python.platformr   Ztensorflow.python.utilr   
LazyLoaderglobalsr   r   ZDatasetSourcer	   r   r   r   r   <module>   s   