3_1_2 モデルの作成

TensorFlow.jsでは、大学で学ぶ数学を分かっていないとまったくもってチンプンカンプンの理論を隠蔽するモデル(tf.Model)が用意されています。モデルの作成は定型的なので、毎回同じような手順で作成できます。

info('モデル構築開始');
// buildModel()が値を返すまで次に進まない
const model = await buildModel();
info('モデル構築完了');

モデルの作成には、一般的なデータの取得ほど時間はかかりませんが、今後もっと複雑なモデルを作成するときも考慮して、モデルが作成されてから次に進むように、ここでもasyncとawaitを使っています。

 // モデルを非同期で作成する
const buildModel = async()=>{
  const model = tf.sequential();
  model.add(tf.layers.dense({units: 1, inputShape: [1]}));
  model.compile({ loss: 'meanSquaredError', optimizer: 'sgd' });
  return model;
}

buildModel()関数の1行めでは、tf.sequential()を使って、レイヤーを順に重ねるタイプのモデルを作成しています。

このモデル(tf.Sequentialオブジェクト)には、add()メソッドを使って、モデルの最上位にレイヤーを追加することができます。

レイヤーとは、モデルを構成する層を言い、そこを流れるtf.Tensorオブジェクトに対してそのレイヤー固有の計算を行います。ここでは、標準的な全結合レイヤーを作成しています。

レイヤーを追加したら、そのレイヤーを備えたモデルとしてコンパイルします。そのときには、モデルがどういった方法で正解に近づくかを指定します。今の場合でいうと、’meanSquaredError’と’sgd’がこれに当たります。

全結合とは何ぞや? ’meanSquaredError’と’sgd’とは? といった疑問が湧きますが、実は’meanSquaredError’1つをとっても説明には相当な分量を要するので、ひとまずここでは、モデルを作成する手順だけ押さえておいてください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA