Kerasで最もよく使われるディープラーニングAPI

Kerasで最もよく使われるディープラーニングAPI

[[208000]]

ご存知のとおり、Keras-Python ライブラリを使用すると、独自のディープラーニング モデルをすばやく簡単に作成できます。今日は、よく使用される API 関数のいくつかを紹介します。

Sequential API を使用すると、ほとんどの問題に対してレイヤーごとにモデルを作成できます。制限としては、複数の入力または出力を持つ共有レイヤーまたはモデルを作成できないことです。

Keras の API 関数は、より複雑なモデルの作成など、より柔軟なモデルを作成するための代替手段です。

このブログ記事では、Keras の柔軟な API 関数を使用してディープラーニング モデルを定義する方法について説明します。

これを読めば、次のことがわかります。

  1. 継続的な API と API 関数の違い。
  2. API 関数を使用して、単純な多層パーセプトロン、畳み込みニューラル ネットワーク、および再帰型ニューラル ネットワーク モデルを定義する方法。
  3. 共有レイヤーと複数の入力および出力を使用して、より複雑なモデルを定義する方法。

では、始めましょう。

チュートリアルの概要

このチュートリアルは 6 つのパートに分かれています。

  1. Keras シーケンシャル モデル。
  2. Keras 機能モデル。
  3. 標準ネットワークモデル。
  4. 共有レイヤーモデル。
  5. 複数の入力および出力モデル。
  6. ***練習する。

1. Keras シーケンシャルモデル

Keras は、Sequential モデル用の API を提供します。

これはディープラーニング モデルを作成する 1 つの方法であり、Sequential クラスのインスタンスを作成し、モデル レイヤーを作成してそれに追加します。

たとえば、レイヤーを定義して配列として Sequential に渡すことができます。

  1. keras.modelsからSequentialをインポートする
  2.  
  3. keras.layersからDenseをインポート
  4.  
  5. モデル = シーケンシャル([Dense(2, input_dim=1), Dense(1)])

レイヤーはセクションごとに追加することもできます。

  1. keras.modelsからSequentialをインポートする
  2.  
  3. keras.layersからDenseをインポート
  4.  
  5. モデル = シーケンシャル()
  6.  
  7. モデルを追加します(Dense(2, input_dim=1))
  8.  
  9. モデル.add (密(1))

Sequential Model API は、ほとんどの場合、ディープラーニング モデルの開発に適していますが、いくつかの制限もあります。たとえば、複数の異なる入力ソースを持つモデルを定義することはできません。複数の出力ターゲットが生成されるためです。

2. Kerasの機能モデル

Keras 機能 API は、より柔軟なモデル定義方法を提供します。

複数の入力または出力を持つモデルや、レイヤーを共有できるモデルを定義できます。とりわけ、アドホックな非巡回ネットワーク グラフを定義することができます。

モデルは、レイヤーのインスタンスを作成し、それらをペアで直接接続し、指定されたレイヤーをモデルの入力と出力としてモデルを定義することによって定義されます。

Keras 機能 API の 3 つのユニークな側面を見てみましょう。

2.1 入力の定義

Sequential モデルとは異なり、入力データの形状を指定する別の入力レイヤーを作成して定義する必要があります。

入力層は、入力データの次元を表すタプルであるモデル パラメータを受け取ります。

入力データが多層パーセプトロンなどの 1 次元の場合、モデルは、データを分割するためにネットワークをトレーニングするときに使用するミニバッチ サイズの形状を明示的に除外する必要があります。したがって、モデルタプルは常に最初の次元 (2) がぶら下がった状態で定義されます。例:

  1. keras.layersから入力をインポート
  2.  
  3. 可視 = 入力(形状=(2,))

2.2 接続層

モデル内のレイヤーは、各新しいレイヤーを定義するときに入力の取得元を指定することにより、ペアで接続できます。レイヤーを作成した後、括弧表記を使用して現在のレイヤーから次のレイヤーへの入力を指定します。

