-
TensorFlowとPythonで単語リストからRaggedTensor(不規則テンソル)を構築する方法
RaggedTensor(不規則テンソル)は、文中の各単語の開始位置(オフセット)を利用することで構築できます。まず、文に含まれるすべての単語について、その文字ごとのコードポイント(Unicode符号位置)を取得します。次に、それらをコンソールに表示し、対象の文に含まれる単語の数を求め、オフセットを算出します。Unicode文字列の扱いPythonではUnicode文字列を表現し、Unicodeに対応した操作でそれらを処理できます。まず、標準的な文字列操作に相当するUnicode処理を活用して、スクリプト(文字体系)の検出に基づいてUnicode文字列をトークンに分割します。実行環境について本
-
TensorFlowでRagged Tensor(不規則テンソル)の単語コードポイントを文にセグメント化する方法
セグメンテーション(分割)とは、テキストを単語のような単位に分割する処理のことです。英語のようにスペースで単語を区切る言語では比較的シンプルですが、中国語や日本語のようにスペースを使用しない言語も存在します。さらに、ドイツ語のように長い複合語を含む言語では、意味を分析するために分割処理が必要になります。本記事では、Ragged Tensor(不規則テンソル)として保持されている単語のコードポイントを文に戻してセグメント化する方法を解説します。具体的には、文中の各文字に対応するコードポイントが存在するかどうかを確認し、存在する場合はRagged Tensorを作成したうえで、その文を標準的なエン
-
TensorFlowとPythonでCIFARデータセットをダウンロード・準備する方法
CIFARデータセットは、Kerasの「datasets」モジュールに含まれる「load_data」メソッドを使うことで簡単にダウンロードできます。ダウンロード後、データは自動的に訓練用データセットとテスト用データセットに分割されます。関連記事:TensorFlowとは何か?KerasはどのようにTensorFlowと連携してニューラルネットワークを構築するのか?Keras Sequential APIについて本記事では、KerasのSequential APIを使用します。Sequential APIは、層を単純に積み重ねたモデルを構築するのに便利なAPIで、各レイヤーが正確に1つの入力テン
-
TensorFlowとPythonを使ってCIFARデータセットを検証する方法
CIFARデータセットの検証は、データセットに含まれる画像をコンソール上に描画することで行うことができます。CIFARのラベルは配列形式で格納されているため、画像を表示する際にはインデックスを1つ余分に指定する必要があります。画像の表示には、matplotlibライブラリの「imshow」メソッドを使用します。 Google Colaboratoryについて 本記事のコードはGoogle Colaboratory上で実行しています。Google Colab(Colaboratory)は、ブラウザ上で直接Pythonコードを実行できるサービスです。環境構築が一切不要で、GPU(グラフィックス処理
-
TensorFlowとPythonで畳み込みニューラルネットワークの畳み込みベースを作成する方法
畳み込みニューラルネットワーク(CNN)は、一般的に「畳み込み層(Convolutional層)」「プーリング層(Pooling層)」「全結合層(Dense層)」といった複数の層を組み合わせて構成されます。関連記事:TensorFlowとは何か?KerasがTensorFlowと連携してニューラルネットワークを構築する仕組み畳み込みニューラルネットワークは、画像認識など特定の種類の問題において優れた成果を上げてきました。このネットワークは「models」クラスに用意されている「Sequential」メソッドを使って作成でき、「add」メソッドを呼び出すことで層を順番に追加していけます。ここでは
-
TensorFlowとPythonでモデルの最上位にDense層(全結合層)を追加する方法
Dense層の追加方法 SequentialモデルにDense層(全結合層)を追加するには、addメソッドを使用し、層の種類としてDenseを指定します。まず畳み込みベースの出力をFlatten層で平坦化し、その上に新しい層を積み重ねます。こうして追加された層は、トレーニングデータセット全体に対して適用されます。 関連記事: TensorFlowとは何か? KerasとTensorFlowが連携してニューラルネットワークを構築する仕組み 本記事では、KerasのSequential APIを使用します。これは、各層が必ず1つの入力テンソルと1つの出力テンソルを持つ、単純な層のスタックからなるシ
-
TensorFlowでCNNモデルをコンパイル・学習する方法をわかりやすく解説
畳み込みニューラルネットワーク(CNN)は、compile メソッドでモデルをコンパイルし、fit メソッドで学習(トレーニング)を行います。エポック数は fit メソッドの引数として指定します。 Keras Sequential APIとは 本記事では、KerasのSequential APIを使用します。Sequential APIは、層を順番に積み重ねたシーケンシャルなモデルを構築するのに適しており、各層がちょうど1つの入力テンソルと1つの出力テンソルを持つ、シンプルな層スタック構成のモデルを作成できます。 少なくとも1つの畳み込み層を含むニューラルネットワークは、畳み込みニューラルネッ
-
TensorFlowとPythonを使ってCNNモデルを評価する方法
畳み込みニューラルネットワーク(CNN)の評価は、evaluateメソッドを使用して行うことができます。このメソッドは、テストデータ(テスト画像とテストラベル)を引数として受け取り、モデルの損失(loss)と精度(accuracy)を算出します。CNNと画像認識畳み込みニューラルネットワークは、画像認識のような特定の種類の問題において、非常に優れた結果をもたらすことで知られています。画像の空間的な特徴を効率的に抽出できるため、コンピュータビジョンの分野で広く活用されています。なお、本記事のコードはGoogle Colaboratory上で実行しています。Google Colab(Colabor
-
TensorFlowとKeras Sequential APIで花のデータセットをダウンロードする方法
花のデータセットは、KerasのSequential APIとGoogleが提供するデータセット保存用APIを組み合わせることで簡単にダウンロードできます。具体的には、「get_file」メソッドにデータセットのURLを指定して呼び出すことで、データセットを取得しローカル環境に保存できます。畳み込みニューラルネットワーク(CNN)とは少なくとも1つの畳み込み層(Convolutional Layer)を含むニューラルネットワークは「畳み込みニューラルネットワーク(CNN)」と呼ばれます。CNNは画像認識など特定の種類の問題において優れた成果を上げてきた手法です。画像分類器はkeras.Sequ
-
TensorFlowとKeras Sequential APIで花のデータセットを探索する方法
花のデータセットは、Keras Sequential APIに加えて「PIL」パッケージの「Image.open」メソッドを活用することで効率的に探索できます。データセット内のサブディレクトリにはそれぞれ異なる種類の花の画像が格納されており、これらにインデックスでアクセスしてコンソール上に表示することが可能です。本記事では、Keras Sequential APIを使用します。このAPIは、各レイヤーが正確に1つの入力テンソルと1つの出力テンソルを持つ、シンプルなレイヤーの積み重ねからなる逐次モデルを構築するのに役立ちます。画像分類器はkeras.Sequentialモデルで作成し、データはp
-
TensorFlowを使って花のデータセットを訓練データと検証データに分割する方法
花のデータセットは、Kerasの前処理APIが提供する「image_dataset_from_directory」ユーティリティを使用することで、訓練データと検証データに簡単に分割できます。この関数は引数として検証データの割合(validation_split)を指定できるため、ディレクトリ内の画像を自動的に振り分けてくれます。関連記事: TensorFlowとは何か?KerasがTensorFlowと連携してニューラルネットワークを構築する仕組み画像分類モデルとデータセットの概要本チュートリアルでは、keras.Sequentialモデルを用いて画像分類器を作成し、preprocessing
-
TensorFlowとKerasで花の画像データセットを前処理する方法
はじめに花の画像データセットは、Kerasが提供する前処理APIを使用することで簡単に前処理できます。このAPIには「image_dataset_from_directory」というメソッドが用意されており、検証用データの分割方法やデータが保存されているディレクトリ、その他のパラメータを指定するだけで、データセットを効率的に処理することが可能です。関連記事:TensorFlowとは何か?KerasとTensorFlowを連携させてニューラルネットワークを作成する方法Keras Sequential APIについて本記事では、Keras Sequential APIを使用します。これは、各レイヤ
-
TensorFlowとPythonを使ってデータセットを視覚化する方法
ここでは、花のデータセットを使用します。このデータセットは、Googleが提供するAPI経由でダウンロードでき、「get_file」メソッドにAPIのURLを引数として渡すことで、データを開発環境に取得できます。 ダウンロードしたデータは「matplotlib」ライブラリを使って視覚化できます。「imshow」メソッドを使用すると、コンソール上に画像を表示することが可能です。 TensorFlowとKerasの連携 関連記事: TensorFlowとは何か?KerasはどのようにTensorFlowと連携してニューラルネットワークを構築するのか? 本記事ではKeras Sequential
-
TensorFlowでパフォーマンス向上のためにデータセットを最適化する方法
はじめに花(flower)データセットは、バッファ付きプリフェッチ、shuffleメソッド、cacheメソッドを組み合わせることで、パフォーマンス向けに効率的に構成できます。バッファ付きプリフェッチを利用すると、I/O処理がブロッキングになることなくディスクからデータを取得できるようになります。Dataset.cache()は、最初のエポックでディスクから読み込んだ画像をメモリ上に保持し、Dataset.prefetch()はトレーニング中にデータの前処理とモデルの実行をオーバーラップさせて処理を高速化します。前提知識本記事ではKeras Sequential APIを使用します。このAPIは
-
TensorFlowとPythonでデータを標準化する方法を解説
機械学習モデルの精度を高めるためには、入力データの前処理、特に標準化が重要な役割を果たします。本記事では、TensorFlowを使ってPythonでデータを標準化する手順を、花の画像データセットを例にわかりやすく解説します。 使用するデータセットについて ここでは、数千枚の花の画像を含む「flowersデータセット」を使用します。このデータセットには5つのサブディレクトリが含まれており、各サブディレクトリが1つのクラス(花の種類)に対応しています。TensorFlowのget_fileメソッドでデータセットをダウンロードした後、環境にロードして作業を進めます。 Google Colabor
-
TensorFlowとPythonでSequential(逐次)モデルを作成する方法
Sequential(逐次)モデルは、「layers.experimental.preprocessing.Rescaling」メソッドを使用する「Sequential」APIを使って作成できます。モデルの構築時には、Rescaling以外の各レイヤーも順に指定していきます。 関連記事:TensorFlowとは何か?KerasがTensorFlowと連携してニューラルネットワークを構築する仕組み 本記事では、KerasのSequential APIを使用します。このAPIは、単純なレイヤーの積み重ねで構成される逐次モデルを構築するのに適しており、すべてのレイヤーがちょうど1つの入力テンソルと1
-
TensorFlowとPythonでモデルをコンパイルする方法をわかりやすく解説
TensorFlowで作成したモデルは、compileメソッドを使うことで簡単にコンパイルできます。損失関数の計算にはSparseCategoricalCrossentropyメソッドを使用します。 実行環境について 本記事のコードはGoogle Colaboratory上で実行しています。Google Colab(Colaboratory)はブラウザ上で直接Pythonコードを実行できるサービスで、面倒な環境構築が一切不要です。さらにGPU(グラフィックス処理ユニット)へ無料でアクセスでき、Jupyter Notebookをベースに構築されています。 モデルのコンパイルコード print
-
TensorFlowとPythonを使ってモデルをトレーニングする方法
TensorFlowでは、fitメソッドを使ってモデルをトレーニングできます。このメソッドには、エポック数(データセット全体を何回繰り返して学習させるかを示す数値)とトレーニング用データを指定します。実行環境について本記事のコードはGoogle Colaboratory(Google Colab)で実行しています。Google Colabはブラウザ上でPythonコードを実行できるサービスで、面倒な環境構築が不要なうえ、GPU(グラフィックス処理ユニット)を無料で利用できるのが大きな特徴です。ColaboratoryはJupyter Notebookをベースに構築されています。モデルのトレーニ
-
PythonでDataFrameからランダムな行を1つ選択する方法
はじめにpandasのDataFrameからランダムに行を1つ選択したい場面は、データ分析やサンプリング処理でよくあります。この記事では、Pythonのrandomモジュールとilocを組み合わせて、DataFrameから任意の1行をランダムに抽出するコードを紹介します。入力データと出力イメージ例として、次のようなサンプルDataFrameを想定します。 Id Name0 1 Adam1 2 Michael2 3 David3 4 Jack4 5 Peter実行すると、以下のようにランダムに選ばれた1行が出力されます(実行するたびに結果は変わります)。Random row is&nb
-
【Python入門】pandasで「K」で始まる都市名と州名を抽出してCSVファイルに保存する方法
はじめにデータ分析の現場では、特定の条件に合致する行だけを抽出して、別のファイルとして保存したいケースがよくあります。本記事では、pandasのDataFrameから「K」で始まる都市名(City)と州名(State)を持つ行を抽出し、その結果を新しいCSVファイルに出力するPythonプログラムを解説します。入力データのイメージここでは、City 列と State 列を持つ以下のようなDataFrameを想定します。この中から都市名・州名の両方が「K」で始まるデータだけを取り出し、別のCSVファイルに保存します。City,State Kochi,Kerala解決手順この問題は、以下の3つのス