tf.contrib.framework.py_func
Оборачивает функцию Python и использует её как операцию TensorFlow.
tf.contrib.framework.py_func(
func, args=(), kwargs=None, output_types=None, output_shapes=None,
stateful=True, name=None
)
Эта функция является оболочкой вокруг tf.compat.v1.py_func и улучшает её с помощью аргументов kwargs и output_shapes. Кроме того, были изменены некоторые имена аргументов.
Учитывая функцию Python func, которая принимает массивы NumPy в качестве входных данных и возвращает массивы NumPy в качестве выходных данных, оберните эту функцию как операцию в графе TensorFlow. Следующий фрагмент строит простой граф TensorFlow, который вызывает функцию NumPy np.sinh() в качестве операции в графе:
def my_func(x): # x will be a numpy array with the contents of the placeholder below return np.sinh(x) inp = tf.compat.v1.placeholder(tf.float32) y = tf.compat.v1.py_func(my_func, [inp], tf.float32)
Примечание: Операция tf.compat.v1.py_func() имеет следующие известные ограничения:
Тело функции (т.е.
func) не будет сериализовано вGraphDef. Поэтому не следует использовать эту функцию, если вам нужно сериализовать вашу модель и восстановить её в другой среде.Операция должна выполняться в том же адресном пространстве, что и программа Python, вызывающая
tf.compat.v1.py_func(). Если вы используете распределённый TensorFlow, вы должны запуститьtf.distribute.Serverв том же процессе, что и программа, вызывающаяtf.compat.v1.py_func(), и вы должны привязать созданную операцию к устройству в этом сервере (например, с помощьюwith tf.device():).
| Аргументы | |
|---|---|
func | Функция Python, которая принимает список объектов NumPy ndarray с типами элементов, соответствующими соответствующим объектам tf.Tensor в inp, и возвращает список объектов ndarray (или один объект ndarray) с типами элементов, соответствующими соответствующим значениям в Tout. |
args | Список объектов Tensor. |
kwargs | Словарь со значениями в виде объектов Tensor. |
output_types | Вложенная структура типов данных TensorFlow или один тип данных TensorFlow, если их только один, указывающий, что возвращает func. |
output_shapes | То же, что и output_types, только типы заменены на формы (необязательно). |
stateful | (Булево.) Если True, функция должна считаться состоятельной. Если функция бессостоятельная, при одинаковых входных данных она будет возвращать одинаковые выходные данные и не будет иметь наблюдаемых побочных эффектов. Оптимизации, такие как устранение общих подвыражений, выполняются только для бессостоятельных операций. |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
| Операция TensorFlow, которая оборачивает входную функцию Python. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/framework/py_func