chevron_left

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

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

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

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

2024/05/04

arrow_drop_down
  • 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で商用利用…

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

    Javaによるデザインパターンの8回目です! 今回も教材は、参考文献の「Java言語で学ぶデザインパターン入門第3版」のサンプルコードを使わせて頂きます。 今回は、Adapterパターンです。Adapterとは適合させるという意味です。既存のクラスを必要なインタフェースに適合させるイメージです。 では、やっていきましょう!

  • Javaのコンパイル方法(仕組み)をパッケージ含めていろいろ試してみる

    Javaのソースコード(.java)を、javacコマンドでコンパイルするときパスの指定や、実行時のパス指定がややこしいと感じたので、今回は、そのあたりを整理して、実際にいろいろなパターンで、コンパイル、実行していきます。 それではやっていきます!

  • Ubuntu22.04(VirtualBox 7.0)の設定とソフトウェアインストール

    前回、VirtualBox 7.0 で、ゲストOSに Ubuntu 22.04.4 LTS をインストールしました。 今回は、その続きで、設定と、ソフトウェアのインストールについて説明していきたいと思います。 それではやっていきます!

  • VirtualBox 7.0+Ubuntu22.04をWindows10にインストールする方法

    VirtualBox 7.0でゲストOSをインストールする方法が、VirtualBox 6.xから変わりました。 今回はその内容を説明していきたいと思います。 ゲストOSは、既に、Ubuntu24.04 が提供開始された(2024/4/25)ようですが、さすがに出たばっかりなので、今回は Ubuntu22.04 でやっていきます。 それではやっていきます!

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

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

  • URLからタイトルを取得するPythonのGUIアプリを作りました(url2title)

    URLをコピーしてクリップボードに送ると、Webスクレイピングで記事のタイトルを取得して表示するPythonのGUIアプリ(url2title)を作りました。 自分のはてなブログの記事のURLが日付の場合に、パッと見たときに、何の記事?となることがよくあります。そんなとき、いちいちブラウザで開いてタイトルを確認するのが手間なので、ツールとして作ってみました。 最近は、記事を書くときに、それらしいURLを設定するようにしてるのですが、過去の記事はURLを変更する勇気もなく、困っていたので作りました! それでは、やっていきます!

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

    Javaによるデザインパターンの6回目です! 今回も教材は、参考文献の「Java言語で学ぶデザインパターン入門第3版」のサンプルコードを使わせて頂きます。 今回は、Stateパターンです。状態遷移を表現するのに便利なパターンで、理解しやすいパターンだと思います。 では、やっていきましょう!

  • TkEasyGUI(Python)で簡単GUI(PySimpleGUI有料化に伴い移行します!)

    Pythonで簡単にGUIアプリが作れる環境として、PySimpleGUIがバージョン5から、商用利用の場合は有償となりました。 個人が使う場合は、これまで通り、無償で使えるとのことですが、ライブラリを使い分けるのは大変なので、PySimpleGUIのAPIの互換性を持つ「TkEasyGUI」に乗り換えることにします!という記事です。 今回は、TkEasyGUIの紹介と簡単な使い方を紹介しようと思います。 それでは、やっていきます!

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

    Javaによるデザインパターンの5回目です! 教材は、参考文献の「Java言語で学ぶデザインパターン入門第3版」を使わせて頂きます。 今回は、Factory Methodパターンです。とても理解が難しいパターンでした。 それでは、やっていきましょう!

  • PythonでWebスクレイピング(ChatGPTにPythonコードを生成してもらう)

    Webスクレイピングとは、プログラムを使用して、Webサイトの情報(データ)をダウンロードし、データを解析、分析することを言います。 初回なので、スクレイピングをするにあたっての注意事項や基本的なところを書きます。 あまり無茶は出来ませんが、スクレイピングを使うと、とても便利なことがあると思います。 例えば、自分のブログのリンク切れ自動チェックや、ブログ記事一覧の自動作成、URLを入力すると記事タイトルを表示させるツール(URLを投稿日時にしてしまった場合に便利)など、ブログ運営に役に立ちそうなことが出来そうです。 今回は、自分のブログの記事のURLとタイトルの一覧を取得できるツールを作ってみ…

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

    Javaによるデザインパターンの4回目です! 教材は、参考文献の「Java言語で学ぶデザインパターン入門第3版」のサンプルコードを使わせて頂きます。 今回は、Iteratorパターンです。 実は、第1回で書いていたんですが、途中で疑問が出てきて、解決できなくて、下書きに眠ってました(笑) そのあたりも話せたらと思います。 では、やっていきましょう!

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

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

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

    Javaによるデザインパターンの2回目です! 教材は、参考文献の「Java言語で学ぶデザインパターン入門第3版」を使わせて頂きます。 今回は、Template Methodパターンです。1回目のシングルトンパターンに比べて、少し難しくなったと思います。 では、やっていきましょう!

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

    Javaによるデザインパターンの1回目です! 教材は、参考文献の「Java言語で学ぶデザインパターン入門第3版」を使わせて頂きます。 今回は、Singletonパターンです。23個のデザインパターンの中でも、最も理解しやすいパターンの一つだと思います。 では、やっていきましょう!

  • Java開発環境構築(OpenJDK+Visual Studio Code)

    今回から、Javaによるデザインパターンを学んでいきます。 教材は、参考文献の「Java言語で学ぶデザインパターン入門第3版」です。 Eclipseは重いので、Visual Studio Codeでやっていきます。 ついでに、Visual Studio Codeの拡張機能のPlantUMLも追加しておきます。 今回は、Javaの環境構築を行います。 では、やっていきましょう!

  • Visual Studio Code:設定内容、インストールした拡張機能

    はじめに Visual Studio Code(以下、VSCode)で設定した内容について、書き残していきます。 普段はサクラエディタを使っていて、開発環境はVSCodeを使っているので、VSCodeは初心者です。 私は、サクラエディタでは、ウィンドウを縦横4分割して使う場合が多いです。ファイル内の他のコードを参照しながら実装することが多いからです。 過去にVSCodeに移行しようとしたとき、ウィンドウ分割、解除、アクティブウィンドウの移動あたりのキーバインドが分からずに挫折したことがあります(笑)。今回は絶対に移行します! この記事は、完全に自分用のメモになりそうです。でも、他の人の設定って…

  • ChatGPT(無料版)の始め方

    2024/4/15現在の最新版「無料版ChatGPTの始め方」です! 無料版では、GPT3.5が使えて、テキスト生成(質問に答えてくれるなど)だけ可能ですが、無料で使えるので、良かったら使ってみてください。 20ドル/月(3000円)の有料版では、日本語の文章から画像を生成してくれる機能(DALL-E3)が使えます。生成された画像は、商用利用可能です(著作権を侵害しない範囲で)ので、アイキャッチ画像に使えます! それでは、やっていきましょう!

  • Google ColaboratoryでOptunaの多目的最適化を実行する(可視化もする)

    今回は、OSSのOptunaを使って、多目的最適化をやっていきます。 具体的には、書籍「Optunaによるブラックボックス最適化」の「3.1 多目的最適化」のサンプルコードを使います。 また、Pythonのmatplotlibで、3Dのグラフで可視化します。この可視化はマウスをドラッグすることで様々な視点から3Dグラフを見ることが出来ます。しかし、Google Colaboratoryの場合、通常の方法では3Dグラフを動かすことが出来ません。その対策についても説明していきます。 この内容が参考になれば幸いです。

  • はてなブログ無料版開設から1か月でGoogleアドセンスに合格(祝🎉)

    本日(2024/4/12)、Googleアドセンスの審査に合格のメールが来ました!!🎊 はてなブログを無料版で開設してから、約1か月で達成できました。 今日は、その報告と、この1か月間を振り返ってみたいと思います。 一度、審査不合格になってるので、そこからの対策は参考になると思います! この記事が、Googleアドセンスを目指してる方の参考になれば嬉しいです。

  • Google ColaboratoryでOptunaを実行する方法(Studyの再現性を確保する)

    今回は、OSSのOptunaを、Google Colaboratoryで使う手順の詳細説明と、実際の実行結果を記載します。 プログラムは、書籍「Optunaによるブラックボックス最適化」の2章のサンプルコードを使用します。 また、トライアル(学習)の再現性を確保(同じ学習結果を再現する)し、Optunaのスタディも再現させる方法についても説明します。 この内容が参考になれば幸いです。

  • ページ内リンクが動作しない場合の対処方法(スペースやピリオド「.」などを含む場合)

    ブログでページ内リンク(アンカーリンク)を設定したのに、うまく飛べなかった経験はありませんか? はてなブログだけでなく、Markdownを使用している場合、アンカーリンクは使用した文字(スペースやピリオドなど)によって自動的に変換されることがあります。 今回は、そのような時の簡単な対策を見つけたので、記事にしていきます!

  • 【解説】Google ColaboratoryでOptuna Dashboardを使う方法

    今回は、OSSのOptunaの実行結果を可視化する「Optuna Dashboard」を、「Google Colaboratory」で使う方法を説明します。 今回の使い方は、Google ColaboratoryでOptuna Dashboardを起動(サーバを起動)し、ブラウザからOptuna Dashboardを使えるというものです。 手元にLinuxがあれば、コマンドラインからOptuna Dashboardを起動して、ブラウザでアクセスすると普通に使えます。ここでは、手元にLinuxが無く、Google ColaboratoryでOptunaを実行している状況で、Optuna Dash…

  • 【解説】ブログカスタマイズ:ページ全体の表示フォントを変更する

    ブログカスタマイズの第9回目です! このブログでは、「Minimalism 」テーマを使用していますが、なるべく、どのテーマの場合でも対応ができる方法で説明していきます。 今回は、ブログのページ全体の表示フォントの変更方法を紹介します。 いきなりフォントを変えると、どこに影響が出るか分からず、躊躇してしまいますよね。 そこで、ここでは、ページ全体のフォントに関する設計図を作って、全体像をつかんでから変更していく方法を紹介します。 それでは、早速やっていきましょう!

  • 【解説】DB4Sの使い方:インストール方法、Optunaのデータベースの操作方法

    今回は、フリーソフトのDB4Sのインストール方法と、使い方を説明します。 対象は、SQLiteで、Optunaののデータベースファイルを使って、具体的な操作方法をを記載します。 また、Google Colaboratoryで、SQL命令を実行する方法についても紹介します。 この内容が参考になれば幸いです。

  • サイトマップ

    本ブログを見て頂いて、ありがとうございます! このブログでは、AI、機械学習、最適化、Pythonなどについて、技術的な内容や、ツールの作成/紹介を書いています。 また、はてなブログを始めるにあたり、ブログをカスタマイズした方法についても、詳しく書いています。 もし、このブログでお気づきの点や、問い合わせなどありましたら、問い合わせフォームか、XのDMにお知らせください。 エンジニアグループのランキングに参加中です。 気楽にポチッとよろしくお願いいたします🙇 ランキング参加中エンジニアグループ AI AI - Optuna AI - 量子化 Java Python Linux ブログカスタマイ…

  • 【解説】ブログカスタマイズ:CSS対応のタイトル付きの囲み枠を使う方法(定型文に登録)

    ブログカスタマイズの第8回目です! 今回は、ブログ記事でよく見かける「タイトル付きの囲み枠」の作り方を紹介します。 「タイトル付きの囲み枠」は、簡単にコピペで作れるとよく紹介されていますが、CSSを使わずにstyleプロパティを直接指定して作成する方法が一般的です。 しかし、この方法では、後でスタイルを変更したい場合に、一つずつ「タイトル付きの囲み枠」を変更する必要があります。 そこで、ここではCSSを使った「タイトル付きの囲み枠」の作り方と、本文の枠にタイトルの枠をどのように重ねているかを解説します。 それでは、早速やっていきましょう!

arrow_drop_down

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

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

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

商用
daisukeの技術ブログ

フォローできる上限に達しました。

新規登録/ログインすることで
フォロー上限を増やすことができます。

フォローしました

リーダーで読む

フォロー