目次
1. データセットとターゲット
2. 準備作業
3. ハイパーパラメータ
4. トレーニング セットとテスト セットを作成する
5. ニューラル ネットワーク アーキテクチャを設計する
6、训练
7、小结
ホームページ テクノロジー周辺機器 AI TensorFlow を使用して画像分類モデルをトレーニングするためのガイド

TensorFlow を使用して画像分類モデルをトレーニングするためのガイド

Apr 13, 2023 pm 05:13 PM
モデル tensorflow 分類

翻訳者 | チェン・ジュン

レビュアー|孫樹娟

ご存知のとおり、人間は幼い頃から見たものを識別し、ラベルを付けることを学びます。現在、機械学習と深層学習アルゴリズムの継続的な反復により、コンピューターはキャプチャされた画像を大規模かつ非常に高い精度で分類できるようになりました。現在、このような高度なアルゴリズムのアプリケーション シナリオには、肺スキャン画像を解釈して健康かどうかを判断すること、モバイル デバイスを介して顔認識を実行すること、小売業者向けにさまざまなタイプの消費者オブジェクトを区別することが含まれます。

以下では、コンピューター ビジョンのアプリケーションである画像分類について説明し、TensorFlow を使用して小さな画像データ セットでモデルをトレーニングする方法を徐々に示します。

1. データセットとターゲット

この例では、0 から 9 までの数字画像の MNIST データセットを使用します。その形状は次の図に示されているとおりです。

TensorFlow を使用して画像分類モデルをトレーニングするためのガイド

このモデルをトレーニングする目的は、画像をそれぞれのラベルに分類することです。つまり、画像は互いに対応しています。 Numbers オフィスの上の図。通常、ディープ ニューラル ネットワーク アーキテクチャは、モデルをトレーニングするための入力、出力、2 つの隠れ層 (隠れ層)、およびドロップアウト層を提供します。 CNN (畳み込みニューラル ネットワーク) は、大きな画像を識別するための最初の選択肢であり、入力量を減らしながら関連情報を取得できます。

2. 準備作業

まず、TensorFlow、to_categorical (数値クラス値を他のカテゴリに変換するために使用)、Sequential、Flatten、Dense、およびビルドに使用する関数を渡します。関連するすべてのコード ライブラリをインポートするためのアーキテクチャのニューラル ネットワーク ドロップアウト。ここで説明したコード ライブラリの中には、少し馴染みのないものもあります。以下で詳しく説明します。

3. ハイパーパラメータ

  • 次の側面から正しいハイパーパラメータのセットを選択します:

  • まず、定義しましょう開始点としていくつかのハイパーパラメータを使用します。後で、さまざまなニーズに合わせて調整できます。ここでは、小さいバッチ サイズとして 128 を選択しました。実際、バッチ サイズには任意の値を指定できますが、多くの場合、2 の累乗サイズを使用するとメモリ効率が向上するため、これを最初に選択する必要があります。適切なバッチ サイズを決定する主な根拠は、バッチ サイズが小さすぎると収束が非常に面倒になり、バッチ サイズが大きすぎるとコンピューターのメモリに収まらない可能性があることに注意してください。
  • モデルの高速トレーニングを実現するために、エポック数 (トレーニング セット内の各サンプルが 1 つのトレーニングに参加する) を 50 に維持しましょう。エポック値が低いほど、小さくて単純なデータ セットに適しています。
  • 次に、非表示レイヤーを追加する必要があります。ここでは、各隠れ層に 128 個のニューロンを予約しました。もちろん、64 個と 32 個のニューロンを使用してテストすることもできます。この例では、MINST のような単純なデータ セットにこれより高い値を使用することはお勧めしません。
  • 0.01、0.05、0.1 など、さまざまな学習率を試すことができます。この場合は 0.01 のままにします。
  • 他のハイパーパラメータについては、減衰ステップと減衰率をそれぞれ 2000 と 0.9 に選択しました。そして、トレーニングが進むにつれて、学習率を下げるために使用される可能性があります。
  • ここでは、オプティマイザーとして Adamax を選択します。もちろん、Adam、RMSProp、SGD などの他のオプティマイザーを選択することもできます。
import tensorflow as tf
from tensorflow.keras.utils import to_categorical
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Flatten, Dense, Dropout
params = {
'dropout': 0.25,
'batch-size': 128,
'epochs': 50,
'layer-1-size': 128,
'layer-2-size': 128,
'initial-lr': 0.01,
'decay-steps': 2000,
'decay-rate': 0.9,
'optimizer': 'adamax'
}
mnist = tf.keras.datasets.mnist
num_class = 10
# split between train and test sets
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# reshape and normalize the data
x_train = x_train.reshape(60000, 784).astype("float32")/255
x_test = x_test.reshape(10000, 784).astype("float32")/255
# convert class vectors to binary class matrices
y_train = to_categorical(y_train, num_class)
y_test = to_categorical(y_test, num_class)
ログイン後にコピー

