ホームページ バックエンド開発 Python チュートリアル ニューラル ネットワーク トレーニングに PyTorch を使用する方法

ニューラル ネットワーク トレーニングに PyTorch を使用する方法

Aug 02, 2023 pm 05:10 PM
ニューラルネットワーク 電車 pytorch

ニューラル ネットワーク トレーニングに PyTorch を使用する方法

はじめに:
PyTorch は、Python をベースにしたオープン ソースの機械学習フレームワークです。その柔軟性とシンプルさにより、多くの研究者やエンジニアが最初に選択します。この記事では、ニューラル ネットワーク トレーニングに PyTorch を使用する方法を紹介し、対応するコード例を示します。

1. PyTorch のインストール
開始する前に、まず PyTorch をインストールする必要があります。公式 Web サイト (https://pytorch.org/) で提供されるインストール ガイドを通じて、オペレーティング システムとインストールするハードウェアに適したバージョンを選択できます。インストールしたら、Python に PyTorch ライブラリをインポートし、コードの記述を開始できます。

2. ニューラル ネットワーク モデルを構築する
PyTorch を使用してニューラル ネットワークをトレーニングする前に、まず適切なモデルを構築する必要があります。 PyTorch には、torch.nn.Module というクラスが用意されており、これを継承して独自のニューラル ネットワーク モデルを定義できます。

以下は、PyTorch を使用して 2 つの完全に接続された層を含むニューラル ネットワーク モデルを構築する方法を示す簡単な例です:

import torch
import torch.nn as nn

class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(in_features=784, out_features=256)
        self.fc2 = nn.Linear(in_features=256, out_features=10)
    
    def forward(self, x):
        x = x.view(x.size(0), -1)
        x = self.fc1(x)
        x = torch.relu(x)
        x = self.fc2(x)
        return x

net = Net()
ログイン後にコピー

上記のコードでは、最初に名前を定義します。It is a Netクラスを継承し、torch.nn.Module クラスを継承します。 __init__ メソッドでは、完全に接続された 2 つの層 fc1fc2 を定義します。次に、forward メソッドを使用して、モデル内のデータの前方伝播のプロセスを定義します。最後に、Net のインスタンスを作成します。

3. 損失​​関数とオプティマイザーを定義する
トレーニングの前に、損失関数とオプティマイザーを定義する必要があります。 PyTorch には、特定の状況に応じて選択できる損失関数とオプティマイザーの豊富な選択肢が用意されています。

ここでは、クロスエントロピー損失関数と確率的勾配降下オプティマイザーを使用してトレーニング プロセスを定義する方法を示す例を示します。

loss_fn = nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(net.parameters(), lr=0.01)
ログイン後にコピー

上記のコードでは、クロスエントロピー損失関数を使用します。エントロピー損失関数と確率的勾配降下オプティマイザーは、それぞれ loss_fn 変数と optimizer 変数に割り当てられます。 net.parameters() は、ニューラル ネットワーク モデル内のすべての学習可能なパラメーターを最適化することを示し、lr パラメーターは学習率を示します。

4. データセットを準備する
ニューラル ネットワークをトレーニングする前に、トレーニング データ セットとテスト データ セットを準備する必要があります。 PyTorch は、データ セットのロードと前処理に役立つ実用的なツール クラスをいくつか提供します。

これは、MNIST 手書き数字データセットをロードして前処理する方法を示す例です:

import torchvision
import torchvision.transforms as transforms

transform = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.5,), (0.5,)),
])

train_set = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform)
train_loader = torch.utils.data.DataLoader(train_set, batch_size=32, shuffle=True)

test_set = torchvision.datasets.MNIST(root='./data', train=False, download=True, transform=transform)
test_loader = torch.utils.data.DataLoader(test_set, batch_size=32, shuffle=False)
ログイン後にコピー

