ホームページ  >  記事  >  テクノロジー周辺機器  >  PyTorch を使用して簡単なニューラル ネットワークを作成する方法

PyTorch を使用して簡単なニューラル ネットワークを作成する方法

WBOY
WBOY転載
2024-01-25 09:27:06665ブラウズ

PyTorch を使用して簡単なニューラル ネットワークを作成する方法

PyTorch は、さまざまなニューラル ネットワークを構築するための Python ベースの深層学習フレームワークです。この記事では、PyTorch を使用して単純なニューラル ネットワークを構築する方法を示し、コード例を示します。

まず、PyTorch をインストールする必要があります。次のコマンドを使用して、コマンド ラインからインストールできます:

pip install torch

次に、PyTorch を使用して、バイナリ分類タスク用の単純な完全接続ニューラル ネットワークを構築します。このニューラル ネットワークには、それぞれ 10 個のニューロンを持つ 2 つの隠れ層があります。シグモイド活性化関数とクロスエントロピー損失関数を使用します。

完全なコードは次のとおりです:

import torch
import torch.nn as nn
import torch.optim as optim

# 定义神经网络模型
class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(2, 10)  # 第一个隐藏层
        self.fc2 = nn.Linear(10, 10)  # 第二个隐藏层
        self.fc3 = nn.Linear(10, 1)  # 输出层

    def forward(self, x):
        x = torch.sigmoid(self.fc1(x))
        x = torch.sigmoid(self.fc2(x))
        x = torch.sigmoid(self.fc3(x))
        return x

# 创建数据集
X = torch.tensor([[0, 0], [0, 1], [1, 0], [1, 1]], dtype=torch.float32)
y = torch.tensor([[0], [1], [1], [0]], dtype=torch.float32)

# 创建神经网络实例
net = Net()

# 定义损失函数和优化器
criterion = nn.BCELoss()
optimizer = optim.SGD(net.parameters(), lr=0.1)

# 训练神经网络
for epoch in range(10000):
    optimizer.zero_grad()
    output = net(X)
    loss = criterion(output, y)
    loss.backward()
    optimizer.step()

    # 打印训练损失
    if epoch % 1000 == 0:
    print('Epoch {}: loss = {}'.format(epoch, loss.item()))

# 使用训练好的神经网络进行预测
with torch.no_grad():
    output = net(X)
    predicted = (output > 0.5).float()
    print('Predicted: {}\n'.format(predicted))

まず、nn.Module を継承する Net という名前のクラスを定義します。このクラスには、ニューラル ネットワークのすべての層が含まれています。この例では、3 つの完全に接続された層を定義します。最初の 2 つは隠れ層で、最後の 1 つは出力層です。

Net クラスでは、ニューラル ネットワークの順方向伝播プロセスを記述する forward メソッドの定義に加えて、シグモイド活性化関数を使用して各隠れ層の出力を渡します。次のレベルへ。

次に、それぞれ 2 つの特徴を持つ 4 つのサンプルを含むデータセットを作成しました。また、net という名前のニューラル ネットワーク インスタンスを定義し、損失関数として BCELoss を選択し、オプティマイザーとして SGD を選択しました。

次に、ニューラル ネットワークのトレーニングを開始します。各反復では、まずオプティマイザーの勾配をゼロにしてから、データセット X をニューラル ネットワークに渡して出力を取得します。損失を計算してバックプロパゲーションを実行し、最後にオプティマイザーを使用してネットワーク パラメーターを更新します。また、1000 回の反復ごとにトレーニング損失も出力しました。

トレーニングが完了したら、no_grad コンテキスト マネージャーを使用してデータセットの予測を行います。 4つの予測を出力して印刷します。

これは、PyTorch を使用して基本的なニューラル ネットワークを構築する方法を示す簡単な例です。 PyTorch は、ニューラル ネットワークをより簡単に構築およびトレーニングするのに役立つ多くのツールと機能を提供します。

以上がPyTorch を使用して簡単なニューラル ネットワークを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は163.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。