これを簡単な例で説明してみましょう。上記のように入力層を作成し、入力層からの入力のみを受け取る密な層として隠し層を作成できます。

  1. keras.layersから入力をインポート
  2.  
  3. keras.layersからDenseをインポート
  4.  
  5. 可視 = 入力(形状=(2,))
  6.  
  7. 隠された = 密(2)(見える)

このレイヤー接続方法により、機能 API の柔軟性が向上します。特殊なグラフィック用のアドホック レイヤーの定義を開始するのがいかに簡単かがわかります。

2.3 モデルの作成

モデルに必要なすべてのレイヤーを作成し、それらを接続したら、次にモデルを定義する必要があります。 Sequential API と同様に、モデルは概要を作成し、適合し、評価し、予測を行うために使用できるものです。

Keras は、作成したレイヤーからモデルを作成するために使用できる Model クラスを提供します。入力層と出力層を指定する必要があります。例えば:

  1. keras.modelsからモデルをインポート
  2.  
  3. keras.layersから入力をインポート
  4.  
  5. keras.layersからDenseをインポート
  6.  
  7. 可視 = 入力(形状=(2,))
  8.  
  9. 隠された = 密(2)(見える)
  10.  
  11. model = モデル(入力=表示、出力=非表示)

Keras 機能 API の重要な部分をすべて理解できたので、さまざまなモデルのセットを定義して学習内容を実践してみましょう。

次の各例は実行可能であり、構造を印刷してグラフを作成します。定義を明確にするために、独自のモデルに対してこれを実行することをお勧めします。

これらの例が、将来、機能 API を使用して独自のモデルを定義するためのテンプレートとなることを願っています。

3. 標準ネットワークモデル

機能 API の使用を開始するときは、まず標準的なニューラル ネットワーク モデルの定義を理解することが重要です。このセクションでは、単純な多層パーセプトロン、畳み込みニューラル ネットワーク、および再帰型ニューラル ネットワークの定義を紹介します。

これらの例は、後でより詳細な例を理解するための基礎となります。

3.1 多層パーセプトロン

このセクションでは、バイナリ分類用の多層パーセプトロン モデルを定義します。モデルには 10 個の入力、3 つの隠し層、10 個のニューロンがあり、出力層には 1 つの出力があります。各隠れ層では正規化線形活性化関数が使用され、出力層ではバイナリ分類にシグモイド活性化関数が使用されます。

  1. # 多層パーセプトロン
  2.  
  3. keras.utilsからplot_modelをインポートする
  4.  
  5. keras.modelsからモデルをインポート
  6.  
  7. keras.layersから入力をインポート
  8.  
  9. keras.layersからDenseをインポート
  10.  
  11. 表示 = 入力(形状=(10,))
  12.  
  13. hidden1 = Dense(10, activation= 'relu' )(表示)
  14.  
  15. hidden2 = Dense(20, activation= 'relu' )(hidden1)
  16.  
  17. hidden3 = Dense(10, activation= 'relu' )(hidden2)
  18.  
  19. 出力= Dense(1, 活性化 = 'シグモイド' )(hidden3)
  20.  
  21. model = モデル(入力=可視、出力=出力)
  22.  
  23. # レイヤーを要約する
  24.  
  25. 印刷(モデル.要約())
  26.  
  27. # グラフをプロットする
  28.  
  29. plot_model(モデル、to_file= 'multilayer_perceptron_graph.png' )

例を実行すると、ネットワークの構造が出力されます。

  1. _________________________________________________________________
  2. レイヤー(タイプ)出力形状パラメータ#
  3. =================================================================
  4. input_1 (入力レイヤー) (なし、10) 0
  5. _________________________________________________________________
  6. 密_1 (密) (なし、10) 110
  7. _________________________________________________________________
  8. 密_2 (密) (なし、20) 220
  9. _________________________________________________________________
  10. 密_3 (密) (なし、10) 210
  11. _________________________________________________________________
  12. 密_4 (密) (なし、1) 11
  13. =================================================================
  14. 合計パラメータ: 551
  15. トレーニング可能なパラメータ: 551
  16. トレーニング不可能なパラメータ: 0
  17. _________________________________________________________________

モデル図の作成とファイルへの保存:

3.2 畳み込みニューラルネットワーク

このセクションでは、画像分類用の畳み込みニューラル ネットワークを定義します。

