情報詳細Q.1つのGPUに複数のディープラーニングモデルを保持させておくためにモデルそれぞれのメモリ使用量を削減したいです。何か方法はありますか。A.下記にGPUのメモリ(VRAM)使用量を削減する方法を列挙します。 optimize_for_inferenceをtrueにする(推論のみ)TensorRTを利用する(推論のみ、デバイスによっては効果なし)検出精度が満足できる範囲でimage_width, image_heightを小さくするbatch_sizeを小さくする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公開状況公開済み検証状況未検証