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), удаляет и возвращает пару (ключ, значение) как кортеж из двух элементов; но генерирует исключение KeyError, если D пуст.
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(), делает: для k в E: D[k] = E[k] Если E присутствует и не имеет метода .keys(), делает: для (k, v) в E: D[k] = v В любом случае, этому следуют: для k, v в 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