Shape

публичный финальный класс Shape

Форма Tensor или NdArray .

Shape определяет размеры по своим осям. Он может содержать неизвестный размер одной из осей или может быть совершенно неизвестен, и в этом случае неизвестно даже количество осей. Если размер оси неизвестен, в качестве ее размера следует использовать UNKNOWN_SIZE .

Поля

публичный статический длинный UNKNOWN_SIZE Размер неизвестной оси или общий неизвестный размер неизвестной формы.

Публичные методы

Форма
добавить (длинный последний размер)
Возвращает новую фигуру с добавленным новым последним размером.
Форма
добавить ( формировать другое)
Возвращает новую фигуру с добавленными размерами других фигур.
длинный[]
асмассив ()
Возвращает защитную копию осей этой формы.
логическое значение
равно (Объект obj)
Равно реализации для фигур.
логическое значение
имеетUnknownDimension ()
Возвращает, имеют ли одно или несколько измерений этой фигуры неизвестный размер.
интервал
Форма
голова ()
Возвращает одномерную фигуру, первое измерение которой соответствует первому измерению этой фигуры.
статическое логическое значение
isCompatible (длинный dim, длинный другойDim)
Проверьте, совместимы ли два размера фигуры.
логическое значение
isCompatibleWith (форма формы )
Определяет, совместима ли с этой фигура другая фигура.
логическое значение
isMatrix ()
Возвращает, является ли эта форма формой матрицы.
логическое значение
isScalar ()
Возвращает, представляет ли эта форма скаляр.
логическое значение
isUnknown ()
Возвращает, неизвестно ли количество измерений этой фигуры.
логическое значение
isVector ()
Возвращает, является ли эта форма формой вектора.
интервал
numDimensions ()
Возвращает количество измерений этой фигуры.
статическая форма
( длинный ... размерРазмеры)
Создайте форму, представляющую скалярное или N-мерное значение.
Форма
prepend ( формировать другое)
Возвращает новую фигуру с добавленными к ней размерами другой фигуры.
Форма
добавить (длинное первое измерение)
Возвращает новую фигуру с добавленным новым первым измерением.
статическая форма
скаляр ()
Создает форму, представляющую скалярное значение.
длинный
размер (целое число)
Размер измерения с данным индексом.
длинный
размер ()
Возвращает общее количество элементов, которые будет иметь тензор с этой формой.
Форма
subShape (начало int, конец int)
Возвращает размерную фигуру end - begin с размерами, соответствующими этой фигуре от begin до end .
Форма
хвост ()
Возвращает новую фигуру с удаленным первым измерением этой фигуры.
Форма
взять (int n)
Возвращает n-мерную фигуру с размерами, соответствующими первым n измерениям этой фигуры.
Форма
takeLast (целое n)
Возвращает n-мерную фигуру, размеры которой соответствуют последним n измерениям этой фигуры.
Нить
нанизывать ()
Краткое описание формы, предназначенной для отладки.
статическая форма
неизвестный ()
Создает фигуру, представляющую неизвестное количество измерений.

Унаследованные методы

Поля

общедоступный статический длинный UNKNOWN_SIZE

Размер неизвестной оси или общий неизвестный размер неизвестной формы.

Публичные методы

добавление общедоступной формы (long LastDimension)

Возвращает новую фигуру с добавленным новым последним размером. Чтобы этот вызов завершился успешно, isUnknown() должно иметь значение false .

Параметры
последнее измерение размер для добавления
Возврат
  • новая фигура с размерами этой фигуры, за которыми следует заданный размер, никогда не нулевой

публичная форма добавления ( форма другого)

Возвращает новую фигуру с добавленными размерами других фигур. И для этой фигуры, и для другой формы isUnknown() должен возвращать false. Например, @code Shape.of(3,4).append(Shape.of(1,2)) => Shape.of(3,4,1,2) }

Параметры
другой другая форма, не должна быть null , не должна быть неизвестной
Возврат
  • Новая фигура, состоящая из размеров этой фигуры, за которыми следуют размеры заданной фигуры.

общественный длинный [] asArray ()

Возвращает защитную копию осей этой формы. Изменения в возвращаемом массиве, чтобы не изменять состояние этой фигуры. Возвращает значение null, если isUnknown() имеет значение true.

