Spec-Zone.ru › TensorFlow 2.9

Модуль: tf.experimental.numpy

tf.experimental.numpy: NumPy API на TensorFlow.

Этот модуль предоставляет подмножество API NumPy, построенного поверх операций TensorFlow. API основаны на и протестированы с версией NumPy 1.16.

Множество поддерживаемых API может расширяться со временем. Также будущие версии могут изменить базовый поддерживаемый API NumPy. Список некоторых систематических различий с NumPy приведен позже в разделе "Различия с NumPy".

Начало работы

Также см. Руководство по TensorFlow NumPy.

В примерах кода ниже мы будем предполагать, что tf.experimental.numpy импортирован как tnp и NumPy импортирован как np

print(tnp.ones([2,1]) + np.ones([1, 2]))

Типы

Модуль предоставляет класс ndarray, который оборачивает неизменяемый tf.Tensor. Предоставляются дополнительные функции, принимающие объекты типа массив. Здесь объекты типа массив включают ndarrays, как определено в этом модуле, а также tf.Tensor, в дополнение к типам, принятым NumPy.

Поддерживается подмножество типов NumPy. Продвижение типов соответствует семантике NumPy.

print(tnp.ones([1, 2], dtype=tnp.int16) + tnp.ones([2, 1], dtype=tnp.uint8))

Интерфейс массива

Класс ndarray реализует интерфейс __array__. Это должно позволить передавать эти объекты в контексты, которые ожидают объект NumPy или массив (например, matplotlib).

np.sum(tnp.ones([1, 2]) + np.ones([2, 1]))

Взаимодействие с TF

Вызовы API TF-NumPy могут быть вставлены в вызовы TensorFlow без копирования данных тензора. Это верно, даже если ndarray или tf.Tensor размещаются на устройстве, отличном от CPU.

В целом, ожидаемое поведение должно соответствовать поведению кода, связанного с tf.Tensor и запускающего бессостоятельные функции TensorFlow на них.

tnp.sum(tnp.ones([1, 2]) + tf.ones([2, 1]))

Обратите внимание, что __array_priority__ в настоящее время выбрано меньше, чем tf.Tensor. Поэтому оператор + выше возвращает tf.Tensor.

Дополнительные примеры взаимодействия включают:

  • использование with tf.GradientTape() области для вычисления градиентов через вызовы API TF-NumPy.
  • использование tf.distribution.Strategy области для распределенного выполнения
  • использование tf.vectorized_map() для ускорения кода с помощью автоматического векторизации

Поддержка устройств

Поскольку ndarray и функции оборачивают конструкции TensorFlow, код будет поддерживать GPU и TPU на уровне TensorFlow. Размещение устройств можно контролировать с помощью with tf.device областей. Обратите внимание, что эти устройства могут быть локальными или удаленными.

with tf.device("GPU:0"):
  x = tnp.ones([1, 2])
print(tf.convert_to_tensor(x).device)

Граф и жадный режимы

Выполнение в жадном режиме обычно должно соответствовать семантике NumPy по выполнению операций поочередно. Однако тот же код может быть выполнен в режиме графа, поместив его внутрь tf.function. Тело функции может содержать код NumPy, а входные данные могут быть ndarray тоже.

@tf.function
def f(x, y):
  return tnp.sum(x + y)

f(tnp.ones([1, 2]), tf.ones([2, 1]))

Поток управления Python, основанный на ndarray значениях, будет переведён с помощью autograph в tf.cond и tf.while_loop конструкции. Код может быть скомпилирован XLA для дальнейшей оптимизации.

Однако обратите внимание, что выполнение в режиме графа может изменить поведение определенных операций, так как символическое выполнение может не иметь информации, вычисляемой во время выполнения. Некоторые различия:

  • Формы могут быть неполными или неизвестными в режиме графа. Это означает, что ndarray.shape, ndarray.size и ndarray.ndim могут вернуть ndarray объекты вместо возвращения целых чисел (или кортежа целых чисел).
  • __len__, __iter__ и __index__ свойства ndarray аналогично могут не поддерживаться в режиме графа. Код, использующий эти свойства, может потребовать изменения на явные операции с формами или конструкции потока управления.
  • Также обратите внимание на ограничения autograph.

