Функция torch.tensor_split в PyTorch
Справочное руководство PyTorch torch
torch.tensor_splitЭто функция в PyTorch, используемая для разделения тензоров по индексу или количеству сегментов.
Определение функции
torch.tensor_split(input, indices_or_sections, dim=0)
Пример использования
Пример
import torch
x = torch.arange(12)
print("Исходный тензор:")
print(x)
# Разделение по индексу
result = torch.tensor_split(x, [2, 5, 8])
print("Разделение по индексам [2, 5, 8]:")
for i, t in enumerate(result):
print(f" Блок {i}: {t}")
# Разделение по количеству сегментов (равномерно на 3 части)
y = torch.arange(9)
result = torch.tensor_split(y, 3)
print("nСреднее разделение на 3 части:")
for i, t in enumerate(result):
print(f" Блок {i}: {t}")
# Разделить 2D-тензор по столбцам
z = torch.arange(12).reshape(3, 4)
print("n2D тензор:")
print(z)
result = torch.tensor_split(z, 2, dim=1)
print("Разделить на 2 части по столбцу:")
for i, t in enumerate(result):
print(f" Блок {i}:n{t}")
x = torch.arange(12)
print("Исходный тензор:")
print(x)
# Разделение по индексу
result = torch.tensor_split(x, [2, 5, 8])
print("Разделение по индексам [2, 5, 8]:")
for i, t in enumerate(result):
print(f" Блок {i}: {t}")
# Разделение по количеству сегментов (равномерно на 3 части)
y = torch.arange(9)
result = torch.tensor_split(y, 3)
print("nСреднее разделение на 3 части:")
for i, t in enumerate(result):
print(f" Блок {i}: {t}")
# Разделить 2D-тензор по столбцам
z = torch.arange(12).reshape(3, 4)
print("n2D тензор:")
print(z)
result = torch.tensor_split(z, 2, dim=1)
print("Разделить на 2 части по столбцу:")
for i, t in enumerate(result):
print(f" Блок {i}:n{t}")
Результат вывода:
原始张量:
tensor([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
按索引 [2, 5, 8] 分割:
块 0: tensor([0, 1])
Chunk 1: tensor([2, 3, 4])
Chunk 2: tensor([5, 6, 7])
Chunk 3: tensor([ 8, 9, 10, 11])
平均分为 3 份:
块 0: tensor([0, 1, 2])
Chunk 1: tensor([3, 4, 5])
Chunk 2: tensor([6, 7, 8])
二维张量:
tensor([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
按列分为 2 份:
块 0:
tensor([[0, 1],
[4, 5],
[8, 9]])
Chunk 1:
tensor([[ 2, 3],
[ 6, 7],
[10, 11]])
Другие расширения