4. トレーニング セットとテスト セットを作成する

TensorFlow ライブラリには MNIST データセットも含まれているため、オブジェクトに対して datasets.mnist を呼び出してから、load_data() メソッドを呼び出して、トレーニング データ セット (60,000 サンプル) とテスト データ セット (10,000 サンプル) をそれぞれ取得します。

次に、トレーニング画像とテスト画像を再形成して正規化する必要があります。このうち、正規化により画像のピクセル強度が 0 ~ 1 の間に制限されます。

最後に、以前にインポートした to_categorical メソッドを使用して、トレーニング ラベルとテスト ラベルを分類されたラベルに変換します。これは、出力ラベル (つまり、0 ~ 9) が数値型ではなくクラスであることを TensorFlow フレームワークに伝えるために非常に重要です。

5. ニューラル ネットワーク アーキテクチャを設計する

次に、ニューラル ネットワーク アーキテクチャの設計方法を詳しく理解しましょう。

Flatten を追加して 2D 画像行列をベクトルに変換し、DNN (ディープ ニューラル ネットワーク) の構造を定義します。ここで、入力ニューロンはベクトル内の数値に対応します。

次に、Dense() メソッドを使用して 2 つの隠れた密層を追加し、前に定義した「params」ディクショナリから各ハイパーパラメータを抽出します。これらの層の活性化関数として「relu」(Rectified Linear Unit)を使用できます。これは、ニューラル ネットワークの隠れ層で最も一般的に使用される活性化関数の 1 つです。

次に、Dropout メソッドを使用して Dropout レイヤーを追加します。これは、ニューラル ネットワークをトレーニングする際の過学習を避けるために使用されます。結局のところ、過学習モデルはトレーニング セットを正確に記憶し、目に見えないデータ セットを一般化できない傾向があります。

输出层是我们网络中的最后一层,它是使用Dense() 方法来定义的。需要注意的是,输出层有10个神经元,这对应于类(数字)的数量。

# Model Definition
# Get parameters from logged hyperparameters
model = Sequential([
Flatten(input_shape=(784, )),
Dense(params('layer-1-size'), activatinotallow='relu'),
Dense(params('layer-2-size'), activatinotallow='relu'),
Dropout(params('dropout')),
Dense(10)
])
lr_schedule =
tf.keras.optimizers.schedules.ExponentialDecay(
initial_learning_rate=experiment.get_parameter('initial-lr'),
decay_steps=experiment.get_parameter('decay-steps'),
decay_rate=experiment.get_parameter('decay-rate')
)
loss_fn = tf.keras.losses.CategoricalCrossentropy(from_logits=True)
model.compile(optimizer='adamax',
loss=loss_fn,
metrics=['accuracy'])
model.fit(x_train, y_train,
batch_size=experiment.get_parameter('batch-size'),
epochs=experiment.get_parameter('epochs'),
validation_data=(x_test, y_test),)
score = model.evaluate(x_test, y_test)
# Log Model
model.save('tf-mnist-comet.h5')
ログイン後にコピー

6、训练

至此,我们已经定义好了架构。下面让我们用给定的训练数据,来编译和训练神经网络。

首先,我们以初始学习率、衰减步骤和衰减率作为参数,使用ExponentialDecay(指数衰减学习率)来定义学习率计划。

其次,将损失函数定义为CategoricalCrossentropy(用于多类式分类)。

接着,通过将优化器 (即:adamax)、损失函数、以及各项指标(由于所有类都同等重要、且均匀分布,因此我选择了准确性)作为参数,来编译模型。

然后,我们通过使用x_train、y_train、batch_size、epochs和validation_data去调用一个拟合方法,并拟合出模型。

同时,我们调用模型对象的评估方法,以获得模型在不可见数据集上的表现分数。

最后,您可以使用在模型对象上调用的save方法,保存要在生产环境中部署的模型对象。

7、小结

综上所述,我们讨论了为图像分类任务,训练深度神经网络的一些入门级的知识。您可以将其作为熟悉使用神经网络,进行图像分类的一个起点。据此,您可了解到该如何选择正确的参数集、以及架构背后的思考逻辑。

原文链接:https://www.kdnuggets.com/2022/12/guide-train-image-classification-model-tensorflow.html

