PyTorch torch.bucketize 関数
torch.bucketizeは、PyTorch においてバケットソートのインデックスを求めるための関数です。入力値を境界配列に基づいて二分探索し、対応するバケットインデックスにマッピングします。連続値を離散化またはビニング操作に使用されることがよくあります。
関数定義
torch.bucketize(input, boundaries, right=False, out_int32=False, **kwargs)
使用例
実例
import torch
# 基本的な使い方:バケットインデックス
boundaries = torch.tensor([0, 1, 2, 3, 4])
values = torch.tensor([0.5, 1.5, 2.5, 3.5, 0.2, 2.0])
result = torch.bucketize(values, boundaries)
print("境界:", boundaries)
print("値:", values)
print("バケットインデックス:", result)
# 出力: tensor([1, 2, 3, 4, 0, 2])
# right=True は境界が右閉区間であることを示す
result_right = torch.bucketize(values, boundaries, right=True)
print("right=True バケットインデックス:", result_right)
# 出力: tensor([0, 1, 2, 3, 0, 1])
# 多次元入力
values = torch.tensor([[0.5, 1.5], [2.5, 3.5]])
result = torch.bucketize(values, boundaries)
print("多次元入力の結果:", result)
# 基本的な使い方:バケットインデックス
boundaries = torch.tensor([0, 1, 2, 3, 4])
values = torch.tensor([0.5, 1.5, 2.5, 3.5, 0.2, 2.0])
result = torch.bucketize(values, boundaries)
print("境界:", boundaries)
print("値:", values)
print("バケットインデックス:", result)
# 出力: tensor([1, 2, 3, 4, 0, 2])
# right=True は境界が右閉区間であることを示す
result_right = torch.bucketize(values, boundaries, right=True)
print("right=True バケットインデックス:", result_right)
# 出力: tensor([0, 1, 2, 3, 0, 1])
# 多次元入力
values = torch.tensor([[0.5, 1.5], [2.5, 3.5]])
result = torch.bucketize(values, boundaries)
print("多次元入力の結果:", result)
その他の拡張
Pytorch torch リファレンスマニュアル