情報詳細Q.1つのGPUに複数のディープラーニングモデルを保持させておくためにモデルそれぞれのメモリ使用量を削減したいです。何か方法はありますか。A.下記にGPUのメモリ(VRAM)使用量を削減する方法を列挙します。 optimize_for_inference を true にする (推論のみ)TensorRTを利用する (推論のみ、デバイスによっては効果なし)検出精度が満足できる範囲で image_width, image_height を小さくするbatch_size を小さくする学習時の実効バッチサイズを保ったまま batch_size を小さくするために batch_size_multiplier を併用するenhanced ではなく compact を使用するなど、ベースネットワークが複数選択できる場合は軽量なものを使用する (CL/OD/SE/AD/OCR-D/OCR-R)min_level と max_level を変える(OD)capacity を変更する(OD)patch_size を大きくする(GC-ADのlocal_network)complexity を小さくする(AD)set_system ('cudnn_deterministic', 'true') を使用する(デバイスによっては効果なし・推論速度は低下) ※略称で示したモデル種別は下記の通りです"GC-AD":"type"="gc_anomaly_detection"(グローバルアノマリー検出)"AD":"type"="anomaly_detection"(アノマリー検出 ※GCAD登場以降は基本的に使用しません)"CL":"type"="classification"(画像分類)"OD":"type"="detection"(オブジェクト検出、インスタンスセグメンテーション)"SE":"type"="segmentation"(セマンティックセグメンテーション、ディープラーニングベースエッジ検出)"OCR-D":"type"="ocr_detection"(DeepOCR検出コンポーネント)"OCR-R":"type"="ocr_recognition"(DeepOCR認識コンポーネント)DeepLearningにおいて、モデルのメモリ使用量は様々なパラメータによって影響され、適用可能なパラメータはモデルの種別によっても異なります。最も手軽なものは、optimize_for_inference を適用すること、TensorRTを使用することでしょう。これらは学習後のモデルを変更するのみです。この2つで不十分な場合に各種パラメータを変更して学習を行い、よりメモリ使用量の少ないモデルを作成します。また、画像分類のように処理時間が比較的高速な機能を使用する場合はGPUではなく CPU+OpenVINO で実行することも一つの手段です。その他、コストパフォーマンスの観点から、大容量のVRAMを持つGPUではなく、廉価なGPUを複数使用することが良い場合もあります。 添付ファイルタイトルディープラーニングでGPUのメモリ使用量を削減したいURL 名000008997公開状況公開済み検証状況未検証