# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import numpy as np from . import core from .layer_helper import LayerHelper __all__ = ['data'] def data(name, shape, dtype='float32', type=core.VarDesc.VarType.LOD_TENSOR): """ **Data Layer** This function creates a variable on the global scope. The global variables can be accessed by all the following operators in the graph. Note: `paddle.fluid.layers.data` is deprecated. It will be removed in a future version. Please use this `paddle.fluid.data`. The `paddle.fluid.layers.data` set shape at compile time but does NOT check the shape of feeded data, this `paddle.fluid.data` checks the shape of data feeded by Executor/ParallelExecutor during run time. Args: name (str): The name/alias of the variable shape (list|tuple): List|Tuple of integers declaring the shape. dtype (np.dtype|VarType|str): The type of the data. Supported dtype: float16, float32, float64, int8, int16, int32, int64, uint8, bool. type (VarType): The output type. Supported type: VarType.LOD_TENSOR, VarType.SELECTED_ROWS, VarType.NCCL_ID. Default: VarType.LOD_TENSOR. Returns: Variable: The global variable that gives access to the data. Examples: .. code-block:: python import paddle.fluid as fluid # Creates a variable with fixed size [1, 2, 3] # User can only feed data of the same shape to x x = fluid.data(name='x', shape=[1, 2, 3], dtype='int64') # Creates a variable with changable batch size -1. # Users can feed data of any batch size into y, # but size of each data sample has to be [3, 224, 224] y = fluid.data(name='y', shape=[-1, 3, 224, 224], dtype='float32') """ helper = LayerHelper('data', **locals()) return helper.create_global_variable( name=name, shape=shape, dtype=dtype, type=type, stop_gradient=True, lod_level=0, is_data=True, need_check_feed=True)