daisukeの技術ブログ

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

2024-01-01から1年間の記事一覧

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が日付の場合に、何の記事かを確認するのに、いちいちブラウザ…

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)ようですが、さすがに出たばっかりなので、今回は Ubunt…

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

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

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

URLをコピーしてクリップボードに送ると、Webスクレイピングで記事のタイトルを取得して表示するPythonのGUIアプリ(url2title)を作りました。 自分のはてなブログの記事のURLが日付の場合に、パッと見たときに、何の記事?となることがよくあります。そん…

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

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

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

Pythonで簡単にGUIアプリが作れる環境として、PySimpleGUIがバージョン5から、商用利用の場合は有償となりました。 個人が使う場合は、これまで通り、無償で使えるとのことですが、ライブラリを使い分けるのは大変なので、PySimpleGUIのAPIの互換性を持つ「T…

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

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

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

Webスクレイピングとは、プログラムを使用して、Webサイトの情報(データ)をダウンロードし、データを解析、分析することを言います。 初回なので、スクレイピングをするにあたっての注意事項や基本的なところを書きます。 あまり無茶は出来ませんが、スク…

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も追加してお…

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

はじめに Visual Studio Code(以下、VSCode)で設定した内容について、書き残していきます。 普段はサクラエディタを使っていて、開発環境はVSCodeを使っているので、VSCodeは初心者です。 私は、サクラエディタでは、ウィンドウを縦横4分割して使う場合が…

ChatGPT(無料版)の始め方

2024/4/15現在の最新版「無料版ChatGPTの始め方」です! 無料版では、GPT3.5が使えて、テキスト生成(質問に答えてくれるなど)だけ可能ですが、無料で使えるので、良かったら使ってみてください。 20ドル/月(3000円)の有料版では、日本語の文章から画像を…

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

今回は、OSSのOptunaを使って、多目的最適化をやっていきます。 具体的には、書籍「Optunaによるブラックボックス最適化」の「3.1 多目的最適化」のサンプルコードを使います。 また、Pythonのmatplotlibで、3Dのグラフで可視化します。この可視化はマウスを…

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

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

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

今回は、OSSのOptunaを、Google Colaboratoryで使う手順の詳細説明と、実際の実行結果を記載します。 プログラムは、書籍「Optunaによるブラックボックス最適化」の2章のサンプルコードを使用します。 また、トライアル(学習)の再現性を確保(同じ学習結果…

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

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

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

今回は、OSSのOptunaの実行結果を可視化する「Optuna Dashboard」を、「Google Colaboratory」で使う方法を説明します。 今回の使い方は、Google ColaboratoryでOptuna Dashboardを起動(サーバを起動)し、ブラウザからOptuna Dashboardを使えるというもの…