chevron_left

メインカテゴリーを選択しなおす

cancel
daisukeの技術ブログ https://daisuke20240310.hatenablog.com

AI、機械学習、最適化、Pythonなどについて、技術的な内容や、ツールの作成/紹介を書いています。また、はてなブログのブログをカスタマイズした方法についても、詳しく書いています。

daisuke
フォロー
住所
未設定
出身
未設定
ブログ村参加

2024/05/04

arrow_drop_down
  • 量子化:論文 Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference を読む(3)

    量子化の3回目です! Googleが2017年12月にarXivに登録した論文の「Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference」の続きで、今回は 3章の予定でしたが、2章に関係が深い Appendix を先に読んでいきます。

  • gemmlowpライブラリのソースコードをデバッガを使って理解する

    今回もAIの量子化について学んでいきます。GoogleのQAT量子化の論文 に出てくる gemmlowp ライブラリ について見ていきます。 前回は、gemmlowp の サンプルコード(doc/quantization_example.cc)を実行しました。長い実行ログが出力されて、その内容は量子化計算のチュートリアルのようになっていたので、その説明をしました。 今回は、実行結果のログだけでは十分に理解できなかった部分を、デバッガを使って、実行結果とソースコードを見ながら、理解を深めていきます。 それでは、やっていきます!

  • gemmlowpライブラリのソースコードを読んで量子化を学ぶ(サンプルソースの実行)

    今回もAIの量子化について学んでいきます。GoogleのQAT量子化の論文 に出てくる gemmlowp ライブラリ について見ていきます。 それでは、やっていきます!

  • QEMUのソースコードを変更してSTM32の動作を変える

    前回は、だいぶ苦労して、QEMU をソースからビルドしました。 今回は、QEMU のソースコードを変更して、STM32 の動作を変えてみます。 それでは、やっていきます。

  • QEMUをソースからビルドして動かす

    前回は、QEMU のビルドに必要な xpm について学びました。 今回は、QEMU をビルドしていきます。途中でエラーが出ますが、そこを解決していきたいと思います。 それでは、やっていきます。

  • QEMUのビルドに必要なxpm(xPack Project Manager)について学ぶ

    前回は、バイナリファイル(デバッグ情報、シンボル情報が削除される)から再構築した ELFファイルを QEMU (ターゲットは STM32F4-Discovery)で動かしました。 今回は、QEMU をビルドして動かす予定でしたが、やってみるとビルドエラーになりました。簡単にはエラーを解決できなかったので、QEMU のビルドの仕組みの xpm を理解していきます。 それでは、やっていきます。

  • STM32(ARM Cortex-M)のバイナリから構築したELFファイルをQEMUで動かす

    前回は、QEMU (ターゲットは STM32F4-Discovery)で動かしたELFファイルをバイナリファイル(デバッグ情報、シンボル情報が削除される)に変換して、そのバイナリファイルでELFファイルを再構築しました。 今回は、そのELFファイル(デバッグ情報、シンボル情報なし)を QEMU で動かしていきたいと思います。 それでは、やっていきます。

  • STM32(ARM Cortex-M)のELFファイル⇔バイナリの変換を行う

    前回は、QEMU (ターゲットは STM32F4-Discovery)で動かしたELFファイルの内容を確認しました。 今回は、このELFファイルをバイナリファイルに変換して、デバッグ情報、シンボル情報を削除して、そこから、ELFファイルを再構築していきたいと思います。 それでは、やっていきます。

  • STM32(ARM Cortex-M)のELFファイルの内容を確認する

    前回は、QEMU (ターゲットは STM32F4-Discovery)で動かしたサンプルソースのリンカスクリプトの内容を確認しました。 今回は、これまで使ってきたサンプルソースをビルドして生成された ELFファイル の内容を見ていきたいと思います。 それでは、やっていきます。

  • STM32(ARM Cortex-M)をQEMUで動かす(リンカスクリプト編)

    前回は、QEMU (ターゲットは STM32F4-Discovery)で動かしたサンプルソースのスタートアップルーチンの内容を確認しました。 今回は、サンプルソースのリンカスクリプトの内容を確認していきます。 それでは、やっていきます。

  • STM32(ARM Cortex-M)をQEMUで動かす(スタートアップルーチン編)

    前回は、QEMU (ターゲットは STM32F4-Discovery)で動かしたサンプルソースのスタートアップルーチン以外の内容を確認しました。 今回は、サンプルソースのスタートアップルーチンの内容の確認と、アセンブラの動作の確認をしていきます。 それでは、やっていきます。

  • STM32(ARM Cortex-M)をQEMUで動かす(ソースコード確認編)

    前回は、Interface 2022年 7月号 を参考にして、苦労の末、QEMU (ターゲットは STM32F4-Discovery)を立ち上げました。QEMU とは、実機が無くてもプロセッサ(CPU、評価ボード)を動かせるエミュレータです。 今回は、動作させたサンプルソースの内容の確認と、機能の確認をしていきます。 それでは、やっていきます。

  • STM32(ARM Cortex-M)をQEMUで動かす(環境構築編)

    今回から QEMU をやっていきます。QEMU とは、実機が無くてもプロセッサ(CPU、評価ボード)を動かせるエミュレータです。 現在は、QEMU は、Linux を動かすことが多いようですが、私自身が QEMU の経験が少ないので、まずはマイコンをターゲットにしてやっていきます。 ターゲットとするマイコンは、Interface 2022年 7月号 で扱っていた STM32F4-Discovery にしたいと思います。 結論としては、無事に動きました。だいぶ苦労したので、手順としてまとめておきます。

  • IntelliJを使ってJavaのGradleプロジェクトでデバッグしてみる(Ubuntu22.04)

    前回、Gradleというビルドツールでプロジェクトを作って、「Hello, world.」までやりました。 今回は、そのプロジェクトを IntelliJ に読み込ませてデバッグするところまでやりたいと思います。 それではやっていきます!

  • Javaでデザインパターンを学ぶ:Prototypeパターン

    Javaによるデザインパターンの9回目です! 今回も教材は、参考文献の「Java言語で学ぶデザインパターン入門第3版」のサンプルコードを使わせて頂きます。 今回は、Prototypeパターンです。 では、やっていきましょう!

  • GradleでJavaプロジェクトを作ってみる(Ubuntu22.04)

    今回は、Java向けのビルドツールである Gradle を使ってみます。 Java用、もしくは、Javaに使えるビルドツールとして、Make、Ant、Mavenなどがありますが、最近は Gradle がよく使われています。 名前も Gradle(グレードル)が一番かっこいいですし、読み方も明らかでいいですね。Mavenは、メイバンと読むと思ってたんですけど、日本の方はメイブンとかメイベンとか呼んでますね。海外の方のYouTube見ると、メイバンとメイベンの中間ぐらいに聞こえます。 あと、Gradle のロゴも特徴的で良いデザインだと思います!(アイキャッチ画像に使わせてもらいました) 今回は、…

  • 量子化:論文 Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference を読む(2)

    「量子化の論文を読む」の2回目です! Googleが2017年12月にarXivに登録した論文の「Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference」の続きで、今回は2章を読んでいきます。

  • Raspberry Pi 4のTensorFlow Lite C++をVSCodeでリモートデバッグする

    今回もAIの量子化について学んでいきます。論文を読むことは継続しつつ、今回は、TensorFlow Lite C++ の動作を見るために、デバッグ環境を立ち上げたいと思います。 前回は、TensorFlow Lite の C++ で、量子化モデルを動かしました。何が実行されてるか分からなかったので、ソースコードを見ていきます。ソースを追うだけで理解するのは難しいので、デバッグ環境を立ち上げて、動かしながら理解していきます。 Raspberry Pi 上で動作するプログラムのデバッグ環境としては、VSCode のリモートデバッグを使います。さらに、今回は、CMake環境のデバッグということで、そ…

  • TensorFlow Lite C++で量子化モデルをRaspberry Pi 4で動かす

    今回もAIの量子化について学んでいきます。論文を読むことは継続しつつ、今回は、実際に量子化モデルを動かして、推論の高速化を実感したいと思います。 前回は、Python の tflite-runtime をインストールして実行しましたが、今回は、C++でやっていきます。手順通りにやれば、必ず同じことが出来るように、環境構築、ビルド、実行の手順を書いていきます。 それでは、やっていきます!

  • TensorFlow Lite Pythonで量子化モデルをRaspberry Pi 4で動かす

    今回もAIの量子化について学んでいきます。論文を読むことは継続しつつ、今回は、実際に量子化モデルを動かして、推論の高速化を実感したいと思います。 まずは、VirtualBox の Ubuntu 22.04 で動かしていきますが、TensorFlow Lite は、ARM CPU に最適化されていると思うので、性能が出ないかもしれません。その後、Raspberry Pi 4(Raspberry Pi OS)でも動かしていきます。 それでは、やっていきます!

  • 量子化:論文 Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference を読む(1)

    今回からAIの量子化について、学んでいこうと思います。具体的には、量子化することによる推論の高速化について調べていきたいと思います。 最近のChatGPTなどに代表される「大規模言語モデル(LLM)」の動向としても、量子化が注目されてきています。 量子化によって、一定の精度劣化はありますが、モデルを小さくしたり、推論速度を改善したりできることから、エッジデバイスで推論する際に、よく使われています。 最近、スマホにLLMを搭載したというニュースが出てました。 AIの量子化では、大きく分けて、PTQ(Post Training Quantization)と呼ばれる「学習後の量子化」と、QAT(Qu…

  • Jarの作り方とJarを含んだJavaのコンパイル方法をパッケージ含めていろいろ試してみる

    前回は、Javaのコンパイルと実行時のパスの関係を整理しました。 今回は、Jarを含めた場合をやっていきます。 それではやっていきます!

  • PyInstallerを使ってTkEasyGUIを使ったGUIアプリ(url2title)をexe化する

    前回、URLをコピーしてクリップボードに送ると、Webスクレイピングで記事のタイトルを取得して表示するPythonのTkEasyGUIを使ったGUIアプリ(url2title)を作りました。 はてなブログの記事のURLが日付の場合に、何の記事かを確認するのに、いちいちブラウザで開いてタイトルを確認するのが手間なので、ツール化したものです。 このGUIアプリを使うには、Pythonをインストールした環境が必要でした。今回は、PyInstallerを使って、GUIアプリ(url2title)をexe化して、Python環境がなくても実行できるようにします。 PyInstallerはOSSで商用利用…

arrow_drop_down

ブログリーダー」を活用して、daisukeさんをフォローしませんか?

ハンドル名
daisukeさん
ブログタイトル
daisukeの技術ブログ
フォロー
daisukeの技術ブログ

にほんブログ村 カテゴリー一覧

商用