最終更新: kenken2020 2023年12月07日(木) 18:39:36履歴
目次
-GPUドライバを配布しているNVIDIAのリポジトリをパッケージマネージャに登録する
--対応するディストリビューションの一覧
-以下のコマンドでLinuxのディストリビューションを確認する
$ cat /etc/issue
参考:機械学習ライブラリ「TensorFlow」とは? 学習方法や他のライブラリとの違いについても解説!
参考:TENSORFLOW入門】特徴や使い方をわかりやすく解説!
◎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→可視化ツール。学習がうまくいかなかった時にデータを目で見て問題を発見することができる
- 公式ドキュメント:テンソルと演算
- Tensorとは多次元配列のこと
- 多次元配列とは、一次元配列以外の配列のこと
- 1階のテンソル=1次元配列(スカラー)
- 2階のテンソル=2次元配列(ベクトル)
- 3階のテンソル=3次元配列
◎TensorFlowの公式チュートリアル
◎TensorFlowで出来ること
- 画像認識
- 音声認識
- MNIST
- 自然言語処理
- 機械翻訳
- Google内サービスで写真などの画像検索
以下のコマンドを実行する
$sudo apt install -y cuda-drivers $sudo apt update
$sudo apt upgrade
参考:webpackのプロジェクトの準備
参考:TypeScript + webpack + TensorFlow.js を使って画像分類
参考: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の設定
- 前提として「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
- scriptsの項目を以下のようにする
{ 〜〜〜 "scripts": { "start": "live-server dist", "build": "webpack", "watch": "webpack -w" }, 〜〜〜 }
- プロジェクトフォルダ直下に「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) }) })
- プロジェクトフォルダ直下に「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>
コメントをかく