Изменение и переменные

ndarrays в настоящее время оборачивают неизменяемые tf.Tensor. Поэтому операции изменения, такие как присваивание срезов, не поддерживаются. Это может измениться в будущем. Однако вы можете напрямую создать tf.Variable и использовать его с API TF-NumPy.

tf_var = tf.Variable(2.0)
tf_var.assign_add(tnp.square(tf_var))

Различия с NumPy

Вот неполный список различий:

  • В настоящее время не все типы данных поддерживаются. Например, np.float96, np.float128. Типы np.object_, np.str_, np.recarray не поддерживаются.
  • Хранение ndarray только в порядке C. Порядок Fortran, представления, stride_tricks не поддерживаются.
  • Поддерживается только подмножество функций и модулей. Этот набор будет расширяться со временем. Для поддерживаемых функций некоторые аргументы или значения аргументов могут не поддерживаться. Эти различия обычно указаны в комментариях к функциям. Полная ufunc поддержка также не предоставляется.
  • Изменение буфера в настоящее время не поддерживается. ndarrays оборачивают неизменяемые тензоры. Это означает, что аргументы выходных буферов (например, out в ufuncs) не поддерживаются.
  • NumPy API на C не поддерживается. Интеграция NumPy на Cython и Swig не поддерживаются.

Модули

random модуль: Общедоступный API для пространства имен tf.experimental.numpy.random.

Классы

class bool_: Логический тип (True или False), хранится как байт.

class complex128: Тип комплексного числа, составленный из двух чисел с двойной точностью с плавающей запятой

class complex64: Тип комплексного числа, составленный из двух чисел одинарной точностью с плавающей запятой

class complex_: Тип комплексного числа, составленный из двух чисел с двойной точностью с плавающей запятой

class float16: Число с плавающей запятой полуточной точности.

class float32: Число с плавающей запятой одинарной точности, совместимое с C float.

class float64: Число с плавающей запятой двойной точности, совместимое с Python float

class float_: Число с плавающей запятой двойной точности, совместимое с Python float

class iinfo: iinfo(тип)

class inexact: Абстрактный базовый класс всех числовых скалярных типов с (потенциально)

class int16: Тип целого числа со знаком, совместимый с C short.

class int32: Тип целого числа со знаком, совместимый с C int.

class int64: Тип целого числа со знаком, совместимый с Python int и C long.

class int8: Тип целого числа со знаком, совместимый с C char.

class int_: Тип целого числа со знаком, совместимый с Python int и C long.

class ndarray: tf.Tensor представляет собой многомерный массив элементов.

class object_: Любой объект Python.

class string_: Строка байтов.

class uint16: Тип целого без знака, совместимый с C unsigned short.

class uint32: Тип целого без знака, совместимый с C unsigned int.

class uint64: Тип целого без знака, совместимый с C unsigned long.

class uint8: Тип целого без знака, совместимый с C unsigned char.

class unicode_: Строка Юникода.

Функции

abs(...): Вариант TensorFlow функции NumPy abs.

absolute(...): Вариант TensorFlow функции NumPy absolute.

add(...): Вариант TensorFlow функции NumPy add.

all(...): Вариант TensorFlow функции NumPy all.

allclose(...): Вариант TensorFlow функции NumPy allclose.

amax(...): Вариант TensorFlow функции NumPy amax.

amin(...): Вариант TensorFlow функции NumPy amin.

angle(...): Вариант TensorFlow функции NumPy angle.

any(...): Вариант TensorFlow функции NumPy any.

append(...): Вариант TensorFlow функции NumPy append.

arange(...): Вариант TensorFlow функции NumPy arange.

arccos(...): Вариант TensorFlow функции NumPy arccos.

arccosh(...): Вариант TensorFlow функции NumPy arccosh.

arcsin(...): Вариант TensorFlow функции NumPy arcsin.

arcsinh(...): Вариант TensorFlow функции NumPy arcsinh.