上記のコードでは、最初に transform 変数を使用して、データを前処理します。次に、torchvision.datasets.MNIST クラスを使用して MNIST データセットをロードし、train=True および train=False パラメーター データを使用してトレーニング データセットとテストを指定しました。セット。最後に、torch.utils.data.DataLoader クラスを使用して、データセットを反復可能なデータ ローダーに変換します。

5. トレーニングの開始
データセットを準備したら、ニューラル ネットワークのトレーニングを開始できます。トレーニング ループでは、入力データをモデルに入力し、損失関数を計算し、更新された勾配を逆伝播し、モデルを最適化するという手順を順番に完了する必要があります。

これは、ニューラル ネットワーク トレーニングに PyTorch を使用する方法を示す例です:

for epoch in range(epochs):
    running_loss = 0.0
    for i, data in enumerate(train_loader):
        inputs, labels = data
        
        optimizer.zero_grad()
        
        outputs = net(inputs)
        loss = loss_fn(outputs, labels)
        
        loss.backward()
        optimizer.step()
        
        running_loss += loss.item()
        
        if (i+1) % 100 == 0:
            print('[%d, %5d] loss: %.3f' % (epoch+1, i+1, running_loss/100))
            running_loss = 0.0
ログイン後にコピー

上記のコードでは、まず enumerate 関数を使用してトレーニング データの読み込みを繰り返します。プロセッサは、入力データとラベルを取得しました。次に、勾配をゼロにし、入力データをモデルに入力して、予測と損失関数を計算します。次に、backward メソッドを通じて勾配を計算し、step メソッドを通じてモデル パラメーターを更新します。最後に、損失を蓄積し、必要に応じて印刷します。

6. モデルをテストする
トレーニングが完了した後、モデルのパフォーマンスをテストする必要があります。テスト データ セットの精度を計算することで、モデルのパフォーマンスを評価できます。

これは、PyTorch を使用してモデルの精度をテストする方法を示す例です:

correct = 0
total = 0

with torch.no_grad():
    for data in test_loader:
        inputs, labels = data
        outputs = net(inputs)
        _, predicted = torch.max(outputs.data, 1)
        total += labels.size(0)
        correct += (predicted == labels).sum().item()

accuracy = 100 * correct / total
print('Accuracy: %.2f %%' % accuracy)
ログイン後にコピー

上記のコードでは、最初に 2 つの変数 correct と # を定義します。 ##total、正しく分類されたサンプルの数とサンプルの総数を計算するために使用されます。次に、torch.no_grad() コンテキスト マネージャーを使用して勾配計算をオフにし、メモリ消費を削減します。その後、予測結果を順次計算し、正しく分類されたサンプル数と総サンプル数を更新します。最後に、正確に分類されたサンプルの数とサンプルの総数に基づいて精度が計算され、印刷されます。

概要:

この記事の導入部を通じて、ニューラル ネットワーク トレーニングに PyTorch を使用する方法の基本的な手順を理解し、ニューラル ネットワーク モデルを構築し、損失関数とオプティマイザーを定義する方法を学びました。データセットを準備し、モデルのトレーニングとテストを開始します。この記事が、ニューラル ネットワークのトレーニングに PyTorch を使用する際の仕事や勉強に役立つことを願っています。

参考資料:

    PyTorch 公式 Web サイト: https://pytorch.org/
  1. PyTorch ドキュメント: https://pytorch.org/docs/stable /インデックス.html

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

オープンソース!ゾーイデプスを超えて! DepthFM: 高速かつ正確な単眼深度推定! オープンソース!ゾーイデプスを超えて! DepthFM: 高速かつ正確な単眼深度推定! Apr 03, 2024 pm 12:04 PM

0.この記事は何をするのですか?私たちは、多用途かつ高速な最先端の生成単眼深度推定モデルである DepthFM を提案します。従来の深度推定タスクに加えて、DepthFM は深度修復などの下流タスクでも最先端の機能を実証します。 DepthFM は効率的で、いくつかの推論ステップ内で深度マップを合成できます。この作品について一緒に読みましょう〜 1. 論文情報タイトル: DepthFM: FastMonocularDepthEstimationwithFlowMatching 著者: MingGui、JohannesS.Fischer、UlrichPrestel、PingchuanMa、Dmytr

