質問内容
2つの2次元配列の演算においてメモリエラーが発生いたしました。
配列の要素数が多すぎてメモリ不足になることが原因だと思いますが、
PCのメモリを増やす以外で解決方法はありますでしょうか?
以下にサンプルコードを示します。
aの配列が1以上のときはbの配列の値にし、aの配列が0のときは0にするという処理です。
np.whereのところでメモリエラーが発生いたします。
大変お手数ですが、ご回答頂けると助かります。
試したこと
OpenCVに変更して試してみましたが、同じくメモリエラーとなりました。
サンプルコード
Python
1import numpy as np 2 3np.random.seed(0) 4a = np.round(np.random.rand(50000, 50000) * 10) 5b = np.round(np.random.rand(50000, 50000) * 10) 6 7b = np.where(a >= 1, b, 0) # ここで「MemoryError」
サンプルコード(OpenCV)
Python
1import numpy as np 2import cv2 3 4np.random.seed(0) 5a = np.round(np.random.rand(50000, 50000) * 10) 6b = np.round(np.random.rand(50000, 50000) * 10) 7 8ret, a = cv2.threshold(a, 1, 1, cv2.THRESH_BINARY) # ここで「cv::OutOfMemoryError」 9b = a * b
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/27 09:08
2019/09/27 09:16
2019/09/29 15:18