89826


resnet101を用いて、画像の4クラス分類をしたいのですが、環境構築がうまくいきません。  
自分のPCではないのですがGPUに2080を搭載したPCではうまく実行できているのでプログラムの問題ではないはずです。

クラス分類のプログラムでtensorflowをanacondaのspyderで起動しようとすると、以下の1枚目の画像の画面で止まるか、2,3枚目の画像のようなエラーが出ます。どのような対策をすればいいでしょうか。  
どなたか解決策がわかる方、アドバイスをいただけると幸いです。よろしくお願いします。

画像  
[![1枚目 Connecting to
kernel](https://i.stack.imgur.com/SCyJu.png)](https://i.stack.imgur.com/SCyJu.png)

[![2枚目 an error occured while starting to
kernel①](https://i.stack.imgur.com/9nEPQ.png)](https://i.stack.imgur.com/9nEPQ.png)

[![an error occured while starting to
kernel②](https://i.stack.imgur.com/sEDfc.png)](https://i.stack.imgur.com/sEDfc.png)

PCスペック:  
・CPU intel Core i7-10700  
・メモリ 16GB -> 48GB(32GB追加)  
・SSD 256GB -> 1TBを別で追加  
・GPU NVIDIA GeForce RTX 3070 Ti

環境  
・Windows10  
・python3.8  
・tensorflow-gpu 2.4.0  
・CUDA 11.4  
・cuDNN 8.4.0  
・NVIDIAドライバー 472.84  
・anacondaのspyder 5.1.5で実行

### 試したこと

たくさん試したので、覚えている限り。  
・CUDA 11.0や11.7での実行  
・anacondaのアンインストール、再インストール  
・tensorflow-gpu 2.3.0(CUDA 10.1)で実行 ->
kernelのエラーは出なくなったが、全ての画像を1つめのクラスに分類してしまう。あとめっちゃ重い。  
・NVIDIAのGPUドライバーのバージョンを下げる。(現在472.84)  
・spyder-kernels 2.1.3のインストール  
・jupyter_client 5.3.4をインストール->6.1.12にアップデート  
・pyzmqを22.3.0にアップデート  
・ipykernel 6.9.1をインストール

ちなみに、GPUを認識しているか確かめるために、以下のコードを実行したところ

[code]

    from tensorflow.python.client import device_lib
    device_lib.list_local_devices()
    
[/code]

以下のような出力を得ました。

[code]

    2022-06-19 15:55:56.086356: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library cudart64_110.dll
    
    2022-06-19 15:55:56.086356: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library cudart64_110.dll
    2022-06-19 15:55:58.624579: I tensorflow/core/platform/cpu_feature_guard.cc:142] This 
    TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the 
    following CPU instructions in performance-critical operations:  AVX2
    To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
    2022-06-19 15:55:58.628109: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library nvcuda.dll
    2022-06-19 15:55:58.648654: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found 
    device 0 with properties: 
    pciBusID: 0000:01:00.0 name: NVIDIA GeForce RTX 3070 Ti computeCapability: 8.6
    coreClock: 1.8GHz coreCount: 48 deviceMemorySize: 8.00GiB deviceMemoryBandwidth: 566.30GiB/s
    2022-06-19 15:55:58.648687: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library cudart64_110.dll
    2022-06-19 15:55:58.673972: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library cublas64_11.dll
    2022-06-19 15:55:58.674015: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library cublasLt64_11.dll
    2022-06-19 15:55:58.685174: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library cufft64_10.dll
    2022-06-19 15:55:58.691414: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library curand64_10.dll
    2022-06-19 15:55:58.699329: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library cusolver64_10.dll
    2022-06-19 15:55:58.707119: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library cusparse64_11.dll
    2022-06-19 15:55:58.708915: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library cudnn64_8.dll
    2022-06-19 15:55:58.708980: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1862] Adding 
    visible gpu devices: 0
    
    2022-06-19 15:55:56.086356: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library cudart64_110.dll
    2022-06-19 15:55:58.624579: I tensorflow/core/platform/cpu_feature_guard.cc:142] This 
    TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the 
    following CPU instructions in performance-critical operations:  AVX2
    To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
    2022-06-19 15:55:58.628109: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library nvcuda.dll
    2022-06-19 15:55:58.648654: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found 
    device 0 with properties: 
    pciBusID: 0000:01:00.0 name: NVIDIA GeForce RTX 3070 Ti computeCapability: 8.6
    coreClock: 1.8GHz coreCount: 48 deviceMemorySize: 8.00GiB deviceMemoryBandwidth: 566.30GiB/s
    2022-06-19 15:55:58.648687: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library cudart64_110.dll
    2022-06-19 15:55:58.673972: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library cublas64_11.dll
    2022-06-19 15:55:58.674015: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library cublasLt64_11.dll
    2022-06-19 15:55:58.685174: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library cufft64_10.dll
    2022-06-19 15:55:58.691414: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library curand64_10.dll
    2022-06-19 15:55:58.699329: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library cusolver64_10.dll
    2022-06-19 15:55:58.707119: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library cusparse64_11.dll
    2022-06-19 15:55:58.708915: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] 
    Successfully opened dynamic library cudnn64_8.dll
    2022-06-19 15:55:58.708980: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1862] Adding 
    visible gpu devices: 0
    2022-06-19 15:55:59.078777: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1261] Device 
    interconnect StreamExecutor with strength 1 edge matrix:
    2022-06-19 15:55:59.078810: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1267]      0 
    2022-06-19 15:55:59.078820: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1280] 0:   N 
    2022-06-19 15:55:59.078952: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1406] Created 
    TensorFlow device (/device:GPU:0 with 6582 MB memory) -> physical GPU (device: 0, name: NVIDIA 
    GeForce RTX 3070 Ti, pci bus id: 0000:01:00.0, compute capability: 8.6)
    2022-06-19 15:55:59.079545: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA 
    devices, tf_xla_enable_xla_devices not set
    
