機械学習をTensorFlowjsで実行するときの備忘録

先日ボートレースの3連単予想を行うサイトを公開しました。

形にするまでにかなり苦労しました。

以前に気温の予測を行うサイトを公開しましたが、そのときにも一通りの方法を記事にしました。

今回もそのときに書いた通りに処理していけば問題がないと思っていましたが、色々と手詰まりするところがありましたので、苦労した点と便利なことなどを記事にしたいと思います。

あしぺん
あしぺん

ボートレース予想の機械学習の中身についてはまたの機会に話すよ~

機械学習サイト公開までの流れ

今回のサイトを公開するまでのフローを簡単に示しておきます。

サイト公開までの流れ

機械学習にはKerasを用いました。この他にもWebサイトで機械学習のモデルを使う方法はあるかもしれませんが、前回と同様にこのような流れで行いました。ですので、今回はこのフローの中で苦労した点や便利なことなどを記します。

AnacondaでPythonの仮想環境の構築

最も苦労したのはPythonと用いるライブラリのバージョンTensorFlowjsのバージョンがうまく噛み合わず思った処理が行われないことでした。

以前は自分のパソコンに直接Pythonをインストールし、ライブラリをインストールして、噛み合わなければアンインストールして、違うバージョンをダウンロードして、と結構めんどくさかったのですが、Anacondaを使えば仮想環境で複数のいろんな環境が構築できます。しかもインストールも簡単です。Anaconda自体のインストールはこちらに参考サイトを貼っておきます。

まず、以下の通り仮想環境の名前と入れたいPythonのバージョンを入れます。

作成した仮想環境に入るためには以下のようにします。仮想環境に入ると左側が(仮想環境の名前)になります。

あとは入った仮想環境に好きなライブラリを入れれば環境が構築できます。バージョンの指定がある場合はバージョンを指定します。指定しなければ最新バージョンになると思います。

このあたりは普段のPythonのインストールアンインストールと変わらないと思いますので、特に難しくはないと思います。

condaとpipの違い

一般的にPythonでライブラリをインストールする際にはpipを使うと思います。一方でAnacondaでライブラリをインストールする際にはcondaを使っているサイトが多く見られます。condaはAnacondaに標準で付いているライブラリ管理システムで、pipに比べて機能や実行速度などにも違いがあるみたいです。condapipを併用すると環境が壊れてエラーが発生する可能性があるみたいですので、Anacondaを使う際にはcondaに統一するなどの対策を取るほうが良いかもしれません。ちなみに私はなにも考える普段から慣れたpipを使っていました。特にエラーは出ませんでした。

仮想環境から出る方法と、仮想環境を削除する方法は以下の通りです。

これでいくらでも仮想環境を構築したり、削除したりできますね!私も何回もこれをやる羽目になりました。

結局私がうまく行ったPythonの環境を下に示しておきますので良ければ参考にされてください。

文字の全角と半角のミス

これはプログラミング初心者にありがち(私だけ?)なミスですが、本当に5時間くらい迷いました。

こちらを見てください。HTMLを編集している場面です。

322行の「“radio”」の「」が「」になっています。ようはダブルクオーテーションマーク全角になっていました。

VScodeで編集しているのですが、全角と半角の違いわかりにくくないですか?なにか方法があるのでしょうか。私はこれ以降検索で「」を置換するようにしています。

TensorFlowjsで役立つJavascriptの関数

機械学習をTensorFlowjsで行うときに役立つJavascriptの関数を紹介します。

配列を結合するconcat

2つ以上の配列を結合するときに使います。学習モデルに代入する配列を作るときに使いました。

配列内の最大値のインデックスを抽出する indexOf(Math.max.apply ())

配列の中の最大値をインデックス(要素の番号)を抽出します。モデルに代入した結果を処理するときに使いました。

数値型を文字列型に変換するString

変数の型について、数値を文字列に変換します。最後モデル計算結果を出力するときに数値を文字列に変換しました。

ちなみに文字列から数値に変換する場合はNumberを使います。

まとめ

今回はTensorFlowjsで行った機械学習のサイトを作成するにあたって苦労した点をまとめてみました。

プログラミングも難しいですが、環境の構築もなかなか難しいですね。色々実際にやってみると勉強になります。

今後も色々な機械学習に挑戦してみたいと思います。

参考サイト

コメント

タイトルとURLをコピーしました