PyTorch torch.searchsorted 関数


Pytorch torch 参考手册Pytorch torch リファレンスマニュアル

torch.searchsortedは、PyTorch においてソート済みテンソル内で要素が挿入されるべき位置を検索するための関数です。返される値は、要素が挿入されるべきインデックス位置です。

関数定義

torch.searchsorted(sorted_sequence, values, side='left', out_int32=False, right=False)

パラメータの説明:

  • sorted_sequenceソート済みの1次元または多次元テンソル
  • values検索する値
  • side'left' または 'right'。左と右のどちらの挿入位置を返すかを決定します。
  • out_int32int32 型を返すかどうか
  • right非推奨です。side を使用してください。

使用例

例

import torch

# ソート済みシーケンスを作成
sorted_seq = torch.tensor([1, 3, 5, 7, 9])

# 値の位置を検索
values = torch.tensor([3, 6, 8])
y = torch.searchsorted(sorted_seq, values)
print(y)

出力結果は次のとおりです:

tensor([1, 3, 3])
</p>
<div class="example">
<h2 class="example">实例</h2>
<div class="example_code">
<span style="color: Green;font-weight:bold;">import</span> torch<br />
<br />
<span style="color: #a50"># 创建已排序的序列</span><br />
sorted_seq <span style="color: Gray;">=</span> torch.<span style="color: #05a;">tensor</span><span style="color: Olive;">&#40;</span><span style="color: Olive;">&#91;</span><span style="color: Maroon;">1</span><span style="color: Gray;">,</span> <span style="color: Maroon;">3</span><span style="color: Gray;">,</span> <span style="color: Maroon;">5</span><span style="color: Gray;">,</span> <span style="color: Maroon;">7</span><span style="color: Gray;">,</span> <span style="color: Maroon;">9</span><span style="color: Olive;">&#93;</span><span style="color: Olive;">&#41;</span><br />
<br />
<span style="color: #a50"># 使用 side='right' 搜索</span><br />
values <span style="color: Gray;">=</span> torch.<span style="color: #05a;">tensor</span><span style="color: Olive;">&#40;</span><span style="color: Olive;">&#91;</span><span style="color: Maroon;">3</span><span style="color: Gray;">,</span> <span style="color: Maroon;">6</span><span style="color: Gray;">,</span> <span style="color: Maroon;">8</span><span style="color: Olive;">&#93;</span><span style="color: Olive;">&#41;</span><br />
y <span style="color: Gray;">=</span> torch.<span style="color: #05a;">searchsorted</span><span style="color: Olive;">&#40;</span>sorted_seq<span style="color: Gray;">,</span> values<span style="color: Gray;">,</span> side<span style="color: Gray;">=</span><span style="color: #a11;">'right'</span><span style="color: Olive;">&#41;</span><br />
<span style="color: Green;font-weight:bold;">print</span><span style="color: Olive;">&#40;</span>y<span style="color: Olive;">&#41;</span><br />
</div>
</div>

<p>输出结果为:</p>
<pre>
tensor([2, 3, 4])

例

import torch

# 多次元配列に使用
sorted_seq = torch.tensor([[1, 3, 5], [2, 4, 6]])
values = torch.tensor([[1.5], [3.5]])
y = torch.searchsorted(sorted_seq, values)
print(y)

出力結果は次のとおりです:

tensor([[1],
        [1]])

Pytorch torch 参考手册Pytorch torch リファレンスマニュアル

その他の拡張