モデルは、入力として白黒の 64×64 画像を受け取り、2 つの畳み込み層とプーリング層のシーケンスが特徴抽出器として機能し、その後に特徴を解釈するための完全接続層が続き、出力層はシグモイド活性化関数です。

  1. # 畳み込みニューラルネットワーク
  2.  
  3. keras.utilsからplot_modelをインポートする
  4.  
  5. keras.modelsからモデルをインポート
  6.  
  7. keras.layersから入力をインポート
  8.  
  9. keras.layersからDenseをインポート
  10.  
  11. keras.layers.convolutionalからConv2D をインポートします
  12.  
  13. keras.layers.poolingからMaxPooling2D をインポートします
  14.  
  15. 表示 = 入力(形状=(64,64,1))
  16.  
  17. conv1 = Conv2D(32, kernel_size=4, activation= 'relu' )(表示)
  18.  
  19. プール1 = MaxPooling2D(プールサイズ=(2, 2))(conv1)
  20.  
  21. conv2 = Conv2D(16, kernel_size=4, activation= 'relu' )(pool1)
  22.  
  23. プール2 = MaxPooling2D(プールサイズ=(2, 2))(conv2)
  24.  
  25. hidden1 = Dense(10, activation= 'relu' )(pool2)
  26.  
  27. 出力= Dense(1, activation= 'sigmoid' )(hidden1)
  28.  
  29. model = モデル(入力=可視、出力=出力)
  30.  
  31. # レイヤーを要約する
  32.  
  33. 印刷(モデル.要約())
  34.  
  35. # グラフをプロットする
  36.  
  37. plot_model(モデル、to_file= 'convolutional_neural_network.png' )

例を実行する:

  1. _________________________________________________________________
  2.  
  3. レイヤー(タイプ)出力形状パラメータ#
  4.  
  5. =================================================================
  6.  
  7. input_1 (入力レイヤー) (なし、64、64、1) 0
  8.  
  9. ••••••
  10.  
  11. 合計パラメータ: 8,933
  12.  
  13. トレーニング可能なパラメータ: 8,933
  14.  
  15. トレーニング不可能なパラメータ: 0
  16.  
  17. ________________________________________________________________

モデル グラフのグラフが作成され、ファイルに保存されます。

3.3 リカレントニューラルネットワーク

このセクションでは、シーケンス分類用の LSTM 再帰型ニューラル ネットワークを定義します。

モデルには 100 タイム ステップが入力として供給され、シーケンスから特徴を抽出するための単一の LSTM 隠し層、LSTM 出力を解釈するための完全接続層、バイナリ予測を行うための出力層が続きます。

  1. # リカレントニューラルネットワーク
  2.  
  3. keras.utilsからplot_modelをインポートする
  4.  
  5. keras.modelsからモデルをインポート
  6.  
  7. keras.layersから入力をインポート
  8.  
  9. keras.layersからDenseをインポート
  10.  
  11. keras.layers.recurrentからLSTM をインポートします
  12.  
  13. 表示 = 入力(形状=(100,1))
  14.  
  15. 隠し1 = LSTM(10)(可視)
  16.  
  17. hidden2 = Dense(10, activation= 'relu' )(hidden1)
  18.  
  19. 出力= Dense(1, activation= 'sigmoid' )(hidden2)
  20.  
  21. model = モデル(入力=可視、出力=出力)
  22.  
  23. # レイヤーを要約する
  24.  
  25. 印刷(モデル.要約())
  26.  
  27. # グラフをプロットする
  28.  
  29. plot_model(モデル、to_file= 'recurrent_neural_network.png' )

例を実行すると、モデル レイヤーが要約されます。

  1. _________________________________________________________________
  2.  
  3. レイヤー(タイプ)出力形状パラメータ#
  4.  
  5. =================================================================
  6.  
  7. •••••••
  8.  
  9. =================================================================
  10.  
  11. 合計パラメータ: 601
  12.  
  13. トレーニング可能なパラメータ: 601
  14.  
  15. トレーニング不可能なパラメータ: 0
  16.  
  17. _________________________________________________________________