общедоступное логическое значение равно (Object obj)

Равно реализации для фигур. Две фигуры считаются равными, если:

  • количество измерений определено и одинаково для обоих
  • размер каждого измерения определен и равен для обоих

Если какая-либо фигура имеет неизвестные размеры (даже если они одинаковы в обеих) или если какая-либо фигура имеет неизвестное количество измерений (даже если обе фигуры возвращают true для isUnknown() ), они не считаются равными! Однако форма всегда будет равна самой себе, даже если она неизвестна или содержит неизвестные размеры.

общедоступное логическое значение hasUnknownDimension ()

Возвращает, имеют ли одно или несколько измерений этой фигуры неизвестный размер.

public int hashCode ()

общедоступная форма головы ()

Возвращает одномерную фигуру, первое измерение которой соответствует первому измерению этой фигуры.

public static boolean isCompatible (long dim, longotherDim)

Проверьте, совместимы ли два размера фигуры.

Размеры совместимы, если любой размер равен Shape.UNKNOWN_SIZE или оба размера равны.

Параметры
тусклый первое измерение
другоеDim второе измерение
Возврат
  • правда, если оба размера совместимы

общедоступное логическое значение isCompatibleWith (форма формы )

Определяет, совместима ли с этой фигура другая фигура.

Две возможно частично определенные фигуры совместимы, если существует полностью определенная форма, которую могут представлять обе фигуры. Таким образом, совместимость позволяет коду вывода формы рассуждать о частично определенных формах. Например:

  • Shape.unknown() совместим со всеми фигурами.
  • Shape(UNKNOWN_SIZE, UNKNOWN_SIZE) совместим со всеми двумерными фигурами, такими как Shape(32, 784) , а также Shape.unknown() . Он несовместим, например, с Shape(UNKNOWN_SIZE) или Shape(UNKNOWN_SIZE, UNKNOWN_SIZE, UNKNOWN_SIZE) .
  • Shape(32, UNKNOWN_SIZE) совместим со всеми двумерными фигурами размером 32 в 0-м измерении, а также Shape(UNKNOWN_SIZE, UNKNOWN_SIZE) и Shape.unknown() . Он несовместим, например, с Shape(32) , Shape(32, UNKNOWN_SIZE, 1) или Shape(64, UNKNOWN_SIZE) .
  • Shape(32, 784) совместим сам с собой, а также Shape(32, UNKNOWN_SIZE) , Shape(UNKNOWN_SIZE, 784) , Shape(UNKNOWN_SIZE, UNKNOWN_SIZE) и Shape.unknown() . Он несовместим, например, с Shape(32, 1, 784) или Shape(UNKNOWN_SIZE) .

Отношение совместимости рефлексивно и симметрично, но не транзитивно. Например, Shape(32, 784) совместим с Shape.unknown() , а Shape.unknown() совместим с Shape(4, 4) , но Shape(32, 784) не совместим с Shape(4, 4) .

Совместимость — это не то же самое, что вещание. Совместимые фигуры должны иметь одинаковое количество размеров, и для каждой пары размеров один размер должен равняться другим размерам или хотя бы один из размеров в паре должен быть UNKNOWN_SIZE.

Трансляция допускает использование разных размеров, но парные измерения должны быть либо равны, либо одно измерение должно быть равно 1. Если одна фигура имеет меньшие размеры, чем другая, меньшая фигура «растягивается» до размеров 1.

Параметры
форма Другая форма
Возврат
  • true, если две формы совместимы.

общедоступное логическое значение isMatrix ()

Возвращает, является ли эта форма формой матрицы.

общедоступное логическое значение isScalar ()

Возвращает, представляет ли эта форма скаляр.

общедоступное логическое значение isUnknown ()

Возвращает, неизвестно ли количество измерений этой фигуры.

публичное логическое значение isVector ()

Возвращает, является ли эта форма формой вектора.

public int numDimensions ()

Возвращает количество измерений этой фигуры. -1, если неизвестно, 0 для скаляра, 1 для вектора, 2 для матрицы и т. д.

общедоступная статическая форма ( длинная... размерностьразмеры)

Создайте форму, представляющую скалярное или N-мерное значение.

