aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/g3doc/api_docs/python/functions_and_classes/shard5/tf.make_template.md
diff options
context:
space:
mode:
Diffstat (limited to 'tensorflow/g3doc/api_docs/python/functions_and_classes/shard5/tf.make_template.md')
-rw-r--r--tensorflow/g3doc/api_docs/python/functions_and_classes/shard5/tf.make_template.md111
1 files changed, 0 insertions, 111 deletions
diff --git a/tensorflow/g3doc/api_docs/python/functions_and_classes/shard5/tf.make_template.md b/tensorflow/g3doc/api_docs/python/functions_and_classes/shard5/tf.make_template.md
deleted file mode 100644
index 99814cacc5..0000000000
--- a/tensorflow/g3doc/api_docs/python/functions_and_classes/shard5/tf.make_template.md
+++ /dev/null
@@ -1,111 +0,0 @@
-### `tf.make_template(name_, func_, create_scope_now_=False, unique_name_=None, custom_getter_=None, **kwargs)` {#make_template}
-
-Given an arbitrary function, wrap it so that it does variable sharing.
-
-This wraps `func_` in a Template and partially evaluates it. Templates are
-functions that create variables the first time they are called and reuse them
-thereafter. In order for `func_` to be compatible with a `Template` it must
-have the following properties:
-
-* The function should create all trainable variables and any variables that
- should be reused by calling `tf.get_variable`. If a trainable variable is
- created using `tf.Variable`, then a ValueError will be thrown. Variables
- that are intended to be locals can be created by specifying
- `tf.Variable(..., trainable=false)`.
-* The function may use variable scopes and other templates internally to
- create and reuse variables, but it shouldn't use `tf.global_variables` to
- capture variables that are defined outside of the scope of the function.
-* Internal scopes and variable names should not depend on any arguments that
- are not supplied to `make_template`. In general you will get a ValueError
- telling you that you are trying to reuse a variable that doesn't exist
- if you make a mistake.
-
-In the following example, both `z` and `w` will be scaled by the same `y`. It
-is important to note that if we didn't assign `scalar_name` and used a
-different name for z and w that a `ValueError` would be thrown because it
-couldn't reuse the variable.
-
-```python
-def my_op(x, scalar_name):
- var1 = tf.get_variable(scalar_name,
- shape=[],
- initializer=tf.constant_initializer(1))
- return x * var1
-
-scale_by_y = tf.make_template('scale_by_y', my_op, scalar_name='y')
-
-z = scale_by_y(input1)
-w = scale_by_y(input2)
-```
-
-As a safe-guard, the returned function will raise a `ValueError` after the
-first call if trainable variables are created by calling `tf.Variable`.
-
-If all of these are true, then 2 properties are enforced by the template:
-
-1. Calling the same template multiple times will share all non-local
- variables.
-2. Two different templates are guaranteed to be unique, unless you reenter the
- same variable scope as the initial definition of a template and redefine
- it. An examples of this exception:
-
-```python
-def my_op(x, scalar_name):
- var1 = tf.get_variable(scalar_name,
- shape=[],
- initializer=tf.constant_initializer(1))
- return x * var1
-
-with tf.variable_scope('scope') as vs:
- scale_by_y = tf.make_template('scale_by_y', my_op, scalar_name='y')
- z = scale_by_y(input1)
- w = scale_by_y(input2)
-
-# Creates a template that reuses the variables above.
-with tf.variable_scope(vs, reuse=True):
- scale_by_y2 = tf.make_template('scale_by_y', my_op, scalar_name='y')
- z2 = scale_by_y2(input1)
- w2 = scale_by_y2(input2)
-```
-
-Depending on the value of `create_scope_now_`, the full variable scope may be
-captured either at the time of first call or at the time of construction. If
-this option is set to True, then all Tensors created by repeated calls to the
-template will have an extra trailing _N+1 to their name, as the first time the
-scope is entered in the Template constructor no Tensors are created.
-
-Note: `name_`, `func_` and `create_scope_now_` have a trailing underscore to
-reduce the likelihood of collisions with kwargs.
-
-##### Args:
-
-
-* <b>`name_`</b>: A name for the scope created by this template. If necessary, the name
- will be made unique by appending `_N` to the name.
-* <b>`func_`</b>: The function to wrap.
-* <b>`create_scope_now_`</b>: Boolean controlling whether the scope should be created
- when the template is constructed or when the template is called. Default
- is False, meaning the scope is created when the template is called.
-* <b>`unique_name_`</b>: When used, it overrides name_ and is not made unique. If a
- template of the same scope/unique_name already exists and reuse is false,
- an error is raised. Defaults to None.
-* <b>`custom_getter_`</b>: Optional custom getter for variables used in `func_`. See
- the [`get_variable`](#get_variable) `custom_getter` documentation for
- more information.
-* <b>`**kwargs`</b>: Keyword arguments to apply to `func_`.
-
-##### Returns:
-
- A function to encapsulate a set of variables which should be created once
- and reused. An enclosing scope will created, either where `make_template`
- is called, or wherever the result is called, depending on the value of
- `create_scope_now_`. Regardless of the value, the first time the template
- is called it will enter the scope with no reuse, and call `func_` to create
- variables, which are guaranteed to be unique. All subsequent calls will
- re-enter the scope and reuse those variables.
-
-##### Raises:
-
-
-* <b>`ValueError`</b>: if the name is None.
-