モデル図の作成とファイルへの保存:

4. 共有レイヤーモデル

複数のレイヤーが 1 つのレイヤーの出力を共有できます。

たとえば、入力から複数の異なる特徴抽出レイヤーが存在する場合や、特徴抽出レイヤーの出力を解釈するための複数のレイヤーが存在する場合があります。

これら2つの例を見てみましょう。

4.1 共有入力層

このセクションでは、異なるサイズのカーネルを使用して複数の畳み込み層を定義し、画像入力を解釈します。

モデル入力は、サイズが 64×64 ピクセルの白黒画像です。この入力を共有する CNN 特徴抽出サブモデルが 2 つあります。1 つ目はカーネル サイズ 4、2 つ目はカーネル サイズ 8 です。これらの特徴抽出サブモデルの出力はベクトルに平坦化され、1 つの長いベクトルに連結され、最終出力層の前にバイナリ分類のために完全に接続された層に渡されます。

  1. # 共有入力レイヤー
  2.  
  3. keras.utilsからplot_modelをインポートする
  4.  
  5. keras.modelsからモデルをインポート
  6.  
  7. keras.layersから入力をインポート
  8.  
  9. keras.layersからDenseをインポート
  10.  
  11. keras.layersからフラット化をインポートする
  12.  
  13. keras.layers.convolutionalからConv2D をインポートします
  14.  
  15. keras.layers.poolingからMaxPooling2D をインポートします
  16.  
  17. keras.layers.mergeからインポートして連結する
  18.  
  19. # 入力レイヤー
  20.  
  21. 表示 = 入力(形状=(64,64,1))
  22.  
  23. #最初の特徴抽出器
  24.  
  25. conv1 = Conv2D(32, kernel_size=4, activation= 'relu' )(表示)
  26.  
  27. プール1 = MaxPooling2D(プールサイズ=(2, 2))(conv1)
  28.  
  29. flat1 = フラット化()(pool1)
  30.  
  31. # 2 番目の特徴抽出器
  32.  
  33. conv2 = Conv2D(16, kernel_size=8, activation= 'relu' )(表示)
  34.  
  35. プール2 = MaxPooling2D(プールサイズ=(2, 2))(conv2)
  36.  
  37. flat2 = フラット化()(pool2)
  38.  
  39. # 特徴抽出器をマージする
  40.  
  41. マージ = 連結([flat1, flat2])
  42.  
  43. # 解釈レイヤー
  44.  
  45. hidden1 = Dense(10, activation= 'relu' )(マージ)
  46.  
  47. # 予測出力 
  48.  
  49. 出力= Dense(1, activation= 'sigmoid' )(hidden1)
  50.  
  51. model = モデル(入力=可視、出力=出力)
  52.  
  53. # レイヤーを要約する
  54.  
  55. 印刷(モデル.要約())
  56.  
  57. # グラフをプロットする
  58.  
  59. plot_model(モデル、to_file= 'shared_input_layer.png' )

例を実行すると、モデル レイヤーが要約されます。

  1. ___________________________________________________________________
  2.  
  3. レイヤー(タイプ)出力形状パラメータ#接続 
  4.  
  5. ===================================================================
  6.  
  7. •••••••••••••••••••••••
  8.  
  9. 合計パラメータ: 415,045
  10.  
  11. トレーニング可能なパラメータ: 415,045
  12.  
  13. トレーニング不可能なパラメータ: 0
  14.  
  15. ___________________________________________________________________

モデル グラフが作成され、ファイルに保存されます。

4.2 共有特徴抽出層

このセクションでは、2 つの並列サブモデルを使用して、シーケンス分類用の LSTM 特徴抽出器の出力を解釈します。

