tf.compat.v1.py_func
Оборачивает функцию Python и использует её как операцию TensorFlow.
tf.compat.v1.py_func(
func, inp, Tout, stateful=True, name=None
)
Учитывая функцию 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) input = tf.compat.v1.placeholder(tf.float32) y = tf.compat.v1.py_func(my_func, [input], 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, которая принимает объекты ndarray в качестве аргументов и возвращает список объектов ndarray (или один объект ndarray). Эта функция должна принимать столько аргументов, сколько тензоров в inp, и типы этих аргументов будут соответствовать соответствующим объектам tf.Tensor в inp. Возвращаемые значения ndarray должны соответствовать числу и типам, определённым Tout. Важное примечание: входные и выходные массивы NumPy ndarray функции func не гарантированно являются копиями. В некоторых случаях их основная память будет совмещена с соответствующими тензорами TensorFlow. Внесение изменений на месте или сохранение func входных или возвращаемых значений в структурах данных Python без явного (np.)copy может иметь непредсказуемые последствия. |
inp | Список объектов Tensor . |
Tout | Список или кортеж типов данных TensorFlow, или один тип данных TensorFlow, если их только один, указывающий, что возвращает func. |
stateful | (Булево.) Если True, функция должна рассматриваться как состоятельная. Если функция бессостоятельная, при одинаковом входе она будет возвращать тот же результат и не иметь наблюдаемых побочных эффектов. Оптимизации, такие как устранение общих подвыражений, выполняются только для бессостоятельных операций. |
name | Имя операции (необязательно). |
| Возвращаемые значения | |
|---|---|
Список Tensor или один Tensor объект, который вычисляет func. |
© 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/r2.3/api_docs/python/tf/compat/v1/py_func