ビッグデータダイジェスト制作 編纂者:洪英飛、寧静 PyTorch は、ディープラーニング フレームワーク ライブラリの 1 つです。これは Facebook のオープンソース ディープラーニング プラットフォームであり、研究プロトタイプから本番環境への展開までシームレスに移行できます。 この記事の目的は、PyTorch の基礎を紹介し、初心者が 4 分以内に Python PyTorch の予備コードを書けるようにすることです。 以下に示すすべての関数については、中国語のドキュメントで特定のパラメータと実装の詳細を確認できます。PyTorch の中国語ドキュメントへのリンクは次のとおりです。 https://pytorch-cn.readthedocs.io/zh/latest/package_references/torch/ コーディング前の準備 コンピュータに Python パッケージをインストールし、numpy などの科学計算パッケージをインポートする必要があります。最も重要なのは、PyTorch をインポートすることを忘れないでください。次の実行結果はすべて、jupyter ノートブックで取得されたものです。興味のある読者は、jupyter ノートブックに付属している Anaconda を自分でダウンロードできます。 (注: Anaconda は、複数のバージョンの Python の仮想コンパイル環境をサポートしています。Jupyter ノートブックは、コードをセルに分割する Web ベースのコンパイル インターフェイスです。実行結果をリアルタイムで確認できるため、非常に便利です!) ソフトウェアの設定とインストールに関するチュートリアルはインターネット上にたくさんあるので、ここでは詳しく説明しません。書籍から得られる知識は常に浅いものであり、本当に理解するには実践する必要があります。さっそく Pytorch の世界に飛び込んでコーディングを始めましょう! テンソル テンソル型は、ニューラル ネットワーク フレームワークの重要な基本データ型です。これは、単一のデータ型の要素を含む多次元行列として簡単に理解できます。テンソルは演算を通じて接続され、計算グラフを形成します。 次のコード例では、2*3 の 2 次元テンソル x を作成し、データ型を浮動小数点 (Float) として指定します。
操作結果: PyTorch には、テンソルに対する数学演算が多数含まれています。それ以外にも、Tensor やその他の任意のデータ型の効率的なシリアル化などの便利なユーティリティが多数提供されます。 以下は Tensor の加算/減算の例です。torch.ones(*sizes, out=None) → Tensor は、変数パラメータ sizes によって定義された形状を持つ、すべて 1 のテンソルを返します。この例では、変数 x に、対応する位置に値 1 を持つ 2 つの 2*3 テンソルが追加されます。これは、x + 2 の各次元の値に相当します。コードと実行結果は次のとおりです。
操作結果: 同様に、PyTorch は減算演算もサポートしています。次の例は、上記の実行結果に基づいて、各次元から 2 を減算して x を元の値に戻すことを示しています。
操作結果: その他の PyTorch 操作については、上記の中国語のリンクを参照してください。 PyTorch と NumPy ユーザーは PyTorch と NumPy を簡単に相互に変換できます。 以下は、np.matrix を PyTorch に変換し、次元を 1 列に変更する簡単な例です。
操作結果: ここで、@ はテンソル乗算のオーバーロード演算子です。x は [[1,2,3],[4,5,6]] の値を持つ 2*3 テンソルです。テンソルに変換された z と乗算されます。z のサイズは 3*2 で、結果は 2*2 テンソルになります。 (行列の乗算と同様に、演算結果が分からない読者は行列の乗算演算を見てください) さらに、PyTorch はテンソル構造の再構築もサポートしています。以下は、テンソル x を 1*6 の 1 次元テンソルに再構築する例です。これは、numpy の reshape 関数に似ています。
操作結果: PyTorch から NumPy への変換を概説した GitHub リポジトリは、次のリンクから入手できます。 pytorch の最新バージョンをダウンロード CPUとGPU PyTorch では、変数が torch.cuda.device コンテキスト マネージャーを使用してデバイスを動的に変更できるようになります。サンプルコードは次のとおりです。
操作結果: PyTorch 変数 変数は Tensor を包む薄いレイヤーに過ぎず、Tensor によって定義されたほぼすべての API をサポートし、自動的にコンパイルされたパッケージの一部として巧妙に定義されます。任意のスカラー値関数の自動微分を実装するクラスと関数を提供します。 以下は、PyTorch 変数の使用例です。v1 と v2 を乗算した結果が v3 に割り当てられます。パラメータ requires_grad の属性は、デフォルトでは False です。ノード requires_grad が True に設定されている場合、それに依存するすべてのノードの requires_grad は True になり、主に勾配計算に使用されます。
操作結果:
操作結果: バックプロパゲーション バックプロパゲーション アルゴリズムは、入力の重みとバイアスに対する損失の勾配を計算して重みを更新し、最終的に次の最適化反復で損失を減らすために使用されます。PyTorch は、変数がバックプロパゲーションを実行するための後方メソッドを階層的に定義する点で非常にスマートです。 以下は、差を計算するための例として sin(x) をとった簡単なバックプロパゲーション計算方法です。
操作結果: PyTorch での変数と勾配の計算については、次の記事を参照してください。 https://zhuanlan.zhihu.com/p/29904755 SLR: 単純線形回帰 基礎がわかったので、PyTorch を使用して単純な機械学習の問題、つまり単純な線形回帰を解決し始めることができます。これを 4 つの簡単な手順で実行します。 最初のステップ: ステップ 1 では、y = wx + b という式で生成された人工データセットを作成し、ランダム エラーを挿入します。次の例を参照してください。
ステップ2: ステップ 2 では、入力データに対して線形変換を実行するために、forward 関数と torch.nn.Linear を使用するコンストラクターを備えた単純なクラス LinearRegressionModel を定義します。
torch.nn.線形参照ウェブサイト: pytorch.org/docs/stable/_modules/torch/nn/modules/linear.html を参照してください。 ステップ3: 次のステップ: コスト関数として MSELoss を使用し、オプティマイザーとして SGD を使用してモデルをトレーニングします。
操作結果:
ステップ4: トレーニングが完了したら、モデルを視覚的に検査してみましょう。
操作結果: これで、PyTorch での最初の線形回帰の例のプログラミングが完了しました。さらに学習したい読者は、PyTorch の公式ドキュメント リンクを参照して、ほとんどのコーディング アプリケーションを完了できます。 関連リンク: https://medium.com/towards-artificial-intelligence/pytorch-in-2-minutes-9e18875990fd [この記事は51CTOコラムBig Data Digest、WeChatパブリックアカウント「Big Data Digest(id: BigDataDigest)」のオリジナル翻訳です] この著者の他の記事を読むにはここをクリックしてください |
<<: 人工知能のサイバーセキュリティにおける7つの落とし穴
>>: 彼は17歳でiOSの脱獄の父となり、25歳で自動運転車を開発した。
2020年はニュース速報に事欠かなかったが、人工知能は依然として包囲網を突破し、主流の視野に入り込...
不動産会社のデジタル変革は差し迫っています。試してみるべき革新的な方法をいくつかご紹介します。今日の...
1. 運用最適化とは何ですか?オペレーションズ・リサーチは、数学、コンピューターサイエンス、経営学の...
[[402797]]この記事はWeChatのパブリックアカウント「Big Data DT」から転載し...
この記事では、さまざまな活性化関数を紹介し、活性化関数の長所と短所を比較します。この記事は、人工ニュ...
「人工知能+スマート教育」が人気を集めています。しかし、生徒の表情を捉える「スマートアイ」や「顔ス...
「トランスフォーマーの挑戦者」MambaがMacBookで実行できるようになりました!誰かが Git...
動画生成AIはここまで進化したのか? !写真をスワイプするだけで、選択したターゲットが動きます。明ら...
LLMの大幅な増加に加え、AI開発ツールも拡大しています。今年の AI 開発における 5 つの主要な...
[[339138]]新しい医療用人工知能システムは、医師と同じように患者を診察することができます。画...
人工知能は、人間の活動と市場投資の2つの主要分野である健康と言語に拡大しています。 「State o...
[[262791]]それを受け入れるかどうかは別として、突然の火災でノートルダム大聖堂は焼け落ちた...
クラウド コンピューティング サービス チームに機械学習機能を備えたシステムを提供することは間違いで...
コードに特化した Code Llama が登場したとき、誰もが、誰かがコードを定量化してスリム化し、...