モデルへの入力は 100 個の特徴を持つタイム ステップであり、10 個のメモリ セルを持つ LSTM レイヤーがシーケンスを解釈します。最初の解釈モードは浅い単一の完全接続層であり、2 番目は深い 3 層モデルです。両方の説明モデルの出力は長いベクトルに連結され、バイナリ予測を行うために出力層に渡されます。

  1. # 共有特徴抽出レイヤー
  2.  
  3. keras.utilsからplot_modelをインポートする
  4.  
  5. keras.modelsからモデルをインポート
  6.  
  7. keras.layersから入力をインポート
  8.  
  9. keras.layersからDenseをインポート
  10.  
  11. keras.layers.recurrentからLSTM をインポートします
  12.  
  13. keras.layers.mergeからインポートして連結する
  14.  
  15. #入力を定義する
  16.  
  17. 表示 = 入力(形状=(100,1))
  18.  
  19. # 特徴抽出
  20.  
  21. extract1 = LSTM(10)(可視)
  22.  
  23. #最初の解釈モデル
  24.  
  25. interp1 = Dense(10, activation= 'relu' )(extract1)
  26.  
  27. # 2番目の解釈モデル
  28.  
  29. interp11 = Dense(10, activation= 'relu' )(extract1)
  30.  
  31. interp12 = Dense(20, activation= 'relu' )(interp11)
  32.  
  33. interp13 = Dense(10, アクティベーション= 'relu' )(interp12)
  34.  
  35. # マージ解釈
  36.  
  37. マージ = 連結([interp1, interp13])
  38.  
  39. #出力 
  40.  
  41. 出力= Dense(1, activation= 'sigmoid' )(merge)
  42.  
  43. model = モデル(入力=可視、出力=出力)
  44.  
  45. # レイヤーを要約する
  46.  
  47. 印刷(モデル.要約())
  48.  
  49. # グラフをプロットする
  50.  
  51. plot_model(モデル、to_file= 'shared_feature_extractor.png' )

例を実行すると、モデル レイヤーが要約されます。

  1. ___________________________________________________________________
  2.  
  3. レイヤー(タイプ)出力形状パラメータ#接続 
  4.  
  5. •••••••
  6.  
  7. 合計パラメータ: 1,151
  8.  
  9. トレーニング可能なパラメータ: 1,151
  10.  
  11. トレーニング不可能なパラメータ: 0
  12.  
  13. ___________________________________________________________________

モデル図が作成され、ファイルに保存されます。

5. 複数の入力および出力モデル

機能 API は、複数の入力 (場合によっては異なるモダリティ) を持つ、より複雑なモデルを開発するためにも使用できます。複数の出力を生成するモデルの開発にも使用できます。

このセクションでは、それぞれの例を見ていきます。

5.1 マルチ入力モデル

それぞれ異なるサイズの 2 つのバージョンの画像を入力として受け取る画像分類モデルを開発します。具体的には、64×64の白黒バージョンと32×32のカラーバージョンです。それぞれに対して個別の特徴抽出 CNN モデルが実行され、両方のモデルの結果が連結されて解釈と最終的な予測が行われます。

Model() インスタンスを作成するときに、2 つの入力レイヤーを配列として定義したことに注意してください。

  1. モデル = モデル(入力=[visible1, visible2], 出力= output )

完全な例を以下に示します。

  1. # 複数入力
  2.  
  3. keras.utilsからplot_modelをインポートする
  4.  
  5. keras.modelsからモデルをインポート
  6.  
  7. keras.layersから入力をインポート
  8.  
  9. keras.layersからDenseをインポート
  10.  
  11. keras.layersからフラット化をインポートする
  12.  
  13. keras.layers.convolutionalからConv2D をインポートします
  14.  
  15. keras.layers.poolingからMaxPooling2D をインポートします
  16.  
  17. keras.layers.mergeからインポートして連結する
  18.  
  19. #最初の入力モデル
  20.  
  21. visible1 = 入力(形状=(64,64,1))
  22.  
  23. conv11 = Conv2D(32, kernel_size=4, activation= 'relu' )(visible1)
  24.  
  25. pool11 = MaxPooling2D(pool_size=(2, 2))(conv11)
  26.  
  27. conv12 = Conv2D(16, kernel_size=4, activation= 'relu' )(pool11)
  28.  
  29. pool12 = MaxPooling2D(pool_size=(2, 2))(conv12)
  30.  
  31. flat1 = フラット化()(pool12)
  32.  
  33. # 2番目の入力モデル
  34.  
  35. visible2 = 入力(形状=(32,32,3))
  36.  
  37. conv21 = Conv2D(32, kernel_size=4, activation= 'relu' )(visible2)
  38.  
  39. pool21 = MaxPooling2D(pool_size=(2, 2))(conv21)
  40.  
  41. conv22 = Conv2D(16, kernel_size=4, activation= 'relu' )(pool21)
  42.  
  43. pool22 = MaxPooling2D(pool_size=(2, 2))(conv22)
  44.  
  45. flat2 = フラット化()(pool22)
  46.  
  47. # 入力モデルをマージする
  48.  
  49. マージ = 連結([flat1, flat2])
  50.  
  51. # 解釈モデル
  52.  
  53. hidden1 = Dense(10, activation= 'relu' )(マージ)
  54.  
  55. hidden2 = Dense(10, activation= 'relu' )(hidden1)
  56.  
  57. 出力= Dense(1, activation= 'sigmoid' )(hidden2)
  58.  
  59. モデル = モデル(入力=[visible1, visible2], 出力= output )
  60.  
  61. # レイヤーを要約する
  62.  
  63. 印刷(モデル.要約())
  64.  
  65. # グラフをプロットする
  66.  
  67. plot_model(モデル、to_file= 'multiple_inputs.png' )