arctan(...): Вариант TensorFlow функции NumPy arctan.

arctan2(...): Вариант TensorFlow функции NumPy arctan2.

arctanh(...): Вариант TensorFlow функции NumPy arctanh.

END_OF_DOCUMENT_MARKER ```

argmax(...): TensorFlow версия NumPy's argmax.

argmin(...): TensorFlow версия NumPy's argmin.

argsort(...): TensorFlow версия NumPy's argsort.

around(...): TensorFlow версия NumPy's around.

array(...): TensorFlow версия NumPy's array.

array_equal(...): TensorFlow версия NumPy's array_equal.

asanyarray(...): TensorFlow версия NumPy's asanyarray.

asarray(...): TensorFlow версия NumPy's asarray.

ascontiguousarray(...): TensorFlow версия NumPy's ascontiguousarray.

atleast_1d(...): TensorFlow версия NumPy's atleast_1d.

atleast_2d(...): TensorFlow версия NumPy's atleast_2d.

atleast_3d(...): TensorFlow версия NumPy's atleast_3d.

average(...): TensorFlow версия NumPy's average.

bitwise_and(...): TensorFlow версия NumPy's bitwise_and.

bitwise_not(...): TensorFlow версия NumPy's bitwise_not.

bitwise_or(...): TensorFlow версия NumPy's bitwise_or.

bitwise_xor(...): TensorFlow версия NumPy's bitwise_xor.

broadcast_arrays(...): TensorFlow версия NumPy's broadcast_arrays.

broadcast_to(...): TensorFlow версия NumPy's broadcast_to.

cbrt(...): TensorFlow версия NumPy's cbrt.

ceil(...): TensorFlow версия NumPy's ceil.

clip(...): TensorFlow версия NumPy's clip.

compress(...): TensorFlow версия NumPy's compress.

concatenate(...): TensorFlow версия NumPy's concatenate.

conj(...): TensorFlow версия NumPy's conj.

conjugate(...): TensorFlow версия NumPy's conjugate.

copy(...): TensorFlow версия NumPy's copy.

cos(...): TensorFlow версия NumPy's cos.

cosh(...): TensorFlow версия NumPy's cosh.

count_nonzero(...): TensorFlow версия NumPy's count_nonzero.

cross(...): TensorFlow версия NumPy's cross.

cumprod(...): TensorFlow версия NumPy's cumprod.

cumsum(...): TensorFlow версия NumPy's cumsum.

deg2rad(...): TensorFlow версия NumPy's deg2rad.

diag(...): TensorFlow версия NumPy's diag.

diag_indices(...): TensorFlow версия NumPy's diag_indices.

diagflat(...): TensorFlow версия NumPy's diagflat.

diagonal(...): TensorFlow версия NumPy's diagonal.

diff(...): TensorFlow версия NumPy's diff.

divide(...): TensorFlow версия NumPy's divide.

divmod(...): TensorFlow версия NumPy's divmod.

dot(...): TensorFlow версия NumPy's dot.

dsplit(...): TensorFlow версия NumPy's dsplit.

dstack(...): TensorFlow версия NumPy's dstack.

einsum(...): TensorFlow версия NumPy's einsum.

empty(...): TensorFlow версия NumPy's empty.

empty_like(...): TensorFlow версия NumPy's empty_like.

equal(...): TensorFlow версия NumPy's equal.

exp(...): TensorFlow версия NumPy's exp.

exp2(...): TensorFlow версия NumPy's exp2.

expand_dims(...): TensorFlow версия NumPy's expand_dims.

experimental_enable_numpy_behavior(...): Включить поведение NumPy на тензорах.

expm1(...): TensorFlow версия NumPy's expm1.

eye(...): TensorFlow версия NumPy's eye.

fabs(...): TensorFlow версия NumPy's fabs.

finfo(...): TensorFlow версия NumPy's finfo.

fix(...): TensorFlow версия NumPy's fix.

flip(...): TensorFlow версия NumPy's flip.

fliplr(...): TensorFlow версия NumPy's fliplr.

flipud(...): TensorFlow версия NumPy's flipud.

float_power(...): TensorFlow версия NumPy's float_power.

floor(...): TensorFlow версия NumPy's floor.

floor_divide(...): TensorFlow версия NumPy's floor_divide.

full(...): TensorFlow версия NumPy's full.

full_like(...): TensorFlow версия NumPy's full_like.

gcd(...): TensorFlow версия NumPy's gcd.

geomspace(...): TensorFlow версия NumPy's geomspace.

greater(...): TensorFlow версия NumPy's greater.

greater_equal(...): TensorFlow версия NumPy's greater_equal.

heaviside(...): TensorFlow версия NumPy's heaviside.

hsplit(...): TensorFlow версия NumPy's hsplit.

hstack(...): TensorFlow версия NumPy's hstack.

hypot(...): TensorFlow версия NumPy's hypot.

identity(...): TensorFlow версия NumPy's identity.

imag(...): TensorFlow версия NumPy's imag.

inner(...): TensorFlow версия NumPy's inner.

isclose(...): TensorFlow версия NumPy's isclose.

iscomplex(...): TensorFlow версия NumPy's iscomplex.

iscomplexobj(...): TensorFlow версия NumPy's iscomplexobj.

isfinite(...): TensorFlow версия NumPy's isfinite.

isinf(...): TensorFlow версия NumPy's isinf.

isnan(...): TensorFlow версия NumPy's isnan.

isneginf(...): TensorFlow версия NumPy's isneginf.

isposinf(...): TensorFlow версия NumPy's isposinf.

isreal(...): TensorFlow версия NumPy's isreal.

isrealobj(...): TensorFlow версия NumPy's isrealobj.

isscalar(...): TensorFlow версия NumPy's isscalar.

issubdtype(...): Возвращает True, если первый аргумент является типом кода, меньшим или равным в иерархии типов.

ix_(...): TensorFlow версия NumPy's ix_.

kron(...): TensorFlow версия NumPy's kron.

lcm(...): TensorFlow версия NumPy's lcm.

less(...): TensorFlow версия NumPy's less.

less_equal(...): TensorFlow версия NumPy's less_equal.

linspace(...): TensorFlow версия NumPy's linspace.

log(...): TensorFlow версия NumPy's log.

log10(...): TensorFlow версия NumPy's log10.

log1p(...): TensorFlow версия NumPy's log1p.

log2(...): TensorFlow версия NumPy's log2.

logaddexp(...): TensorFlow версия NumPy's logaddexp.

END_OF_DOCUMENT_MARKER

logaddexp2(...): Вариант TensorFlow для NumPy's logaddexp2.

logical_and(...): Вариант TensorFlow для NumPy's logical_and.

logical_not(...): Вариант TensorFlow для NumPy's logical_not.

logical_or(...): Вариант TensorFlow для NumPy's logical_or.

logical_xor(...): Вариант TensorFlow для NumPy's logical_xor.

logspace(...): Вариант TensorFlow для NumPy's logspace.

matmul(...): Вариант TensorFlow для NumPy's matmul.

max(...): Вариант TensorFlow для NumPy's max.

maximum(...): Вариант TensorFlow для NumPy's maximum.

mean(...): Вариант TensorFlow для NumPy's mean.

meshgrid(...): Вариант TensorFlow для NumPy's meshgrid.

min(...): Вариант TensorFlow для NumPy's min.

minimum(...): Вариант TensorFlow для NumPy's minimum.

mod(...): Вариант TensorFlow для NumPy's mod.

moveaxis(...): Вариант TensorFlow для NumPy's moveaxis.

multiply(...): Вариант TensorFlow для NumPy's multiply.

nanmean(...): Вариант TensorFlow для NumPy's nanmean.

nanprod(...): Вариант TensorFlow для NumPy's nanprod.

nansum(...): Вариант TensorFlow для NumPy's nansum.

ndim(...): Вариант TensorFlow для NumPy's ndim.

negative(...): Вариант TensorFlow для NumPy's negative.

nextafter(...): Вариант TensorFlow для NumPy's nextafter.

nonzero(...): Вариант TensorFlow для NumPy's nonzero.

not_equal(...): Вариант TensorFlow для NumPy's not_equal.

ones(...): Вариант TensorFlow для NumPy's ones.

ones_like(...): Вариант TensorFlow для NumPy's ones_like.

outer(...): Вариант TensorFlow для NumPy's outer.

pad(...): Вариант TensorFlow для NumPy's pad.

polyval(...): Вариант TensorFlow для NumPy's polyval.

positive(...): Вариант TensorFlow для NumPy's positive.

power(...): Вариант TensorFlow для NumPy's power.

prod(...): Вариант TensorFlow для NumPy's prod.

promote_types(...): Вариант TensorFlow для NumPy's promote_types.

ptp(...): Вариант TensorFlow для NumPy's ptp.

rad2deg(...): Вариант TensorFlow для NumPy's rad2deg.

ravel(...): Вариант TensorFlow для NumPy's ravel.

real(...): Вариант TensorFlow для NumPy's real.

reciprocal(...): Вариант TensorFlow для NumPy's reciprocal.

remainder(...): Вариант TensorFlow для NumPy's remainder.

repeat(...): Вариант TensorFlow для NumPy's repeat.

reshape(...): Вариант TensorFlow для NumPy's reshape.

result_type(...): Вариант TensorFlow для NumPy's result_type.

roll(...): Вариант TensorFlow для NumPy's roll.

rot90(...): Вариант TensorFlow для NumPy's rot90.

round(...): Вариант TensorFlow для NumPy's round.

select(...): Вариант TensorFlow для NumPy's select.

shape(...): Вариант TensorFlow для NumPy's shape.

sign(...): Вариант TensorFlow для NumPy's sign.

signbit(...): Вариант TensorFlow для NumPy's signbit.

sin(...): Вариант TensorFlow для NumPy's sin.

sinc(...): Вариант TensorFlow для NumPy's sinc.

sinh(...): Вариант TensorFlow для NumPy's sinh.

size(...): Вариант TensorFlow для NumPy's size.

sort(...): Вариант TensorFlow для NumPy's sort.

split(...): Вариант TensorFlow для NumPy's split.

sqrt(...): Вариант TensorFlow для NumPy's sqrt.

square(...): Вариант TensorFlow для NumPy's square.

squeeze(...): Вариант TensorFlow для NumPy's squeeze.

stack(...): Вариант TensorFlow для NumPy's stack.

std(...): Вариант TensorFlow для NumPy's std.

subtract(...): Вариант TensorFlow для NumPy's subtract.

sum(...): Вариант TensorFlow для NumPy's sum.

swapaxes(...): Вариант TensorFlow для NumPy's swapaxes.

take(...): Вариант TensorFlow для NumPy's take.

take_along_axis(...): Вариант TensorFlow для NumPy's take_along_axis.

tan(...): Вариант TensorFlow для NumPy's tan.

tanh(...): Вариант TensorFlow для NumPy's tanh.

tensordot(...): Вариант TensorFlow для NumPy's tensordot.

tile(...): Вариант TensorFlow для NumPy's tile.

trace(...): Вариант TensorFlow для NumPy's trace.

transpose(...): Вариант TensorFlow для NumPy's transpose.

tri(...): Вариант TensorFlow для NumPy's tri.

tril(...): Вариант TensorFlow для NumPy's tril.

triu(...): Вариант TensorFlow для NumPy's triu.

true_divide(...): Вариант TensorFlow для NumPy's true_divide.

vander(...): Вариант TensorFlow для NumPy's vander.

var(...): Вариант TensorFlow для NumPy's var.

vdot(...): Вариант TensorFlow для NumPy's vdot.

vsplit(...): Вариант TensorFlow для NumPy's vsplit.

vstack(...): Вариант TensorFlow для NumPy's vstack.

where(...): Вариант TensorFlow для NumPy's where.

zeros(...): Вариант TensorFlow для NumPy's zeros.

zeros_like(...): Вариант TensorFlow для NumPy's zeros_like.

Другие члены
e 2.718281828459045
inf inf
newaxis None
pi 3.141592653589793

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/experimental/numpy

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API