Создает Shape, представляющий скалярное или N-мерное значение (N не менее 1), с указанным размером для каждого измерения. -1 указывает, что размер соответствующего измерения неизвестен. Если размеры не указаны, создается форма, представляющая скаляр. Например:

// A 2-element vector.
 Shape vector = Shape.of(2);

 // A 2x3 matrix.
 Shape matrix = Shape.of(2, 3);

 // A matrix with 4 columns but an unknown number of rows.
 // This is typically used to indicate the shape of tensors that represent
 // a variable-sized batch of values. The Shape below might represent a
 // variable-sized batch of 4-element vectors.
 Shape batch = Shape.of(-1, 4);

 // A scalar. For readability, you should prefer calling Shape.scalar()
 Shape scalar = Shape.of()
 

Параметры
РазмерРазмеры количество элементов в каждом измерении этой фигуры, если таковые имеются, или UNKNOWN_SIZE если неизвестно.
Возврат
  • новая форма

public Shape prepend ( Формировать другое)

Возвращает новую фигуру с добавленными к ней размерами другой фигуры. И для этой фигуры, и для другой формы isUnknown() должен возвращать false. Например Shape.of(3,4).prepend(Shape.of(1,2)) => Shape.of(1,2,3,4)

Параметры
другой другая форма, не должна быть null , не должна быть неизвестной
Возврат
  • Новая фигура, состоящая из размеров данной фигуры, за которыми следуют размеры этой фигуры, никогда не равна нулю.

публичное добавление формы (длинное первое измерение)

Возвращает новую фигуру с добавленным новым первым измерением. Чтобы этот вызов завершился успешно, isUnknown() должно иметь значение false .

Параметры
первое измерение размер для добавления в начало
Возврат
  • сначала создается новая фигура с заданным размером, а затем размеры этой фигуры, никогда не нулевые

общедоступный статический скаляр формы ()

Создает форму, представляющую скалярное значение.

Возврат
  • Форма без размеров, для которой isScalar() имеет значение true, а не null.

общедоступный длинный размер (int i)

Размер измерения с данным индексом.

Если isUnknown() имеет значение true или размер измерения с данным индексом имеет неизвестный размер, возвращается UNKNOWN_SIZE .

Параметры
я индекс измерения, для которого нужно получить размер. Если эта форма имеет известное количество измерений, она должна быть < numDimensions() . Индекс может быть отрицательным, и в этом случае позиция отсчитывается от конца фигуры. Например: size(-1) возвращает размер последнего измерения, size(-2) — размер предпоследнего измерения и т. д.
Возврат
  • Размер измерения с данным индексом, если он известен, иначе UNKNOWN_SIZE .

публичный длинный размер ()

Возвращает общее количество элементов, которые будет иметь тензор с этой формой.

Если isUnknown() имеет значение true или hasUnknownDimension() имеет значение true, возвращается UNKNOWN_SIZE .

Возврат
  • Общее количество элементов, которые имел бы тензор этой формы, если бы его можно было вычислить, иначе UNKNOWN_SIZE .

публичная форма SubShape (int Begin, Int End)

Возвращает размерную фигуру end - begin с размерами, соответствующими этой фигуре от begin до end .

Параметры
начинать С чего начать подформу.
конец Где закончить подформу, эксклюзивно.
Возврат
  • подформа, ограниченная началом и концом.

общественный хвост формы ()

Возвращает новую фигуру с удаленным первым измерением этой фигуры.

общедоступный вариант формы (int n)

Возвращает n-мерную фигуру с размерами, соответствующими первым n измерениям этой фигуры.

Параметры
н количество ведущих измерений, которое нужно получить, должно быть <= чем numDimensions()
Возврат
  • n-мерная форма, первые n измерений которой соответствуют первым n измерениям этой фигуры

общедоступная форма takeLast (int n)

Возвращает n-мерную фигуру, размеры которой соответствуют последним n измерениям этой фигуры.

Параметры
н количество получаемых конечных измерений должно быть <= чем numDimensions()
Возврат
  • n-мерная фигура с размерами, соответствующими последним n измерениям этой фигуры, никогда не равна нулю

публичная строка toString ()

Краткое описание формы, предназначенной для отладки.

общедоступная статическая форма неизвестна ()

Создает фигуру, представляющую неизвестное количество измерений.

Возврат
  • Форма, для которой isUnknown() имеет значение true, а не null.