問題タブ [data-augmentation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - カスタム画像データ拡張により、TensorFlow2.0 でメモリ リークが発生する
オブジェクト検出のための地域提案ネットワークに取り組んでいます。データを拡張したい場合は、画像と対応するバウンディング ボックス (拡大縮小、回転など) の両方を拡張する必要があります + 入力として画像マスクもあり、これも拡張する必要があります。そこで、データ拡張用のカスタム関数を作成しました。
パイプラインは次のとおりです。
tf.data.Dataset
読み込まれた画像、ラベル (バウンディング ボックスの座標)、およびマスクを含む Python ジェネレーターから作成します。
コードは追加の拡張を続けますが、拡張を追加するとメモリリークが発生し始めるため、この部分は重要です。
- 関数
augment_dataset(tf_dataset)
はデータセットの拡張を呼び出します。1 つの増強を除いてすべて正常に動作します (すべての増強はこのように行われますが、これだけが非常に高いメモリ リーク (RAM 使用量) を引き起こします):
- 関数は、比率
aug.shrink(tensor: tf.Tensor, vertical: float = 1, horizontal: float = 1)
に基づいて画像、ラベル、マスクのサイズを変更します。私のネットワークは、画像の動的サイズ (使用する理由) を受け入れ、ラベル (境界ボックス) の形式は次のとおりです。vertical
horizontal
tf.shape
(xcenter, ycenter, width, height)
サイズ変更にOpenCVとnumpyの組み合わせを使用したバージョンも試しましたtf.py_function
が、機能しませんでした。誰もそのような問題に遭遇しましたか?
ご協力ありがとうございました。