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 サイトの他の関連記事を参照してください。