0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Error: Session cannot generate requests tensorflow の解決方法

Posted at

表題のエラーに数時間苦労しました...
もし同様のエラーでお悩みの方の参考となれば幸いです.

ハマりポイント

VScode上で,GPUとTensorFlowを用いて学習させたところ,モデルのトレーニングを行うセルで,突然以下のエラーが発生するようになりました.

Error: Session cannot generate requests tensorflow

また,一度このエラーが発生すると,以降はどのセルにおいても同様のエラーが発生するようになります.

環境

Ubuntu 18.04
VScode 1.61
Python 3.8
Tensorflow 2.5

解決方法

結論から言うと,無駄なプロセスにGPUメモリが割かれていて,十分なメモリが確保できないことが原因の一つであると考えられます.
そのため,まずは,現在のGPUプロセスを確認してみます.

以下のコマンドから,GPUの状況を確認してください.

~$ nvidia-smi -l 1

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.73.01    Driver Version: 460.73.01    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  RTX A6000           On   | 00000000:81:00.0 Off |                  Off |
| 30%   37C    P8    20W / 300W |  48679MiB / 48685MiB |      0%      Default |
|                               |   ↑ここの使用量が異常に多い|                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  Quadro P2200        On   | 00000000:C1:00.0  On |                  N/A |
| 54%   48C    P0    28W /  75W |   1568MiB /  5057MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A     27642      C   ...nv_tf2_*******/bin/python    47407MiB | <=無駄
|    0   N/A  N/A     28308      C   ...nv_tf2_*******/bin/python     1269MiB | <=無駄
|    1   N/A  N/A      2180      G   /usr/lib/xorg/Xorg                109MiB |
|    1   N/A  N/A      2449      G   /usr/bin/gnome-shell              118MiB |
|    1   N/A  N/A      3610      G   /usr/lib/xorg/Xorg                454MiB |
|    1   N/A  N/A      3733      G   /usr/bin/gnome-shell              148MiB |
|    1   N/A  N/A      4909      G   ...AAAAAAAAA= --shared-files      203MiB |
|    1   N/A  N/A     12491      G   ...AAAAAAAAA= --shared-files       40MiB |
|    1   N/A  N/A     27642      C   ...nv_tf2_*******/bin/python      183MiB | <=無駄
|    1   N/A  N/A     27974      G   ...AAAAAAAAA= --shared-files      116MiB |
|    1   N/A  N/A     28308      C   ...nv_tf2_*******/bin/python      183MiB | <=無駄
+-----------------------------------------------------------------------------+

出力結果を見ると, GPU:0であるRTX A6000Memory-Usageが異常に多いことがわかります.
さらに,対応する処理を実行していないにも関わらず,無駄なプロセスが残っていることがわかります.
そこで,以下のコマンドを実行することで,無駄なプロセスを強制終了して,メモリの確保を行います.

sudo kill -9 ( プロセス番号 PID)
    ※ -9:強制終了オプション

これで,対応するプロセス(今回は,27642,28308)を強制終了することで,明示的にメモリの確保を行うことができます.

おそらく表題のエラーは,様々な原因に拠って発生するため,本記事の方法で必ず解決できるとは思いませんので,参考程度に活用してください.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?