備忘録(公開用)
ニューラルネットを用いて3次元曲面補間を行うアプリケーション MatInterp を導入し適当な問題で動かせるようする. Windows 環境はサポート外であることと,2022/10/17 現在,公式マニュアルの説明と最新バージョンのソフトに齟齬があると思われるため,「こうやったら動いた」という情報を記録する.
Windows は未対応のため WSL を用いる.
WSL の Ubuntu 20.04.3 LTS
を使用.Anacondaがインストールされている.
MatInterp を ローカルにクローンし,セットアップ構成を使って conda 環境を作成する.
cd (local path)/mat_interp/
conda env create -f=env_Ubuntu.yml
conda activate mat_interp
ニューラルネットワークの最適化処理のデータを並行して扱うために MySQL を用いているため,なければインストールする.
うまく動かなくていろいろいじっている間に環境がおかしくなったため一度アンインストールしている. 参考:Ubuntu環境でのMySQLアンインストールについて
sudo apt-get remove --purge mysql-server* mysql-common
sudo apt-get autoremove --purge
sudo rm -r /etc/mysql
sudo rm -r /var/lib/mysql
WLS 越しだとマニュアル通りではうまく動かないようなので Microsoft のドキュメント に従う.
sudo apt update
apt-cache policy mysql-server
sudo apt install mysql-server=(バージョンを指定)
mysql --version
1行目で更新があればアップグレードしておく(sudo apt upgrade
).
2行目で有効なMySQLバージョンが表示されるので v.8.0.x 系か v.5.7.x を選ぶ.
3行目で該当バージョンをインストールする.
4行目で指定したバージョンが表示されればインストール成功.
パスワードを設定.
mysql_secure_installation
を使うとなぜかうまくいかないため,まずプロンプトから設定する.
(参考:MySQL 8.0 mysql_secure_installation エラー)
$ sudo /etc/init.d/mysql start
$ sudo mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '(password)';
mysql> exit;
これで mysql_secure_installation
が通るようになった.
最初の「パスワードを変えるか?」という質問以外すべて y
で答え,他の設定を終わらせる.
これで root ユーザーにパスワードが設定された状態になる.
再び MySQL サーバーを立ち上げ直し,rootでプロンプトを起動する.
※ 通常,サーバーの起動は systemctl start mysql
のようにするが,WSL 環境だと systemctl
が動かないため直接叩く.動かせるようにすることもできる(⇒Windows 10 or 11 (WSL2)のUbuntuでsystemctlを利用する方法(systemdをPID1で動作させる方法)) ようだが,大変なので一旦このまま.
sudo /etc/init.d/mysql start
sudo mysql -u root -p
パスワードを入力し,プロンプトで MatInterp の設定スクリプトを実行して終了する.
mysql> source createdb.sql
mysql> exit;
以下の内容の MySQL の構成ファイル ~/.my.cnf
を作成する.
[client]
user = mat_user_1
password = mat_user_1_P
echo "[client]
user = mat_user_1
password = mat_user_1_P" >> ~/.my.cnf
でいいだろう.
このファイルとレポジトリ内の設定ファイルのアクセス権限を自分だけにする.
chmod 600 ~/.my.cnf
chmod 600 config.ini
セットアップ完了.
mat_interp の環境を activate する
conda activate mat_interp
MySQL のサーバーを起動する
sudo /etc/init.d/mysql start
mat_interp のディレクトリへ移動する
cd (local path)/mat_interp
GUI アプリを立ち上げる
streamlit run app.py
初回起動には時間がかかる場合がある. 開発に興味がある方は Email を入力してくださいというプロンプトが出るが無視して Enter を押してよい.
ブラウザが立ち上がりアプリが走る. 自動で起動しない場合は http://127.0.0.1:8501/ にアクセスする.
MySQL サーバーを終了する
sudo /etc/init.d/mysql stop
mat_interp/example_date
にデモ用データが用意されているのでこれを参考に.mat_interp/study/(folder name)
に学習データなどが保存される.
学習済みのデータがあれば,2つ目のフォームから指定することでモデルが読み込まれるので “STEP 3” へ.
mat_interp/study/df_simulated.csv
に保存されている.
“Download df_simulated.csv” をクリックすれば別途ファイルがダウンロードされる.以上.
あくまで入力データを学習した補間に過ぎないので,基本的に外挿はできないものとして扱い,結果が正しいかどうかは良く吟味するべきである. 図7では入力データ外の $X_1<10$ の領域では $X_2$ が大きい領域のデータに引きずられてしまっている.
出典: K. Terashima, et al. “Neural Networks for a Quick Access to a Digital Twin of Scanning Physical Properties Measurements.” arXiv, June 22, 2022. https://doi.org/10.48550/arXiv.2206.10908.
これを保存しておかないとエラーになる.マニュアルとは名前が異なっているので注意. ↩