この記事はWeChatの公開アカウント「小明野菜市場」から転載したもので、著者は小明野菜市場です。記事を転載する場合は小明野菜市場の公式アカウントまでご連絡ください。 序文 Java は長い間、豊富なフレームワークと完全なエコシステムを備えた非常に人気のあるエンタープライズ プログラミング言語でした。 Java には巨大な開発者コミュニティがあります。ディープラーニング アプリケーションは進歩と進化を続けていますが、Java 向けの関連するディープラーニング フレームワークは非常に不足しています。現在、主要なモデルは Python でコンパイルおよびトレーニングされています。Java 開発者がディープラーニングを学習したい場合は、新しい言語の洗礼を受ける必要があります。 Java 開発者のディープラーニングのコストを削減するために、AWS は、Java 開発者向けにカスタマイズされたオープンソースのディープラーニングフレームワークである Deep Java Library (DJL) を構築しました。これは、開発者が主流のディープラーニングフレームワークに接続するためのインターフェイスを提供します。 ディープラーニングとは 始める前に、まず機械学習とディープラーニングの基本的な概念を理解してください。機械学習は、統計的知識を使用してコンピューターにデータを入力し、特定のターゲットタスクをトレーニングして完了させるプロセスです。この帰納的学習方法により、コンピューターは特定の機能を学習し、写真内のオブジェクトの識別など、一連の複雑なタスクを実行できます。ディープラーニングは、人間の脳がどのように学習し目標を達成するかを研究して得られた計算ロジックのセットである人工ニューラルネットワークの開発に重点を置いた機械学習の分野です。人間の脳神経間の情報伝達プロセスをシミュレートすることで、さまざまな複雑なタスクを実現できます。ディープラーニングの深さは、人工ニューラルネットワークの多くの層のコンパイルと構築から生まれ、より深いレベルでデータ情報を伝達できます。 MNIST手書き数字認識のトレーニング プロジェクト構成 gradle 設定を使用して依存パッケージを導入し、DJL の api パッケージと basicdataset パッケージを使用してニューラルネットワークとデータセットを構築します。この場合、ディープラーニングエンジンとして MXNet を使用するため、mxnet-engine と mxnet-native-auto パッケージが導入されます。依存関係は次のとおりです。
NDArry と NDManager NDArray は、データ構造と数学演算を格納するための DJL の基本構造です。NDArray は固定長の多次元配列を表します。NDArray の使用方法は、Python の numpy.ndarry に似ています。 NDManager は NDAry のマネージャーであり、NDAry の生成とリサイクルを管理する役割を担い、Java メモリの最適化に役立ちます。各 NDAry は NDManager によって作成され、NDManager が閉じられると、それらも一緒に閉じられます。 モデル DJL では、トレーニングと推論の両方が Model クラスから構築されます。ここでは、主にトレーニング プロセスの構築方法に焦点を当てます。次に、Model の新しいターゲットを作成します。Model も AutoClosable 構造を継承するため、try ブロックで実装されます。
データを準備する MNIST データベースには、通常、画像処理システムのトレーニングに使用される手書き数字の画像が多数含まれています。DJL は、基本データセット データに MNIST データを収集しました。各 MNIST 画像のサイズは 28 * 28 です。独自のデータセットがある場合は、同じ方法でデータを収集することもできます。 データセットのインポートチュートリアル http://docs.djl.ai/docs/development/how_to_use_dataset.html#how-to-create-your-own-dataset
このコードは、それぞれトレーニング セットと検証セットを作成します。また、トレーニングを向上させるために、データ セットをランダムに配置します。これらの構成に加えて、画像のサイズや正規化の設定など、画像に関するその他の設定を行うこともできます。 モデルを作りブロックを作成する データ セットの準備ができたら、ニューラル ネットワークを構築できます。DJL では、ニューラル ネットワークはブロック コード ブロックで構成されます。ブロックは、複数のニューラル ネットワーク特性を持つ構造です。これらは、動作中のニューラル ネットワークの一部、または完全なニューラル ネットワークを表すことができます。その後、ブロックは順次または並列に実行できます。同時に、ブロック自体にもパラメータとサブブロックを含めることができます。このネストされた構造は、保守可能なニューラル ネットワークを迅速に更新するのに役立ちます。トレーニング プロセス中、各ブロックに添付されたパラメータはリアルタイムで更新され、そのサブブロックも同時に更新されます。これらのブロックを構築する場合、最も簡単な方法は、ブロックを 1 つずつネストし、用意されている DJL ブロック タイプを直接使用して、さまざまなニューラル ネットワークをすばやく作成することです。 ブロックバリアント いくつかの基本的なニューラル ネットワークの動作モードに応じて、いくつかのブロック バリアントを提供します。
多層パーセプトロンMLPニューラルネットワークの構築 シンプルな多層パーセプトロンニューラルネットワークを構築します。多層パーセプトロンは、完全に接続された層がいくつかあるシンプルな順方向ニューラルネットワークです。このネットワークを構築するには、sequentialblockを直接使用できます。
提供されているMLPブロックを直接使用することができます
電車 以下の手順に従ってください。 トレーニング プロセスの初期化を完了します。各ブロックのパラメータを初期化します。各パラメータを初期化する関数は、set 初期化子によって決定されます。順方向伝播: このステップでは、入力データをニューラル ネットワークの層ごとに渡し、出力データを生成します。損失の計算: 特定の損失関数損失に従って、出力とラベル付けされた結果間の偏差を計算します。バックプロパゲーション: このステップでは、損失の逆導関数を使用して各パラメータの勾配が計算されます。重みを更新すると、選択したオプティマイザーに従ってブロック上の各パラメータの値が更新されます。 合理化 DJL は、Trainer 構造を使用してプロセス全体を簡素化します。開発者は、Trainer を作成し、対応する初期化子、損失、および最適化子を指定するだけで済みます。これらのパラメータは、TrainingConfig によって設定されます。パラメータ設定を見てみましょう。 TrainingListener は、トレーニング プロセス中に設定されるリスナーであり、各ステージのトレーニング結果に関するリアルタイムのフィードバックを提供できます。これらの結果は、トレーニング プロセスを記録したり、ニューラル ネットワークのトレーニング中に発生した問題をデバッグするために使用できます。ユーザーは独自のTrainingListenerをカスタマイズしてトレーニングプロセスを監視できます。
トレーニングが生成されたら、入力シェイプを定義し、トレーニング用のgit関数を呼び出すと、結果がローカルディレクトリに保存されます。
出力結果グラフ
トレーニングが完了すると、モデルを認識して使用できるようになります。 著者について 私は二級都市で生まれ、一級都市に住んでいるシャオシャオです。このエピソードはこれで終わりです。また次回お会いしましょう。 |
<<: 旅行を恥ずかしがる必要はありません。国内の観光地がAIを導入し、スマートな旅行の新たなシナリオを実現
>>: 業界初のAIリアルタイムステルス技術、ステルスの超能力を手に入れるために快手へ
人工知能は私たちの生活、仕事、遊び方に革命をもたらそうとしているが、Amazon の Alexa や...
モンスターAPIは、採掘機器などのGPUコンピューティングパワーを使用してAIモデルをトレーニングし...
近年人気の技術である機械学習は、数多くの「人工知能」製品でよく知られているだけでなく、従来のインター...
たったこれだけで、携帯電話を交換したいですか?最近話題になっている新しいAIデバイス「AI Pin」...
編集者注: ブロックチェーンと AI は、今日最もホットな 2 つの技術方向であると言えます。一般の...
著者 | 崔昊レビュー | Chonglouまとめこの記事の著者は、海外のブロガーに触発され、大規模...
1 月 19 日、テクノロジー業界が超人的、神レベルの知能を達成する道を歩んでいるという確固たる信念...
[[264418]]職場で機械が人間の労働に取って代わるようになるにつれ、私たち全員が機械から利益...
1 件の AI 論文、442 人の著者。著者の貢献のために特別な章も設けられています。 100ペー...
先進運転支援システム (ADAS) は、道路の安全性と旅行体験に対するドライバーと乗客のより高い要求...
[[239590]] 8月6日、自動運転車、ロボット医師、10億人を超える中国国民を対象とした社会...
[51CTO.com からのオリジナル記事] この記事では、コンシステント ハッシュとは何か、そして...
[[389187]] GPT-3 はオープンソースですか? Eleuther AI のオープンソース...
量子コンピューティングと人工知能の融合により、大きな期待と可能性を秘めた研究の最前線である量子人工知...