PyTorch を学ぶには?簡単すぎる

PyTorch を学ぶには?簡単すぎる

多くの友人から、PyTorch の学習方法を尋ねられました。長期間の練習を経て、初心者が知っておく必要のある概念や使用法は実際にはそれほど多くないことがわかりました。以下にまとめた簡潔なガイドを見てみましょう。

テンソルの構築

PyTorch のテンソルは、NumPy の ndarray に似た多次元配列ですが、GPU 上で実行できます。

 import torch # Create a 2x3 tensor tensor = torch.tensor([[1, 2, 3], [4, 5, 6]]) print(tensor)

動的計算グラフ

PyTorch は、操作の実行時にオンザフライで構築される動的計算グラフを使用します。これにより、実行時にグラフを変更する柔軟性が得られます。

 # Define two tensors a = torch.tensor([2.], requires_grad=True) b = torch.tensor([3.], requires_grad=True) # Compute result c = a * b c.backward() # Gradients print(a.grad) # Gradient wrt a

GPUアクセラレーション

PyTorch を使用すると、CPU と GPU を簡単に切り替えることができます。 .to(device) を使用します:

 device = "cuda" if torch.cuda.is_available() else "cpu" tensor = tensor.to(device)

Autograd: 自動微分化

PyTorch の autograd は、テンソルのすべての演算に対して自動微分を提供します。 requires_grad=True を設定すると、計算を追跡できます。

 x = torch.tensor([2.], requires_grad=True) y = x**2 y.backward() print(x.grad) # Gradient of y wrt x

モジュラーニューラルネットワーク

PyTorch は、ニューラル ネットワーク アーキテクチャを定義し、サブクラス化によってカスタム レイヤーを作成するための nn.Module クラスを提供します。

 import torch.nn as nn class SimpleNN(nn.Module): def __init__(self): super().__init__() self.fc = nn.Linear(1, 1) def forward(self, x): return self.fc(x)

定義済みのレイヤーと損失関数

PyTorch は、nn モジュールでさまざまな定義済みレイヤー、損失関数、最適化アルゴリズムを提供します。

 loss_fn = nn.CrossEntropyLoss() optimizer = torch.optim.Adam(model.parameters(), lr=0.001)

データセットとデータローダー

効率的なデータ処理とバッチ処理を実現するために、PyTorch は Dataset クラスと DataLoader クラスを提供します。

 from torch.utils.data import Dataset, DataLoader class CustomDataset(Dataset): # ... (methods to define) data_loader = DataLoader(dataset, batch_size=32, shuffle=True)

モデルのトレーニング(ループ)

通常、PyTorch のトレーニングは、順方向伝播、損失計算、逆方向パス、パラメータ更新というパターンに従います。

 for epoch in range(epochs): for data, target in data_loader: optimizer.zero_grad() output = model(data) loss = loss_fn(output, target) loss.backward() optimizer.step()

モデルのシリアル化

torch.save() と torch.load() を使用してモデルを保存および読み込みます。

 # Save torch.save(model.state_dict(), 'model_weights.pth') # Load model.load_state_dict(torch.load('model_weights.pth'))

ジット

PyTorch はデフォルトで Eager モードで実行されますが、モデルの Just-In-Time (JIT) コンパイルも提供します。

 scripted_model = torch.jit.script(model) scripted_model.save("model_jit.pt")

<<: 

>>:  中国科学院による1万語の説明:最先端の画像拡散モデルのレビュー

ブログ    

推薦する

Python は AI のために生まれたわけではありません。Golang は今後 10 年間の人工知能を支配することになるでしょうか?

ここ数年、Python は人工知能とデータサイエンスの分野で最も人気のあるプログラミング言語になりま...

アルゴリズムから離れた「ジレンマ」に直面し、専門家はシナリオベースの洗練されたガバナンスの実行を提案している。

アルゴリズムは人間の行動に基づいて「ロックイン効果」を生み出します。この法律では、ユーザーにパーソナ...

携帯電話の AI 技術を使って撮影した写真は、本当に一眼レフカメラで撮影した写真に匹敵するのでしょうか?

最新世代のスマートフォンに搭載されつつある 3D センサーは、機械学習によって解き放たれた写真撮影技...

見逃せないビッグデータと人工知能分野の役立つウェブサイトトップ10

AIやビッグデータなどの技術の急速な発展に伴い、関連する知識も普及してきました。数多くのウェブサイ...

...

クロスモーダルトランスフォーマー: 高速かつ堅牢な 3D オブジェクト検出に向けて

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

自然言語処理(NLP)はソーシャルエンジニアリング攻撃の解決に役立ちます

新しいツールは、件名や URL に基づいてソーシャル エンジニアリング攻撃を検出するのではなく、テキ...

...

人工知能時代のITサービスを変える8つのテクノロジー

サービスは人間が行う仕事だということを否定する人はいないでしょう。しかし、テクノロジーはサービスを強...

ビッグデータ採用、アルゴリズムによって選ばれた

[[76655]]大学に通ったことのない26歳のジェド・ドミンゲスさんは、ギルデッドのアルゴリズムに...

バックドアの王: 暗号化アルゴリズムにおける数学的バックドアについて語る

政府や諜報機関は、データや通信の暗号化保護を制御または回避しようとしており、暗号化アルゴリズムにバッ...

人工知能がブルーカラーの仕事に取って代わると、どのような影響があるでしょうか?

AI と ML をより多くのタスクに統合すると、短期的には多くのメリットが得られますが、長期的には...

AI が生活に統合されると、能力が高ければ高いほど、管理が難しくなります。

2019 年、OpenAI は、特定の「安全制約」に準拠した AI モデルを開発するためのツール ...

顔認証決済の登場:「決済戦争」の次なる激戦点となるか?

[[280749]]最近、支払いをするために携帯電話を取り出すと、「顔支払い」を選択すると割引があ...

...