tf.keras.distribution.LayoutMap
Объект, подобный словарю, который сопоставляет строки с экземплярами TensorLayout.
tf.keras.distribution.LayoutMap(
device_mesh=None
)
LayoutMap использует строку в качестве ключа, а TensorLayout — в качестве значения. Этот класс отличается по поведению от обычного словаря Python. При получении значения строковый ключ рассматривается как регулярное выражение. Подробнее см. в строке документации get.
Пример использования приведен ниже. Можно определить схему именования TensorLayout, а затем получить соответствующий экземпляр TensorLayout.
В обычном случае ключом для поиска, как правило, является variable.path — идентификатор переменной.
Для краткости при добавлении в качестве значения также можно использовать кортеж или список имен осей; они будут преобразованы в TensorLayout.
layout_map = LayoutMap(device_mesh=None)
layout_map['dense.*kernel'] = (None, 'model') # layout_2d
layout_map['dense.*bias'] = ('model',) # layout_1d
layout_map['conv2d.*kernel'] = TensorLayout((None, None, None, 'model'))
layout_map['conv2d.*bias'] = TensorLayout(('model',)) # layout_1d
layout_1 = layout_map['dense_1.kernel'] # layout_1 == layout_2d
layout_2 = layout_map['dense_1.bias'] # layout_2 == layout_1d
layout_3 = layout_map['dense_2.kernel'] # layout_3 == layout_2d
layout_4 = layout_map['dense_2.bias'] # layout_4 == layout_1d
layout_5 = layout_map['my_model/conv2d_123/kernel'] # layout_5 == layout_4d
layout_6 = layout_map['my_model/conv2d_123/bias'] # layout_6 == layout_1d
layout_7 = layout_map['my_model/conv3d_1/kernel'] # layout_7 == None
layout_8 = layout_map['my_model/conv3d_1/bias'] # layout_8 == None
| Аргументы | |
|---|---|
device_mesh | Необязательный объект DeviceMesh, который можно использовать для заполнения TensorLayout.device_mesh, если TensorLayout.device_mesh не задан. |
| Атрибуты | |
|---|---|
device_mesh | |
Методы
clear
clear()
D.clear() -> None. Удаляет все элементы из D.
get
get(
key, default=None
)
Получает соответствующий макет по строковому ключу.
Если точного совпадения нет, все существующие ключи карты макетов рассматриваются как регулярные выражения и повторно сопоставляются с входным ключом. Если для регулярного выражения найдено несколько совпадений, будет вызвано исключение ValueError. Возвращает None, если совпадений не найдено.
| Аргументы | |
|---|---|
key | Строковый ключ для поиска макета. |
| Возвращает | |
|---|---|
| Соответствующий запросу макет. |
items
items()
D.items() -> объект, подобный множеству, предоставляющий представление элементов D
keys
keys()
D.keys() -> объект, подобный множеству, предоставляющий представление ключей D
pop
pop(
key, default=__marker
)
D.pop(k[,d]) -> v, удаляет указанный ключ и возвращает соответствующее значение. Если ключ не найден, возвращается d, если оно задано; в противном случае вызывается KeyError.
popitem
popitem()
D.popitem() -> (k, v), удаляет и возвращает некоторую пару (ключ, значение) в виде 2-кортежа; если D пуст, вызывает KeyError.
setdefault
setdefault(
key, default=None
)
D.setdefault(k[,d]) -> D.get(k,d), также устанавливает D[k]=d, если k отсутствует в D
update
update(
other, /, **kwds
)
D.update([E, ]**F) -> None. Обновляет D данными из отображения/итерируемого объекта E и F. Если E задан и имеет метод .keys(), выполняется: for k in E: D[k] = E[k] Если E задан, но не имеет метода .keys(), выполняется: for (k, v) in E: D[k] = v В обоих случаях затем выполняется: for k, v in F.items(): D[k] = v
values
values()
D.values() -> объект, предоставляющий представление значений D
__contains__
__contains__(
key
)
__eq__
__eq__(
other
)
Возвращает self==value.
__getitem__
__getitem__(
key
)
Получает соответствующий макет по строковому ключу.
Если точного совпадения нет, все существующие ключи карты макетов рассматриваются как регулярные выражения и повторно сопоставляются с входным ключом. Если для регулярного выражения найдено несколько совпадений, будет вызвано исключение ValueError. Возвращает None, если совпадений не найдено.
| Аргументы | |
|---|---|
key | Строковый ключ для поиска макета. |
| Возвращает | |
|---|---|
| Соответствующий запросу макет. |
__iter__
__iter__()
__len__
__len__()
© 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/api_docs/python/tf/keras/distribution/LayoutMap