PyCharm と PyTorch の完璧な組み合わせ: 詳細なインストールと構成手順 PyCharm と PyTorch の完璧な組み合わせ: 詳細なインストールと構成手順 Feb 21, 2024 pm 12:00 PM

PyCharm は強力な統合開発環境 (IDE) であり、PyTorch はディープ ラーニングの分野で人気のあるオープン ソース フレームワークです。機械学習とディープラーニングの分野では、開発に PyCharm と PyTorch を使用すると、開発効率とコード品質が大幅に向上します。この記事では、PyCharm に PyTorch をインストールして構成する方法を詳しく紹介し、読者がこれら 2 つの強力な機能をより効果的に活用できるように、具体的なコード例を添付します。ステップ 1: PyCharm と Python をインストールする

YOLOは不滅です! YOLOv9 がリリースされました: パフォーマンスとスピード SOTA~ YOLOは不滅です! YOLOv9 がリリースされました: パフォーマンスとスピード SOTA~ Feb 26, 2024 am 11:31 AM

現在の深層学習手法は、モデルの予測結果が実際の状況に最も近くなるように、最適な目的関数を設計することに重点を置いています。同時に、予測に十分な情報を取得するには、適切なアーキテクチャを設計する必要があります。既存の方法は、入力データがレイヤーごとの特徴抽出と空間変換を受けると、大量の情報が失われるという事実を無視しています。この記事では、ディープネットワークを介してデータを送信する際の重要な問題、つまり情報のボトルネックと可逆機能について詳しく説明します。これに基づいて、深層ネットワークが複数の目的を達成するために必要なさまざまな変化に対処するために、プログラマブル勾配情報 (PGI) の概念が提案されています。 PGI は、目的関数を計算するためのターゲット タスクに完全な入力情報を提供することで、ネットワークの重みを更新するための信頼できる勾配情報を取得できます。さらに、新しい軽量ネットワーク フレームワークが設計されています。

こんにちは、電気アトラスです!ボストン・ダイナミクスのロボットが復活、180度の奇妙な動きにマスク氏も恐怖 こんにちは、電気アトラスです!ボストン・ダイナミクスのロボットが復活、180度の奇妙な動きにマスク氏も恐怖 Apr 18, 2024 pm 07:58 PM

Boston Dynamics Atlas は正式に電動ロボットの時代に突入します!昨日、油圧式アトラスが歴史の舞台から「涙ながらに」撤退したばかりですが、今日、ボストン・ダイナミクスは電動式アトラスが稼働することを発表しました。ボストン・ダイナミクス社は商用人型ロボットの分野でテスラ社と競争する決意を持っているようだ。新しいビデオが公開されてから、わずか 10 時間ですでに 100 万人以上が視聴しました。古い人が去り、新しい役割が現れるのは歴史的な必然です。今年が人型ロボットの爆発的な年であることは間違いありません。ネットユーザーは「ロボットの進歩により、今年の開会式は人間のように見え、人間よりもはるかに自由度が高い。しかし、これは本当にホラー映画ではないのか?」とコメントした。ビデオの冒頭では、アトラスは仰向けに見えるように地面に静かに横たわっています。次に続くのは驚くべきことです

自然言語生成タスクと Pytorch コード実装における 5 つのサンプリング方法の紹介 自然言語生成タスクと Pytorch コード実装における 5 つのサンプリング方法の紹介 Feb 20, 2024 am 08:50 AM

