PyTorchでテンソル(Tensor)の値にアクセスして変更する方法
PyTorchでは、インデックス指定とスライシングを使ってテンソルの値にアクセスします。インデックス指定はテンソル内の単一の要素にアクセスする場合に使用し、スライシングは連続した複数の要素にまとめてアクセスする場合に使用します。
テンソルの値を変更するには、代入演算子(=)を使用します。代入演算子で新しい値を割り当てると、元のテンソルが新しい値で上書きされます。
手順
必要なライブラリをインポートします。ここでは torch を使用します。
PyTorch のテンソルを定義します。
インデックス指定で特定位置の単一要素にアクセスするか、スライシングで連続した複数要素にアクセスします。
代入演算子を使って、アクセスした値を新しい値に変更します。
最後にテンソルを出力し、新しい値に正しく変更されたかを確認します。
例1:インデックス指定で単一要素にアクセス・変更する
# PyTorchでテンソルの値にアクセスして変更するPythonプログラム
# ライブラリをインポート
import torch
# PyTorchテンソルを定義
a = torch.Tensor([[3, 5],[1, 2],[5, 7]])
print("a:\n",a)
# インデックス指定で [1,0](2行目・1列目)の値にアクセス
b = a[1,0]
print("a[1,0]:\n", b)
# もうひとつのインデックス指定の方法
c = a[1][0]
print("a[1][0]:\n",c)
# 値「1」を「9」に変更する
# 代入演算子を使って新しい値を設定
a[1,0] = 9
print("a[1,0]の値を変更後のテンソル 'a':")
print("a:\n",a)出力
a:
tensor([[3., 5.],
[1., 2.],
[5., 7.]])
a[1,0]:
tensor(1.)
a[1][0]:
tensor(1.)
a[1,0]の値を変更後のテンソル 'a':
a:
tensor([[3., 5.],
[9., 2.],
[5., 7.]])この例では、a[1,0] と a[1][0] の2通りの記法で同じ要素(2行目・1列目の値)にアクセスできることを確認できます。また、a[1,0] = 9 という代入により、元のテンソルの該当箇所が 1 → 9 に直接書き換えられています。
例2:スライシングで複数要素にアクセス・変更する
# PyTorchでテンソルの値にアクセスして変更するPythonプログラム
# 必要なライブラリをインポート
import torch
# PyTorchテンソルを定義
a = torch.Tensor([[3, 5],[1, 2],[5, 7]])
print("a:\n", a)
# スライシングで2行目のすべての値にアクセス
b = a[1]
print("a[1]:\n", a[1])
# 1行目と2行目のすべての値にアクセス
b = a[0:2]
print("a[0:2]:\n" , a[0:2])
# 2列目のすべての値にアクセス
c = a[:,1]
print("a[:,1]:\n", a[:,1])
# 最初の2行のうち2列目の値にアクセス
print("a[0:2, 1]:\n", a[0:2, 1])
# 代入演算子を使って新しい値に変更
# 2行目の値を変更
a[1] = torch.Tensor([9, 9])
print("a[1]を変更後:\n", a)
# 最初の2行のうち2列目の値を変更
a[0:2, 1] = torch.Tensor([4, 4])
print("a[0:2, 1]を変更後:\n", a)出力
a:
tensor([[3., 5.],
[1., 2.],
[5., 7.]])
a[1]:
tensor([1., 2.])
a[0:2]:
tensor([[3., 5.],
[1., 2.]])
a[:,1]:
tensor([5., 2., 7.])
a[0:2, 1]:
tensor([5., 2.])
a[1]を変更後:
tensor([[3., 5.],
[9., 9.],
[5., 7.]])
a[0:2, 1]を変更後:
tensor([[3., 4.],
[9., 4.],
[5., 7.]])このように、スライシングを組み合わせることで、特定の行・列だけを抜き出したり、部分的な範囲にまとめて新しい値を代入したりできます。テンソルはミュータブル(変更可能)なオブジェクトなので、ビューとして取得した範囲に対する代入は元のテンソルにも反映される点に注意してください。
-
ダークウェブへのアクセスと閲覧方法を完全解説|初心者向け安全ガイド
本記事では、ダークウェブ(dark web)へアクセスして閲覧する方法を詳しく解説します。一般のインターネットユーザーの目に触れないWebの世界は、実は非常に広大です。これらのページの多くはChromeやFirefoxなどの通常のブラウザからはアクセスできず、ハイパーリンクでつながることもありません。通常のブラウザでダークウェブのリンクを開いても、真っ白な画面が表示されるだけでしょう。ダークウェブの中には、サイバーセキュリティや暗号資産(仮想通貨)、匿名サーバーに関する専門的なコンテンツのほか、ISPや政府によってアクセスを制限されている正当なサイトなどが存在します。また、匿名でのメール送信、
-
Macで絵文字キーボードを開いて使う方法|ショートカット・文字パレット完全解説
絵文字ひとつで気持ちが伝わることがあります。メッセージに添えるだけでも、絵文字だけで気持ちを伝える場合でも、自分の感情を正確に表現できるのが絵文字の魅力です。言葉が出てこないとき、絵文字に頼るのも一つの手。そのためには、Macの絵文字キーボードの使い方を知っておくと便利です。残念ながら、Macで絵文字を探すのはiPhoneやiPadほど簡単ではありません。Macでは少し違った操作が必要になります。そこで本記事では、Macの絵文字キーボードへのアクセス方法をわかりやすく解説します。絵文字の歴史デジタルの世界では、絵文字はすでに誰もが使う共通言語の一部となっています。SNSなどさまざまなプラットフ