例を実行する:

  1. ___________________________________________________________________
  2.  
  3. レイヤー(タイプ)出力形状パラメータ#接続 
  4.  
  5. •••••••••
  6.  
  7. input_1 (入力レイヤー) (なし、64、64、1) 0
  8.  
  9. 合計パラメータ: 49,699
  10.  
  11. トレーニング可能なパラメータ: 49,699
  12.  
  13. トレーニング不可能なパラメータ: 0
  14.  
  15. ___________________________________________________________________

モデル図が作成され、ファイルに保存されます。

5.2 マルチ出力モデル

このセクションでは、2 つの異なるタイプの予測を行うことができるモデルを開発します。特徴の 100 タイム ステップの入力シーケンスが与えられると、モデルはシーケンスを分類し、同じ長さの新しいシーケンスを出力します。

LSTM レイヤーは入力シーケンスを解釈し、各タイム ステップの隠し状態を返します。最初の出力モデルは、LSTM のスタックを作成し、特徴を解釈して、バイナリ予測を行います。 2 番目の出力モデルは、同じ出力レイヤーを使用して、各入力時間ステップの実数値予測を行います。

  1. # 複数の出力
  2.  
  3. keras.utilsからplot_modelをインポートする
  4.  
  5. keras.modelsからモデルをインポート
  6.  
  7. keras.layersから入力をインポート
  8.  
  9. keras.layersからDenseをインポート
  10.  
  11. keras.layers.recurrentからLSTM をインポートします
  12.  
  13. keras.layers.wrappersからTimeDistributed をインポートします
  14.  
  15. # 入力レイヤー
  16.  
  17. 表示 = 入力(形状=(100,1))
  18.  
  19. # 特徴抽出
  20.  
  21. extract = LSTM(10, return_sequences= True )(表示)
  22.  
  23. # 分類出力 
  24.  
  25. class11 = LSTM(10)(抜粋)
  26.  
  27. class12 = Dense(10, activation= 'relu' )(class11)
  28.  
  29. 出力1 = Dense(1, 活性化= 'シグモイド' )(クラス12)
  30.  
  31. 順序 出力 
  32.  
  33. output2 = TimeDistributed(Dense(1, activation= 'linear' ))(抽出)
  34.  
  35. #出力 
  36.  
  37. モデル = モデル(入力=可視、出力=[出力1、出力2])
  38.  
  39. # レイヤーを要約する
  40.  
  41. 印刷(モデル.要約())
  42.  
  43. # グラフをプロットする
  44.  
  45. plot_model(モデル、to_file= 'multiple_outputs.png' )

例を実行します。

  1. ___________________________________________________________________
  2.  
  3. レイヤー(タイプ)出力形状パラメータ#接続 
  4.  
  5. ===================================================================
  6.  
  7. input_1 (入力レイヤー) (なし、100、1) 0
  8.  
  9. ___________________________________________________________________
  10.  
  11. ········
  12.  
  13. 合計パラメータ: 1,452
  14.  
  15. トレーニング可能なパラメータ: 1,452
  16.  
  17. トレーニング不可能なパラメータ: 0
  18.  
  19. ___________________________________________________________________

