tf.numpy_function
| Просмотреть исходный код на GitHub |
Оборачивает функцию Python и использует её как операцию TensorFlow.
tf.numpy_function(
func, inp, Tout, 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.numpy_function(my_func, [input], tf.float32)
Примечание: Операция tf.compat.v1.numpy_function() имеет следующие известные ограничения:
Тело функции (т.е.
func) не будет сериализовано вGraphDef. Поэтому не следует использовать эту функцию, если вам необходимо сериализовать вашу модель и восстановить её в другой среде.Операция должна выполняться в том же адресном пространстве, что и программа Python, которая вызывает
tf.compat.v1.numpy_function(). Если вы используете распределённый TensorFlow, вы должны запуститьtf.distribute.Serverв том же процессе, что и программа, которая вызываетtf.compat.v1.numpy_function(), и вы должны привязать созданную операцию к устройству в этом сервере (например, используя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/r1.15/api_docs/python/tf/numpy_function