# tf.contrib.framework.variable

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v1.15.0/tensorflow/contrib/framework/python/ops/variables.py#L209-L281) |

Gets an existing variable with these parameters or creates a new one.

    tf.contrib.framework.variable(
        name, shape=None, dtype=None, initializer=None, regularizer=None,
        trainable=True, collections=None, caching_device=None, device=None,
        partitioner=None, custom_getter=None, use_resource=None,
        synchronization=tf.VariableSynchronization.AUTO,
        aggregation=tf.VariableAggregation.NONE
    )

<br />

<br />

<br />

| ## Args ||
|---|---|
| `name` | the name of the new or existing variable. |
| `shape` | shape of the new or existing variable. |
| `dtype` | type of the new or existing variable (defaults to `DT_FLOAT`). |
| `initializer` | initializer for the variable if one is created. |
| `regularizer` | a (Tensor -\> Tensor or None) function; the result of applying it on a newly created variable will be added to the collection GraphKeys.REGULARIZATION_LOSSES and can be used for regularization. |
| `trainable` | If `True` also add the variable to the graph collection `GraphKeys.TRAINABLE_VARIABLES` (see [`tf.Variable`](https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/Variable)). |
| `collections` | A list of collection names to which the Variable will be added. If None it would default to [`tf.GraphKeys.GLOBAL_VARIABLES`](https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/GraphKeys#GLOBAL_VARIABLES). |
| `caching_device` | Optional device string or function describing where the Variable should be cached for reading. Defaults to the Variable's device. |
| `device` | Optional device to place the variable. It can be an string or a function that is called to get the device for the variable. |
| `partitioner` | Optional callable that accepts a fully defined `TensorShape` and dtype of the `Variable` to be created, and returns a list of partitions for each axis (currently only one axis can be partitioned). |
| `custom_getter` | Callable that allows overwriting the internal get_variable method and has to have the same signature. |
| `use_resource` | If `True` use a ResourceVariable instead of a Variable. |
| `synchronization` | Indicates when a distributed a variable will be aggregated. Accepted values are constants defined in the class [`tf.VariableSynchronization`](https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/VariableSynchronization). By default the synchronization is set to `AUTO` and the current `DistributionStrategy` chooses when to synchronize. |
| `aggregation` | Indicates how a distributed variable will be aggregated. Accepted values are constants defined in the class [`tf.VariableAggregation`](https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/VariableAggregation). |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| The created or existing variable. ||

<br />