Spec-Zone.ru › TensorFlow 2.4

Модуль: 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]) + tnp.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 размещены на устройстве, отличном от процессора.

В общем, ожидаемое поведение должно соответствовать поведению кода, включающего 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) не поддерживаются
  • API NumPy 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: Эквивалент numpy.ndarray, поддерживаемый тензорами TensorFlow.

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

class string_: bytes(итерируемый_из_целых_чисел) -> bytes

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

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

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

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

class unicode_: str(объект='') -> str

Функции

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.

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.

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.

logaddexp2(...): TensorFlow-вариант NumPy's logaddexp2.

END_OF_DOCUMENT_MARKER

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

© 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.4/api_docs/python/tf/experimental/numpy

Spec-Zone.ru

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