daisukeの技術ブログ

AI、機械学習、最適化、Pythonなどについて、技術調査、技術書の理解した内容、ソフトウェア/ツール作成について書いていきます

2024-05-01から1ヶ月間の記事一覧

量子化:論文 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 をビルドして動かす予定でしたが、やってみるとビルドエラーになりました。簡単…

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

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

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 の経験が少ないので、まずはマイコンをターゲットにしてやっ…

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(グレードル)が一番かっこいいですし、読み方…

量子化:論文 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++ で、量子化モデルを動かしました。何が実行されてるか分…

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

今回もAIの量子化について学んでいきます。論文を読むことは継続しつつ、今回は、実際に量子化モデルを動かして、推論の高速化を実感したいと思います。 前回(TensorFlow Lite Pythonで量子化モデルをRaspberry Pi 4で動かす - daisukeの技術ブログ)は、Py…

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

今回もAIの量子化について学んでいきます。論文を読むことは継続しつつ、今回は、実際に量子化モデルを動かして、推論の高速化を実感したいと思います。 まずは、VirtualBox の Ubuntu 22.04 で動かしていきますが、TensorFlow Lite は、ARM CPU に最適化さ…

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

今回からAIの量子化について、学んでいこうと思います。具体的には、量子化することによる推論の高速化について調べていきたいと思います。 最近のChatGPTなどに代表される「大規模言語モデル(LLM)」の動向としても、量子化が注目されてきています。 量子…

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

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

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

前回、URLをコピーしてクリップボードに送ると、Webスクレイピングで記事のタイトルを取得して表示するPythonのTkEasyGUIを使ったGUIアプリ(url2title)を作りました。 はてなブログの記事のURLが日付の場合に、何の記事かを確認するのに、いちいちブラウザ…