[/code]

06/27 追記:  
@kunif様、@merino様に提案していただいた方法を行ったのですが、残念ながらうまくいきませんでした。お二人共ありがとうございました。  
・試したこと  
①メモリ増設  
GPU専用メモリを増やすことが可能ならばもしかしたらうまくいくかも?  
②学習画像数削減  
元々495枚の画像でImageDataGeneratorにより4倍拡張をしておりましたが、387枚まで減らし、拡張も最低限の2倍まで減らしてもエラーが出てしまいます。  
カーネルエラーの様子がちょっとだけ変わったので一応画像を添付しておきます。

やはりタスクマネージャーを見ていると、CUDAを起動した瞬間にエラーが出るのでそこに問題があると思うのですが、どなたかわかる方がいらしたらぜひ教えてください。よろしくお願いします。  
あと、専用GPUメモリを8GBから増やす方法もあるのでしょうか。

[![カーネルエラーの様子がちょっとだけ変わりました](https://i.stack.imgur.com/Qo7ls.png)](https://i.stack.imgur.com/Qo7ls.png)


CC BY-SA 4.0
2022-06-19T07:17:14.980
89470
2022-07-08T01:38:36.803
2022-06-27T10:41:21.450
52054
52054
question
python python3 tensorflow cuda spyder
spyderでtensorflowを使用する際にエラーが出ます。


自己解決?とまでは言いませんが、学習プログラム自体は動きました。  
何が問題だったかはいまだにわかりませんが、とりあえず結果的に動くようになった経緯を記しておきます。

・cuDNNの中身がCUDAのフォルダに入っていなかった。(これはエラーの原因としてはかなり大きかったと思うのですが、これを直してもエラーが出続けたので別にも原因があります)  
->ダウンロードしたcuDNNファイルをCUDAのフォルダで解凍。  
・CUDA 11.7にさらに変更。GPUドライバとの互換性を考えて、11.7にしました。  
・Visual Studio 2022ビルドツールのダウンロード、「C++ によるデスクトップ開発 」と「v143 ビルドツール用 C++/CLI
サポート（最新）」をインストール。  
(CUDA 11.7はVS2022でないとダメらしい)  
・ZLIB DLL のダウンロードとインストール  
コマンドプロンプトを管理者として実行してコマンドからインストール  
・tensorflow-gpu 2.9.0のインストール(CUDA 11.7が最新なので、こちらも最新に合わせた)  
・batch_sizeを縮小。  
私のデータ数ではbatch_size=16でもスペック的に足りないようなことをエラーで言われたので、batch_size=4で実行したらうまくいきました。(batch_size=8も試してみます)

参考: <https://www.kkaneko.jp/tools/win/tensorflow2.html>

学習時間がいつもより長いことと、タスクマネージャーを確認したらGPUメモリの「cuda」項目がなく、「3D」の項目が100%近くまで使われていることに違和感を覚えていますが、とりあえず動いたので、解決とさせていただきます。

皆様ありがとうございました。


CC BY-SA 4.0
2022-07-08T01:38:36.803
89826
2022-07-08T01:38:36.803
52054
89470
answer