モデル図の作成とファイルへの保存:

6.*** 方法

このセクションでは、独自のモデルを定義するときに機能 API を最大限に活用するためのヒントをいくつか紹介します。

  1. 一貫した変数名。入力層 (visible) と出力層 (output)、さらに隠し層 (hidden1、hidden2) にも同じ変数名を使用します。物事を正しく接続するのに役立ちます。
  2. レイヤーマップを表示します。常にモデルの概要を印刷し、レイヤーの出力を確認して、モデルが期待どおりに接続されていることを確認します。
  3. チャートを表示します。モデル グラフのプロットを作成し、すべてが意図したとおりに適合していることを確認します。
  4. レイヤーに名前を付けます。モデル図を表示するときや描画するときに使用するレイヤーに名前を割り当てることができます。たとえば、Dense(1, name = 'hidden1') です。
  5. サブモデルを分離します。個別のサブモデルの開発とサブモデルの組み合わせを検討してください。

<<:  概念から事例まで: 初心者向けの機械学習アルゴリズムトップ 10

>>:  ディープラーニング技術に関する珍しいガイド

ブログ    

推薦する

磁気リンクがAIサークルを席巻、87GBシードが直接オープンソースの8x7B MoEモデル

「ハイエンド」オープンソースでは、最も単純なリリース方法が採用されることが多いです。昨日、Mistr...

物理学界に嵐を巻き起こした室温超伝導の論文は、8人の共著者によって報告された後、ネイチャー誌によって撤回された。第一著者は調査中である。

多くの紆余曲折を経て、室温超伝導に関する熱狂は2023年末にようやく終焉を迎えた。 11月7日、ネイ...

...

AIが予測分析アプリケーションに与える影響

人工知能 (AI) を使用した予測分析により、企業は過去のデータに基づいて将来の結果を予測し、運用効...

再びH800を去勢しますか?米国商務省の新しい政策はGPU輸出に対する規制を強化し、今週発表される予定である。

ロイター通信は今週、米国が中国へのGPU輸出をさらに制限する新たな規制を導入すると独占的に報じた。制...

王の英雄を見極める – PM の機械学習初心者の旅

[[204836]]基本概念先月、私は機械学習を原理レベルから理解し始め、オンライン電子書籍「ニュー...

軍用殺人ロボットは人類の救世主か悪魔か?

[[230142]] 「リトルビー」殺人ロボットの背後にあるブラックテクノロジー学生たちが席に座っ...

ロボットセンサー市場は2026年までに40億ドルを超える

AIとIoTをロボットシステムに統合することで、その応用範囲が大幅に拡大すると期待されています。市場...

ソースディレクトリ内のファイルをプレフィックスに応じて異なるディレクトリに分散するためのアルゴリズム設計と C コードの実装

1. 要件の説明Linux システムのソース ディレクトリには、同じサフィックスを持つファイルがいく...

Nervana Technology の深掘り: Neon を使用したエンドツーエンドの音声認識の実装方法

音声は本質的に即時の信号です。音声で伝えられる情報要素は、複数の時間スケールで進化します。空気圧の影...

...

会話型AIが発展途上国の経済をどう変えるか

テクノロジーは商品の売買方法を変えました。電子商取引の発展により、トレーダーは世界中のほぼどこでも、...

AIモデリングはもはや困難ではない:Jiuzhang Yunji DataCanvasが2つのオープンソース成果をリリース

[51CTO.comより] 「ソフトウェアインフラは大幅なアップグレードを受け、AIの実装はソフトウ...

顔認識は「スマート交通」に役立ち、3つの側面でその価値を実証する

近年、都市化の急速な発展と都市人口の継続的な増加により、都市交通の重要性がますます高まっています。わ...

マイクロソフト、テンセント、インテルがキュウリを栽培する理由:AIのせい

[[249198]]マイクロソフト、テンセント、インテルがキュウリ栽培にAIを活用北京時間11月13...