自然言語生成タスクにおいて、サンプリング法は生成モデルからテキスト出力を取得する手法です。この記事では、5 つの一般的なメソッドについて説明し、PyTorch を使用してそれらを実装します。 1. 貪欲復号 貪欲復号では、生成モデルは入力シーケンスに基づいて出力シーケンスの単語を時間ごとに予測します。各タイム ステップで、モデルは各単語の条件付き確率分布を計算し、最も高い条件付き確率を持つ単語を現在のタイム ステップの出力として選択します。このワードは次のタイム ステップへの入力となり、指定された長さのシーケンスや特別な終了マーカーなど、何らかの終了条件が満たされるまで生成プロセスが続行されます。 GreedyDecoding の特徴は、毎回現在の条件付き確率が最良になることです。

PyTorch を使用した PyCharm のインストールに関するチュートリアル PyTorch を使用した PyCharm のインストールに関するチュートリアル Feb 24, 2024 am 10:09 AM

PyTorch は、強力な深層学習フレームワークとして、さまざまな機械学習プロジェクトで広く使用されています。強力な Python 統合開発環境として、PyCharm はディープ ラーニング タスクを実装するときに優れたサポートも提供します。この記事では、PyTorch を PyCharm にインストールする方法を詳しく紹介し、読者が深層学習タスクに PyTorch をすぐに使い始めるのに役立つ具体的なコード例を示します。ステップ 1: PyCharm をインストールする まず、PyCharm がインストールされていることを確認する必要があります。

Kuaishou バージョンの Sora「Ke Ling」がテスト用に公開されています。120 秒以上のビデオを生成し、物理学をより深く理解し、複雑な動きを正確にモデル化できます。 Kuaishou バージョンの Sora「Ke Ling」がテスト用に公開されています。120 秒以上のビデオを生成し、物理学をより深く理解し、複雑な動きを正確にモデル化できます。 Jun 11, 2024 am 09:51 AM

何?ズートピアは国産AIによって実現するのか?ビデオとともに公開されたのは、「Keling」と呼ばれる新しい大規模な国産ビデオ生成モデルです。 Sora も同様の技術的ルートを使用し、自社開発の技術革新を多数組み合わせて、大きく合理的な動きをするだけでなく、物理世界の特性をシミュレートし、強力な概念的結合能力と想像力を備えたビデオを制作します。データによると、Keling は、最大 1080p の解像度で 30fps で最大 2 分の超長時間ビデオの生成をサポートし、複数のアスペクト比をサポートします。もう 1 つの重要な点は、Keling は研究所が公開したデモやビデオ結果のデモンストレーションではなく、ショートビデオ分野のリーダーである Kuaishou が立ち上げた製品レベルのアプリケーションであるということです。さらに、主な焦点は実用的であり、白紙小切手を書かず、リリースされたらすぐにオンラインに移行することです。Ke Ling の大型モデルは Kuaiying でリリースされました。

超知性の生命力が覚醒する!しかし、自己更新 AI の登場により、母親はデータのボトルネックを心配する必要がなくなりました。 超知性の生命力が覚醒する!しかし、自己更新 AI の登場により、母親はデータのボトルネックを心配する必要がなくなりました。 Apr 29, 2024 pm 06:55 PM

世界は狂ったように大きなモデルを構築していますが、インターネット上のデータだけではまったく不十分です。このトレーニング モデルは「ハンガー ゲーム」のようであり、世界中の AI 研究者は、データを貪欲に食べる人たちにどのように餌を与えるかを心配しています。この問題は、マルチモーダル タスクで特に顕著です。何もできなかった当時、中国人民大学学部のスタートアップチームは、独自の新しいモデルを使用して、中国で初めて「モデル生成データフィード自体」を実現しました。さらに、これは理解側と生成側の 2 つの側面からのアプローチであり、両方の側で高品質のマルチモーダルな新しいデータを生成し、モデル自体にデータのフィードバックを提供できます。モデルとは何ですか? Awaker 1.0 は、中関村フォーラムに登場したばかりの大型マルチモーダル モデルです。チームは誰ですか?ソフォンエンジン。人民大学ヒルハウス人工知能大学院の博士課程学生、ガオ・イージャオ氏によって設立されました。

See all articles