質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CUDA

CUDAは並列計算プラットフォームであり、Nvidia GPU(Graphics Processing Units)向けのプログラミングモデルです。CUDAは様々なプログラミング言語、ライブラリ、APIを通してNvidiaにインターフェイスを提供します。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

478閲覧

何故 cv2.cuda.getCudaEnabledDeviceCount() = 0 ?

inception

総合スコア14

CUDA

CUDAは並列計算プラットフォームであり、Nvidia GPU(Graphics Processing Units)向けのプログラミングモデルです。CUDAは様々なプログラミング言語、ライブラリ、APIを通してNvidiaにインターフェイスを提供します。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2023/01/20 12:08

Google Colabで
Pytorchでニューラルネットワークの訓練等にGPUの利用は可能な状態なのに、どうして
cv2.cuda.getCudaEnabledDeviceCount() = 0
でしょうか。

ちなみに、
img_src = cv2.imread('/content/drive/MyDrive/omicron.jpg')
mg_gpu_src = cv2.cuda_GpuMat()
はエラーにならなかったが、下記の文にエラーが発生しました。

img_gpu_src.upload(img_src)

error: OpenCV(4.6.0) /io/opencv/modules/core/include/opencv2/core/private.cuda.hpp:106: error: (-216:No CUDA support) The library is compiled without CUDA support in function 'throw_no_cuda'

さようならば
compiled with CUDA のライブラリーをどうやって利用できるのでしょうか。

どうぞよろしくお願いします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

inception

2023/01/20 21:12

すごいです! 助かりました。 お礼を申し上げます
meg_

2023/01/21 09:49

解決されましたでしょうか? 解決済であれば、解決策をご自身で回答していただき質問をクローズしましょう。
inception

2023/01/22 01:02 編集

お返事ありがとうございます。 新版のOpenCVをColaboでコンパイルする自体が成功したと感じました(約5時間かかりました)。content ディレクトリに色々サブディレクトリも生成されました。 ところが、 その後、cv2.cuda.getCudaEnabledDeviceCount() を実行したら、相変わらず0でした。 何か設定する必要あるかと思いました。 まずい事に、恐らく、『ランタイムのタイプを変更』でGPUに変更したタイミングで、これまで5時間も費やしたコンパイルの成果物はディレクトリとともに全部消えてしまいました。 困惑。
inception

2023/01/22 01:00 編集

基本問題がまだ分かっていません。 pytorchを使って、GPU経由の深層学習網の訓練は成功したのに、 どうして cv2.cuda.getCudaEnabledDeviceCount() は 0 なの? という問題ですね。
jbpb0

2023/01/22 09:48

> pytorchを使って、GPU経由の深層学習網の訓練は成功したのに、 どうして cv2.cuda.getCudaEnabledDeviceCount() は 0 なの? https://qiita.com/toroi-ex/items/905bd9de7c92dd082e78 に 「pipでインストールできるopencv-pythonやopencv-contrib-pythonでは、GPUは使えないですよね」 と書かれてるように、google colabにインストールされてる(python用の)opencvは、gpuを使えるようにコンパイルされてないからです なので、 https://qiita.com/toroi-ex/items/905bd9de7c92dd082e78 に書かれてるような手順でコンパイルして、それをpythonで使えるように設定する必要があります
jbpb0

2023/01/22 10:05 編集

> 『ランタイムのタイプを変更』でGPUに変更したタイミングで、これまで5時間も費やしたコンパイルの成果物はディレクトリとともに全部消えてしまいました。 その時に「ランタイムのタイプを変更」しなかったとしても、opencvのコンパイル後にgoogle colabを使い終わって、後日またgoogle colabを使っても、コンパイルしたopencvは無くなってます コンパイルしたopencvを後々にも使いたいなら、google driveをマウントして、そこを使ってコンパイルしましょう (コンパイルしたopencvが、google drive上に残るようにしましょう) https://startlab.jp/learning-python/colaboratory-gdrive/ https://ichi.pro/colab-no-gpu-de-opencv-o-shiyosuru-hoho-wa-41065314358367 の 「ここでできることの1つは、最初のステップの結果をGoogleドライブに保存することです(マウントする必要があります)。」 と書かれてるところから下も見てください (ファイル名やディレクトリ名は違うかもしれないので、適宜読み替えてください)
jbpb0

2023/01/22 10:06 編集

> その後、cv2.cuda.getCudaEnabledDeviceCount() を実行したら、相変わらず0でした。 を確認したタイミングが、 > 『ランタイムのタイプを変更』でGPUに変更したタイミングで、これまで5時間も費やしたコンパイルの成果物はディレクトリとともに全部消えてしまいました。 よりも後ならば、コンパイルした(gpuが使える)opencvが無くなった後なので、当然gpuは使えません
inception

2023/01/23 09:11

jbpb0 さん 丁寧なご指導ありがとうございます❣ これからやり直します。 終わったら、ここに様子を書きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問