🧠 Pythonで学ぶ画像認識入門:TensorFlowとKerasで手書き数字を判定する方法(1) ~環境構築編~

AIや機械学習に興味がある方にとって、「画像認識」は最初の一歩として最適なテーマです。
今回は Python + TensorFlow + Keras を使って、手書き数字を自動判定するプログラムを実際に作ってみましょう。
有名な「MNIST(エムニスト)」という手書き数字データセットを使うことで、数十行のコードで高精度な認識が可能になります。


~公式版インストールから仮想環境・動作確認まで~


💻 環境例

項目バージョン・設定内容
OSWindows 11 Pro(64bit)
Python3.13.7(公式版インストーラ)
pip25.2
仮想環境venv(C:\python_env\env)
TensorFlow2.20.0
matplotlib3.10.6

🧩 ステップ①:公式Pythonのインストール

1️⃣ Python公式サイトへアクセス

👉 https://www.python.org/downloads/windows/

2️⃣ 最新の「Windows installer (64-bit)」をダウンロード

①Downloads → Windows を選択し、「Latest Python 3 Release – Python 3.13.7」をクリック

②画面下にある「Windows installer (64-bit)」をクリックしてダウンロード

3️⃣ インストーラ起動後の設定

以下のチェックを必ず確認してください。

Add python.exe to PATH
Use admin privileges when installing py.exe
➡ 「Customize installation」を選択して進む

4️⃣ Advanced Options の設定

  • ☑ Install Python 3.13 for all users

  • ☑ Add Python to environment variables

  • ☑ Precompile standard library

  • 📁 インストール先を以下に変更:

    C:\Python313

5️⃣ 「Install」をクリックして完了!


🧩 ステップ②:インストール確認

インストール完了後、コマンドプロンプトで以下を実行👇

✅ 出力例

🧩 ステップ③:仮想環境の作成と有効化

プロジェクト専用の仮想環境を作成して、ライブラリの競合を防ぎます。


有効化:

✅ 成功すると、プロンプトの先頭に (env) が表示されます

🧩 ステップ④:TensorFlowとmatplotlibをインストール

仮想環境が有効な状態で以下を実行👇


インストール後に確認:

✅ 出力例(抜粋)


🧩 ステップ⑤:動作確認

TensorFlowが正常に動作しているか確認します。


✅ 出力例:

※ oneDNN に関する警告が表示されても正常です。
性能最適化のための通知なので無視してOKです。


🧩 ステップ⑥:仮想環境の管理コマンドまとめ

操作内容コマンド
仮想環境を終了deactivate
仮想環境を再開cd C:\python_env && env\Scripts\activate
ライブラリ一覧確認pip list
仮想環境の削除rmdir /s /q C:\python_env

✅ まとめ

この手順で構築すれば、
Windows上で安定して動作する TensorFlow + Keras + matplotlib 環境が整います。
AI学習・画像認識・データ分析など、あらゆるPython開発に対応可能です💡

💬 次回予告

次の記事

🧠 Pythonで学ぶ画像認識入門:TensorFlowとKerasで手書き数字を判定する方法(2) ~実践サンプルコード編~

では、「TensorFlowとKerasで手書き数字を判定する」実践サンプルコード

を紹介します。
実際にMNISTデータセットを使って、
AIが数字を“読む”プロセスを一緒に学んでいきましょう。

JavaScriptなしで実現!HTML5 Canvasアニメーションで魅せるWeb装飾

HTML5の登場以降、Webデザインの表現力は大きく進化しました。
その中でも<canvas>タグは、まるで映像作品のような動きをブラウザ上で描くための強力な機能です。

「アニメーション=JavaScriptが必要」と思われがちですが、実はJavaScriptを使わずにCanvasを動かす方法も存在します。
今回は、HTML5の<canvas>タグだけで実現できる動くWeb装飾について紹介します。


🖋️ <canvas>タグの基本とは?

<canvas>タグは、HTML5で導入されたグラフィック描画用の要素です。
通常はJavaScriptを使って図形やアニメーションを描きますが、近年はCSSアニメーションやSVG、さらにはGIF・APNGを組み合わせてCanvasを動かす手法も増えています。


このようにCanvasを定義するだけで、背景や装飾として利用可能。

さらに、CSSや画像アニメーションを活用することで、JavaScriptなしでも“動きを感じさせる”デザインを作ることができます。


🌊 JavaScriptなしで実現する波紋・粒子エフェクト

近年注目されているのが、Canvasを静的画像やCSSアニメーションと組み合わせるアプローチです。

✅ 例:波紋エフェクト(CSS連携) 


これだけで、Canvas上に波紋が広がるような演出をCSSだけで表現できます。

動的スクリプトが不要なので、ローディング画面やメインビジュアルにも最適です。

サンプル


✨ パーティクル風の演出も可能

