■Unity開発メモ用のWiki◎現在扱っていること・Unity全般・MMDからUnityへの変換してインポート・MMDの仕様把握・BlenderでMMDモデルのカスタム

目次


TensorFlow(テンソル・フロー)とは?

参考:機械学習ライブラリ「TensorFlow」とは? 学習方法や他のライブラリとの違いについても解説!
参考:TENSORFLOW入門】特徴や使い方をわかりやすく解説!
  • TensorFlowとはGoogleが開発したオープンソースの機械学習ライブラリ
    • ニューラルネットワーク、機械学習、ディープラーニング
  • TensorFlowが強い
    • Linux, macOS, Windowsなどの主要なOSで利用可能
    • Pythonだけではなく、C/C++やJava、Go言語といった複数のプログラミング言語に対応

  • TensorFlowの親戚
    • Tensor:Googleの新しいシステムオンチップ(SoC) Pixel 6とかに使われている
    • DistBelief:TensorFlowの前身
    • Keras:TensorFlow 2.0に統合された
    • TensorFlow 2.0:2019年10月に発表された

  • TensorFlowのライバル
    • Pytorch:Facebookが2016年に発表したディープラーニング・フレームワーク
    • Chainer:Pytorchに統合された

  • Google Colaboratoryを利用すれば、インストールせずブラウザ上で直接TensorFlowを動かせる
  • TensorFlowの特徴として、データの読み込み、前処理、計算、状態、出力といった処理に対してテンソルを扱っている
  • 分散学習によってデータフローグラフを構築したあと、計算しなければいけないものを複数に分散して並列処理を行う事が可能
  • TensorBoard→可視化ツール。学習がうまくいかなかった時にデータを目で見て問題を発見することができる
◎TensorFlowとテンソル(多次元配列)の演算
  • 公式ドキュメント:テンソルと演算
  • Tensorとは多次元配列のこと
  • 多次元配列とは、一次元配列以外の配列のこと
  • 1階のテンソル=1次元配列(スカラー)
  • 2階のテンソル=2次元配列(ベクトル)
  • 3階のテンソル=3次元配列
 
◎TensorFlowの公式チュートリアル  
◎TensorFlowで出来ること
  • 画像認識
  • 音声認識
  • MNIST
  • 自然言語処理
  • 機械翻訳
  • Google内サービスで写真などの画像検索

TensorFlow用のGPU設定

  • 以下のコマンドでaptを最新のものにしておく

NVIDIAのGPUドライバをインストールする

以下のコマンドを実行する
$sudo apt install -y cuda-drivers $sudo apt update
$sudo apt upgrade
リポジトリの準備
-GPUドライバを配布しているNVIDIAのリポジトリをパッケージマネージャに登録する
--対応するディストリビューションの一覧
-以下のコマンドでLinuxのディストリビューションを確認する
$ cat /etc/issue

tfjs「MobileNet」(画像)のテスト

参考:webpackのプロジェクトの準備
参考:TypeScript + webpack + TensorFlow.js を使って画像分類

  • 「MobileNet」はImageNetデータベースからのラベルで画像を分類する
  • ここでは猫の画像を読み取らせ、判定させる
  • 今回使った猫の画像
    • ダウンロードした画像は「cat.jpg」とリネームして「dist」フォルダにいれる

フォルダ構成

  • distフォルダ→「配布」、つまりコンパイルされたコード/ライブラリを意味する
myProject  //ルートフォルダ
├ dist  //ここに判別する画像を入れる
 |   └ cat.jpg  //MobileNetで判別する画像
 |   └ inderx.html //画像とスクリプトを読み込む
 |   └ main.js  //webpackでバンドルされたスクリプト
├ node_modules //インストールした「tfjs」の色々なものが入っている
├ src  //スクリプトを入れるフォルダ
 |  └ index.ts  //画像判別に関するスクリプト
├ package-lock.json //直接編集や削除をしない事
├ package.json  //プロジェクトの初期化設定
├tsconfig.json      //TypeScriptの設定
└webpack.config.js   //webpackの設定

tfjs「MobileNet」のセットアップ

  • 前提として「VSCode」と「Node.js」の環境構築は終わっているものとする
  • VSCodeの作業フォルダを作る
  • ターミナルを開き以下のコマンドで初期化する
npm init -y
  • 以下のコマンドで「webpack」をインストールする
npm i -D webpack webpack-cli npm install -D webpack webpack-cli typescript ts-loader
  • 「mobilenet」をインストールする
npm i -S @tensorflow/tfjs @tensorflow-models/mobilenet
  • 「live-server」をインストールする
npm install live-server --save-dev
package.jsonの設定
  • scriptsの項目を以下のようにする
{
   〜〜〜
  "scripts": {
    "start": "live-server dist",
    "build": "webpack",
    "watch": "webpack -w"
  },
   〜〜〜
}
webpack.config.jsの設定
  • プロジェクトフォルダ直下に「webpack.config.js」を作成する
  • webpack.config.jsを以下のようにする
const path = require('path');

module.exports = {
    // development or production
    // development に設定するとソースマップ有効でJSファイルが出力される
    mode: "development",
  
    // メインとなるJavaScriptファイル(エントリーポイント)
    entry: "./src/index.ts",

    output: {
      //path: `${__dirname}/dist`,
      path: path.join(__dirname, "dist"),
      filename: "main.js"
    },
    module: {
      rules: [{
      // 拡張子 .ts の場合
      test: /\.ts$/,
      // TypeScript をコンパイルする
      use: 'ts-loader'
      }]
  },
  // import 文で .ts ファイルを解決するため
    resolve: {
      //extensions: [".js"]
      modules: [
        "node_modules", // node_modules 内も対象とする
        ],
        extensions: [
        '.ts',
        '.js' // node_modulesのライブラリ読み込みに必要
        ]
    }
  };

画像判定のスクリプトを作成する

  • srcフォルダを作りその中に「index.ts」ファイルを作る
const tf=require('@tensorflow/tfjs')
const mobilenet=require('@tensorflow-models/mobilenet')

// 画像の取得
const img = document.getElementById('img')

// モデルの読み込み
mobilenet.load().then(model => {
  // 画像分類
  model.classify(img).then(predictions => {
    console.log('Predictions: ', predictions)
  })
})

index.htmlを作成する

  • プロジェクトフォルダ直下に「dist」フォルダを作る
  • その中に「index.html」 と 画像ファイル cat.jpg を配置する
  • index.htmlは以下のようにする
<html>
  <head>
    <img id="img" src="cat.jpg"></img>
    <script type="text/javascript" src="main.js"></script>
  </head>
</html>

ビルドと実行

  • 以下のコマンドでビルドを行う
npm run build
  • 無事にビルドが通ったら、main.htmlファイルを右クリックして「 Open with Live Server 」を選択する
  • 新しく猫の画像が表示されるWEBページが表示される
  • F12を押して、デベロッパーツールを起動する
  • デベロッパーツールのConsole(コンソール)に判定結果が出力される
    • コンソールの「Array(3)」を展開すると判定候補が3つ表示される
    • 「Probability」の値が高いほど、その候補に近いと判定されている

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

【メニュー編集】

スカイリム関連

スカイリム関連


Menu

【メニュー編集】

スクリプト関連

フリーエリア

管理人/副管理人のみ編集できます