「*」演算子はPyTorchにおけるテンソルの大きさの前に何をしますか?

YOLOv4:

私は今PyTorchにニューラルネットワークを構築する勉強します。ここからカットコードです.pyファイル:

x = torch.unsqueeze(torch.linspace(-1, 1, 1000), dim=1)
y = x.pow(2) + 0.1*torch.normal(torch.zeros(*x.size()))

私はかなりの有用性についてcomfusedています*前に、オペレータx.size()私はそれを削除して、としたものと同じ証明された散布図、プロットしてみました*削除されていません。

私はまたの公式ドキュメントを確認sizeしてhttps://pytorch.org/docs/stable/tensors.htmlが、私はそれを把握することができませんでした。

ドキュメントのtorch.sizeアイテムの画像

あなたは私を助けている場合、私はそれを非常に感謝します。

Crystin:

*ここでの結果に違いはありませんという理由はあるtorch.zeroの両方を除き、可変数の引数およびリストやタプルのようなコレクションに述べたように、ここで自体は無用である*それは意味するものではありません。

以来、その後、torch.Size()クラスはPythonのタプルのサブクラスで、一つは*を使って解凍することができます。x.size()返されtorch.Size()たオブジェクトを)

アップラップするので、x.size()あなたを与えるだろう(1000, 1)し、*x.size() 引数にあなたを与えるだろう1000, 1との両方が受け入れられていますtorch.zeros()

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=408850&siteId=1