粒子(パーティクル)をイメージした演出も、背景のCanvasを複数重ねることで再現可能です。
たとえば、透明度の異なる複数のCanvasレイヤーをCSSで重ねると、光がゆらめくような表現になります。



これにより、動きを感じさせる静かな装飾が可能になります。

サンプル


🧩 活用シーン

HTML5 Canvasを使った静的アニメーションは、以下のような場面で効果的です。

  • 🌐 ローディング画面:シンプルで軽量な波紋アニメーションを表示

  • 🖼️ メインビジュアル:粒子や光を使った背景エフェクト

  • 🔲 ボタンホバー時:クリック誘導に動きを加える

  • 💻 プレゼン用サイト:静かな動きでブランド感を演出


💬 まとめ

JavaScriptを使わなくても、HTML5 Canvasを上手く活用すれば軽量で美しいアニメーション表現が可能です。
CSSやCanvasレイヤーを組み合わせることで、Webサイト全体の印象を大きく向上させることができます。

「動き=JS」ではなく、「表現=HTML5 × CSS × Canvas」
これが、モダンWebデザインの新しいアプローチです。

Oracle「ORA-28001: パスワードの有効期限が切れています」対応手順

Oracle Database を利用していると、ログイン時に
「ORA-28001: パスワードの有効期限が切れています」
というエラーに遭遇することがあります。

これは、データベースのセキュリティ機能として「パスワード有効期限」が設定されており、期限を過ぎたユーザがログインできなくなるために発生します。

この場合のエラーの原因と具体的な対応手順を解説します。


エラーの原因

Oracle データベースでは、ユーザごとに割り当てられた プロファイル(Profile) により、パスワード有効期限が管理されています。

典型的な原因は以下の通りです。

  • デフォルトの DEFAULT プロファイルで PASSWORD_LIFE_TIME が 180日 などに設定されている

  • 長期間パスワードを変更しておらず、期限切れとなった

  • 運用上、期限管理を無効化していなかった


対応手順

1. SQL*Plus などからログインを試みる

期限切れの場合、通常のユーザではログインできません。
DBA 権限を持つユーザ(例: sys as sysdba)でログインする必要があります。


2. パスワードをリセットする

対象ユーザのパスワードを変更します。


例:

これでユーザは再びログインできるようになります。


3. パスワード有効期限を確認する

どのプロファイルが割り当てられているかを確認します。

次に、そのプロファイルの設定を確認します。



4. パスワード期限を延長・無効化する(必要に応じて)

運用上パスワード期限を無期限にしたい場合は、以下のように設定します。


特定のユーザ専用プロファイルを作成し、そのみに適用する運用もおすすめです。

注意点

  • セキュリティポリシー上、期限を無期限にするのは推奨されない場合があります。

  • 運用規定に従い、定期的に強度の高いパスワードへ更新しましょう。

  • 本番環境では、DBA以外のアカウントで誤って変更しないよう注意が必要です。


まとめ

「ORA-28001: パスワードの有効期限が切れています」は、パスワードの期限切れによるエラーです。

  • DBA権限でログイン

  • パスワード変更

  • プロファイル確認と調整

この流れで対応すれば、迅速に復旧できます。運用に合わせてパスワード有効期限の設定を見直すことも重要です。

Javaの例外テストが楽になる!JUnit5のassertThrows便利な使い方

1. assertThrowsとは?

JUnit5で例外をテストする際に便利なのが assertThrows です。
従来は try-catch を使って例外を検証していましたが、コードが冗長になりがちでした。JUnit5から追加された assertThrows を使うと、例外発生をシンプルにテストできます。


これだけで 「この処理で IllegalArgumentException が発生すること」 を確認できます。

2. 旧来のtry-catch方式との比較

JUnit4までの書き方は以下のようになります。


fail を入れたり、catchブロック内で assertEquals を書く必要があり、テストコードが長くなっていました。
assertThrows を使えば、これを 1行でシンプルに記述可能 です。


3. 例外メッセージの検証

assertThrows は戻り値として発生した例外オブジェクトを返すため、メッセージや詳細を検証することも可能です。@Test


これにより 例外種別だけでなく、エラーメッセージの妥当性 も簡単にチェックできます。

4. 複数の例外クラスに対応

もし異なる種類の例外が発生する可能性がある場合、複数の assertThrows を組み合わせてテストできます。


これにより、条件ごとに発生する例外をきちんと検証できます。

5. assertThrowsを使うメリットまとめ

  • コードがシンプル:try-catchやfailを省略できる

  • 例外メッセージの検証が容易

  • 複数パターンの例外を簡潔に記述可能

  • 可読性が向上し、保守性もアップ


まとめ

JUnit5の assertThrows を使えば、例外発生テストがとてもスッキリ書けるようになります。
「テストコードの読みやすさ・保守性を高めたい」という方には必須のテクニックです。
これを取り入れるだけで、テストがより楽しく、効率的になるので試してみましょう!