以上がTensorFlow を使用して画像分類モデルをトレーニングするためのガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

世界で最も強力なオープンソース MoE モデルが登場。GPT-4 に匹敵する中国語機能を備え、価格は GPT-4-Turbo のわずか 1% 近くです 世界で最も強力なオープンソース MoE モデルが登場。GPT-4 に匹敵する中国語機能を備え、価格は GPT-4-Turbo のわずか 1% 近くです May 07, 2024 pm 04:13 PM

従来のコンピューティングを超える能力を備えているだけでなく、より低コストでより効率的なパフォーマンスを実現する人工知能モデルを想像してみてください。これは SF ではありません。世界で最も強力なオープンソース MoE モデルである DeepSeek-V2[1] が登場しました。 DeepSeek-V2 は、経済的なトレーニングと効率的な推論の特徴を備えた強力な専門家混合 (MoE) 言語モデルです。これは 236B のパラメータで構成されており、そのうち 21B は各マーカーをアクティブにするために使用されます。 DeepSeek67B と比較して、DeepSeek-V2 はパフォーマンスが優れていると同時に、トレーニング コストを 42.5% 節約し、KV キャッシュを 93.3% 削減し、最大生成スループットを 5.76 倍に高めます。 DeepSeek は一般的な人工知能を研究する会社です

こんにちは、電気アトラスです!ボストン・ダイナミクスのロボットが復活、180度の奇妙な動きにマスク氏も恐怖 こんにちは、電気アトラスです!ボストン・ダイナミクスのロボットが復活、180度の奇妙な動きにマスク氏も恐怖 Apr 18, 2024 pm 07:58 PM

Boston Dynamics Atlas は正式に電動ロボットの時代に突入します!昨日、油圧式アトラスが歴史の舞台から「涙ながらに」撤退したばかりですが、今日、ボストン・ダイナミクスは電動式アトラスが稼働することを発表しました。ボストン・ダイナミクス社は商用人型ロボットの分野でテスラ社と競争する決意を持っているようだ。新しいビデオが公開されてから、わずか 10 時間ですでに 100 万人以上が視聴しました。古い人が去り、新しい役割が現れるのは歴史的な必然です。今年が人型ロボットの爆発的な年であることは間違いありません。ネットユーザーは「ロボットの進歩により、今年の開会式は人間のように見え、人間よりもはるかに自由度が高い。しかし、これは本当にホラー映画ではないのか?」とコメントした。ビデオの冒頭では、アトラスは仰向けに見えるように地面に静かに横たわっています。次に続くのは驚くべきことです

MLP に代わる KAN は、オープンソース プロジェクトによって畳み込みまで拡張されました MLP に代わる KAN は、オープンソース プロジェクトによって畳み込みまで拡張されました Jun 01, 2024 pm 10:03 PM

今月初め、MIT やその他の機関の研究者らは、MLP に代わる非常に有望な代替案である KAN を提案しました。 KAN は、精度と解釈可能性の点で MLP よりも優れています。また、非常に少数のパラメーターを使用して、多数のパラメーターを使用して実行する MLP よりも優れたパフォーマンスを発揮できます。たとえば、著者らは、KAN を使用して、より小規模なネットワークと高度な自動化で DeepMind の結果を再現したと述べています。具体的には、DeepMind の MLP には約 300,000 個のパラメーターがありますが、KAN には約 200 個のパラメーターしかありません。 KAN は、MLP が普遍近似定理に基づいているのに対し、KAN はコルモゴロフ-アーノルド表現定理に基づいているのと同様に、強力な数学的基礎を持っています。以下の図に示すように、KAN は

AI が数学研究を破壊する!フィールズ賞受賞者で中国系アメリカ人の数学者が上位 11 件の論文を主導 | テレンス・タオが「いいね!」しました AI が数学研究を破壊する!フィールズ賞受賞者で中国系アメリカ人の数学者が上位 11 件の論文を主導 | テレンス・タオが「いいね!」しました Apr 09, 2024 am 11:52 AM

AI は確かに数学を変えつつあります。最近、この問題に細心の注意を払っている陶哲軒氏が『米国数学協会会報』(米国数学協会会報)の最新号を送ってくれた。 「機械は数学を変えるのか?」というテーマを中心に、多くの数学者が意見を述べ、そのプロセス全体は火花に満ち、ハードコアで刺激的でした。著者には、フィールズ賞受賞者のアクシャイ・ベンカテシュ氏、中国の数学者鄭楽軍氏、ニューヨーク大学のコンピューター科学者アーネスト・デイビス氏、その他業界で著名な学者を含む強力な顔ぶれが揃っている。 AI の世界は劇的に変化しています。これらの記事の多くは 1 年前に投稿されたものです。

Google は大喜び: JAX のパフォーマンスが Pytorch や TensorFlow を上回りました! GPU 推論トレーニングの最速の選択肢となる可能性があります Google は大喜び: JAX のパフォーマンスが Pytorch や TensorFlow を上回りました! GPU 推論トレーニングの最速の選択肢となる可能性があります Apr 01, 2024 pm 07:46 PM

Google が推進する JAX のパフォーマンスは、最近のベンチマーク テストで Pytorch や TensorFlow のパフォーマンスを上回り、7 つの指標で 1 位にランクされました。また、テストは最高の JAX パフォーマンスを備えた TPU では行われませんでした。ただし、開発者の間では、依然として Tensorflow よりも Pytorch の方が人気があります。しかし、将来的には、おそらくより大規模なモデルが JAX プラットフォームに基づいてトレーニングされ、実行されるようになるでしょう。モデル 最近、Keras チームは、ネイティブ PyTorch 実装を使用して 3 つのバックエンド (TensorFlow、JAX、PyTorch) をベンチマークし、TensorFlow を使用して Keras2 をベンチマークしました。まず、主流のセットを選択します

テスラのロボットは工場で働く、マスク氏:手の自由度は今年22に達する! テスラのロボットは工場で働く、マスク氏:手の自由度は今年22に達する! May 06, 2024 pm 04:13 PM

テスラのロボット「オプティマス」の最新映像が公開され、すでに工場内で稼働可能となっている。通常の速度では、バッテリー(テスラの4680バッテリー)を次のように分類します:公式は、20倍の速度でどのように見えるかも公開しました - 小さな「ワークステーション」上で、ピッキング、ピッキング、ピッキング:今回は、それがリリースされたハイライトの1つビデオの内容は、オプティマスが工場内でこの作業を完全に自律的に行​​い、プロセス全体を通じて人間の介入なしに完了するというものです。そして、オプティマスの観点から見ると、自動エラー修正に重点を置いて、曲がったバッテリーを拾い上げたり配置したりすることもできます。オプティマスのハンドについては、NVIDIA の科学者ジム ファン氏が高く評価しました。オプティマスのハンドは、世界の 5 本指ロボットの 1 つです。最も器用。その手は触覚だけではありません

DualBEV: BEVFormer および BEVDet4D を大幅に上回る、本を開いてください! DualBEV: BEVFormer および BEVDet4D を大幅に上回る、本を開いてください! Mar 21, 2024 pm 05:21 PM

この論文では、自動運転においてさまざまな視野角 (遠近法や鳥瞰図など) から物体を正確に検出するという問題、特に、特徴を遠近法 (PV) 空間から鳥瞰図 (BEV) 空間に効果的に変換する方法について検討します。 Visual Transformation (VT) モジュールを介して実装されます。既存の手法は、2D から 3D への変換と 3D から 2D への変換という 2 つの戦略に大別されます。 2D から 3D への手法は、深さの確率を予測することで高密度の 2D フィーチャを改善しますが、特に遠方の領域では、深さ予測に固有の不確実性により不正確さが生じる可能性があります。 3D から 2D への方法では通常、3D クエリを使用して 2D フィーチャをサンプリングし、Transformer を通じて 3D と 2D フィーチャ間の対応のアテンション ウェイトを学習します。これにより、計算時間と展開時間が増加します。

FisheyeDetNet: 魚眼カメラに基づいた最初のターゲット検出アルゴリズム FisheyeDetNet: 魚眼カメラに基づいた最初のターゲット検出アルゴリズム Apr 26, 2024 am 11:37 AM

目標検出は自動運転システムにおいて比較的成熟した問題であり、その中でも歩行者検出は最も初期に導入されたアルゴリズムの 1 つです。ほとんどの論文では非常に包括的な研究が行われています。ただし、サラウンドビューに魚眼カメラを使用した距離認識については、あまり研究されていません。放射状の歪みが大きいため、標準のバウンディング ボックス表現を魚眼カメラに実装するのは困難です。上記の説明を軽減するために、拡張バウンディング ボックス、楕円、および一般的な多角形の設計を極/角度表現に探索し、これらの表現を分析するためのインスタンス セグメンテーション mIOU メトリックを定義します。提案された多角形モデルの FisheyeDetNet は、他のモデルよりも優れたパフォーマンスを示し、同時に自動運転用の Valeo 魚眼カメラ データセットで 49.5% の mAP を達成しました。

See all articles