tensorflowがPythonシェルの内部からのGPUアクセラレーションを使用しているかどうかを確認するにはどうすればよいですか?


303

私は2番目の答えを使用して、私のUbuntu 16.04でtensorflowインストールされている、ここで UbuntuがaptのCUDAのインストール組み込みだと。

今私の質問は、テンソルフローが本当にGPUを使用しているかどうかをどのようにテストできるかです。私はgtx 960m gpuを持っています。私がimport tensorflowこれが出力であるとき

I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally

この出力は、tensorflowがgpuを使用しているかどうかを確認するのに十分ですか?


1
ログに次のようなものが表示されるはずです:I tensorflow / core / common_runtime / gpu / gpu_device.cc:838] Creating TensorFlow device(/ gpu:0)->(device:0、name:GeForce GTX 980、pci bus id :0000:03:00.0)
Yaroslav Bulatov

2
ありますlog_device_placementアプローチが答えに。最も信頼性の高い方法は、このコメントに指定されているタイムラインを見ることである:github.com/tensorflow/tensorflow/issues/...
ヤロスラフBulatov

はい、Yao Zhangの回答に従ってこの出力を取得しました...
Tamim Addari

@YaroslavBulatovはどのログにありますか?それはファイルに書き込みますか、それともそのようなステートメントが表示されるかどうかをどこで確認しますか?
チャーリーパーカー、

1
stdoutまたはstderrに書き込みます
Yaroslav Bulatov

回答:


290

いいえ、グラフの異なるノードが異なるデバイス上にある可能性があるため、「オープンCUDAライブラリ」で十分とは言えません。

使用されているデバイスを確認するには、次のようにログデバイスの配置を有効にします。

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

このタイプの出力についてコンソールを確認してください。


17
私はこれを試しましたが、まったく何も印刷されません。なぜそうなるのでしょうか?
Qubix 2017

8
ジュピターノートでそれをしましたか?
Tamim Addari 2017年

27
出力は、Jupyter Notebookを実行したコンソールから生成される場合があります。
musically_ut

18
Tensorflow V2の更新された回答を取得できますか(tf.Sessionsはサポートされていません)。
iyop45

6
@ iyop45 tensorflow V2の場合、コマンドはビット修正される:sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))
Vandan

276

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))他の回答や公式のTensorFlow ドキュメントで概説されているを使用する以外に、計算をgpuに割り当てて、エラーがあるかどうかを確認することができます。

import tensorflow as tf
with tf.device('/gpu:0'):
    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
    b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
    c = tf.matmul(a, b)

with tf.Session() as sess:
    print (sess.run(c))

ここに

  • "/ cpu:0":マシンのCPU。
  • "/ gpu:0":マシンのGPU(ある場合)。

GPUがあり、それを使用できる場合は、結果が表示されます。そうしないと、長いスタックトレースでエラーが発生します。最終的には次のようなものになります:

デバイスをノード 'MatMul'に割り当てることができません:このプロセスにその仕様に一致するデバイスが登録されていないため、明示的なデバイス仕様 '/ device:GPU:0'を満たすことができませんでした


最近、いくつかの役立つ関数がTFに登場しました:

セッションで使用可能なデバイスを確認することもできます。

with tf.Session() as sess:
  devices = sess.list_devices()

devices のようなものを返します

[_DeviceAttributes(/job:tpu_worker/replica:0/task:0/device:CPU:0, CPU, -1, 4670268618893924978),
 _DeviceAttributes(/job:tpu_worker/replica:0/task:0/device:XLA_CPU:0, XLA_CPU, 17179869184, 6127825144471676437),
 _DeviceAttributes(/job:tpu_worker/replica:0/task:0/device:XLA_GPU:0, XLA_GPU, 17179869184, 16148453971365832732),
 _DeviceAttributes(/job:tpu_worker/replica:0/task:0/device:TPU:0, TPU, 17179869184, 10003582050679337480),
 _DeviceAttributes(/job:tpu_worker/replica:0/task:0/device:TPU:1, TPU, 17179869184, 5678397037036584928)

17
結果:[[22. 28.] [49. 64.]]
George Pligoropoulos

6
@GeorgePligor結果はここではそれほど重要ではありません。結果があり、GPUが使用されたか、エラーが発生したか、つまりGPUが使用されなかった
サルバドールダリ

1
これは私にはうまくいきませんでした。nvidia-dockerなどによって実行されるDockerコンテナー内でこれを実行しました。ただし、エラーは発生せず、CPUが動作します。しばらく計算されるように、マトリックスを少し(10k * 10k)増やしました。CPU使用率は100%になりましたが、GPUはいつものようにクールなままでした。
pascalwhoop 2017

コンソールで実行すると「一致するデバイスがありません」というエラーが表示されます。pycharmのようなIDEではエラーは発生しません。私が使ったセッションに関連していると思いますが、コンソールでは異なります。
cn123h

わかりやすい。GPUが利用可能な場合、それは次のようなものを印刷しますFound device 0 with properties: name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.582 pciBusID: 0000:02:00.0 totalMemory: 10.92GiB freeMemory: 10.76GiB
Leoli

166

次のコードは、テンソルフローで使用できるすべてのデバイスを提供します。

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

出力例

[name: "/ cpu:0" device_type: "CPU" memory_limit:268435456 locality {} incarnation:4402277519343584096、

名前: "/ gpu:0" device_type: "GPU" memory_limit:6772842168 locality {bus_id:1} incarnation:7471795903849088328 physical_device_desc: "device:0、name:GeForce GTX 1070、pci bus id:0000:05:00.0"]


9
これが最良の答えです。
lolski

3
このコマンドが「GPU」のエントリを返さない場合、それは私のマシンに単にGPUがあるか、またはtensorflowがそれを見つけることができないことを意味しますか?
mercury0114

@ mercury0114どちらでもかまいません。たとえば、gpuはあるがtensorflow-gpuが適切にインストールされていない場合があります。
jimijazz

4
私は反対する、これがないではない質問に答える:それはデバイスについてではありません利用できるが、工夫を使用します。そして、それはまったく別の話になる可能性があります!(例えばTFは、デフォルトで1つのGPUを使用します。
Mayou36

名前: "/ device:GPU:0" device_type: "GPU" memory_limit:10711446324 locality {bus_id:1 links {}} incarnation:17935632445266485019 physical_device_desc: "device:0、name:GeForce RTX 2080 Ti、pci bus id:0000: 01:00.0、計算機能:7.5 "]
kamran kausar

89

これを実現する簡単な方法があると思います。

import tensorflow as tf
if tf.test.gpu_device_name():
    print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
else:
    print("Please install GPU version of TF")

通常は次のように印刷されます

Default GPU Device: /device:GPU:0

これは、これらの冗長なログよりも私には簡単に思えます。


同意した。上記のアプローチよりも簡単です。使用しているGPUのリストを出力します。おかげで
user907629

2
すべての中で最高
echan00

これは有効なテストではありません。tensorflowのGPUバージョンがインストールされている場合でも、elseステートメントに戻ります。
Goddard、

68

Tensorflow 2.0

セッションは2.0では使用されなくなりました。代わりに、次のものを使用できますtf.test.is_gpu_available

import tensorflow as tf

assert tf.test.is_gpu_available()
assert tf.test.is_built_with_cuda()

エラーが発生した場合は、インストールを確認する必要があります。


これはTF 1.14(おそらくいくつかの古いバージョン)でも動作します!
Overdrivr

6
今すぐ行うことをお勧めしますtf.config.list_physical_devices('GPU')
Roy Shilkrot

@Roy Shilkrot 'tf.config.list_physical_devices(' GPU ')'は
Tensorflow

1
@joselquin TF v2.xのドキュメントには、それが機能するはずであると記載されています:tensorflow.org/api_docs/python/tf/config/experimental/…、私はそれが私のために機能することを確認できます。
Roy Shilkrot、

29

これにより、トレーニング中にGPUを使用したテンソルフローも確認されますか?

コード

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

出力

I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 730
major: 3 minor: 5 memoryClockRate (GHz) 0.9015
pciBusID 0000:01:00.0
Total memory: 1.98GiB
Free memory: 1.72GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 730, pci bus id: 0000:01:00.0)
Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: GeForce GT 730, pci bus id: 0000:01:00.0
I tensorflow/core/common_runtime/direct_session.cc:255] Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: GeForce GT 730, pci bus id: 0000:01:00.0

5
答えが機能する理由に少し説明を追加してください(何log_device_placementをするか、出力でCPUとGPUを比較する方法は?)。それはあなたの答えの質を向上させます!
Nander Speerstra、2016

25

他の回答に加えて、以下はテンソルフローのバージョンにGPUサポートが含まれていることを確認するのに役立ちます。

import tensorflow as tf
print(tf.test.is_built_with_cuda())

7
警告:TensorFlowがGPUでコンパイルされているかどうかがわかります。GPUが使用されているかどうかではありません。(たとえば、ドライバーが正しくインストールされていない場合、 "is_built_with_cuda()"がtrueであってもCPUが使用されます。)
Ricardo Cruz

19

では、まずipython shellターミナルとimportTensorFlow から起動します:

$ ipython --pylab
Python 3.6.5 |Anaconda custom (64-bit)| (default, Apr 29 2018, 16:14:56) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.
Using matplotlib backend: Qt5Agg

In [1]: import tensorflow as tf

今、私たちがすることができます見て、次のコマンドを使用してコンソールでGPUのメモリ使用量を:

# realtime update for every 2s
$ watch -n 2 nvidia-smi

importTensorFlowを編集しただけで、まだGPUを使用していないため、使用状況の統計は次のようになります。

tf非gpuの使用

GPUのメモリ使用量が非常に少ない(約700MB)ことに注意してください。GPUのメモリ使用量が0 MBになることもあります。


次に、コードにGPUをロードします。に示すようにtf documentation、次を実行します。

In [2]: sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

これで、ウォッチの統計に、次のように更新されたGPU使用メモリが表示されます。

tf gpu-watch

ここで、ipythonシェルからのPythonプロセスが約7 GBのGPUメモリをどのように使用しているかを確認します。


PS コードの実行中にこれらの統計を引き続き監視して、GPUの使用状況が時間の経過とともにどれだけ激しいかを確認できます。


1
答えにスターを付けたいです。これはゴールデンです
Zain Rizvi

18

これにより、Tensorflowで利用可能なデバイスのリストが表示されます(Py-3.6の下)。

tf = tf.Session(config=tf.ConfigProto(log_device_placement=True))
tf.list_devices()
# _DeviceAttributes(/job:localhost/replica:0/task:0/device:CPU:0, CPU, 268435456)

男私が誤ってあなたの質問に投票しました...あなたの質問を編集した場合、私は私の投票を取り消します
Francesco Boi

14

私はnvidia-smiを使用してGPUの使用状況を監視することを好みます。プログラムの開始時に大幅に増加する場合は、テンソルフローがGPUを使用していることを強く示しています。


これは間接的な方法です
papabiceps '26 / 09/26

nvdia-smiを使用してGPUの使用状況を監視するにはどうすればよいですか?
Razin

cudaをインストールした後。nvidia-smiがシステムにあるはずです。私は通常、使用状況を監視するために「nvidia-smi -l」を使用します。
scott huang 2017年

3
watch nvidia-smiを使用して、2秒ごとに画面を更新することもできます
Perseus14

nvidia-smiがうまくいくのを見てください。私のpythonプロセスがGPUを使用していることも出力で確認できます
formica

9

Tensorflowの最近の更新により、次のように確認できます。

tf.test.is_gpu_available( cuda_only=False, min_cuda_compute_capability=None)

これはTrue、GPUがによって使用されているTensorflow場合に戻り、Falseそれ以外の場合にます。

デバイスがdevice_name必要な場合は、次のように入力できますtf.test.gpu_device_name()。詳細はこちらから


8

Jupyterで次のコマンドを実行します。

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

環境を適切に設定すると、「jupyter notebook」を実行したターミナルに次の出力が表示されます。

2017-10-05 14:51:46.335323: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\common_runtime\gpu\gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Quadro K620, pci bus id: 0000:02:00.0)
Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: Quadro K620, pci bus id: 0000:02:00.0
2017-10-05 14:51:46.337418: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\common_runtime\direct_session.cc:265] Device mapping:
/job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: Quadro K620, pci bus id: 0000:02:00.0

Nvidia Quodro K620でTensorFlowを使用しています。


Jupyterはまったく必要ありません。質問を複雑にしないでください
Patrizio Bertoni

1
一部のユーザーは、JupyterでGPUが使用可能であることを確認したい場合があります。さらに、これはPythonスクリプトから実行できます。
ワッフルキャット

8

コマンドラインからgpuをクエリするのが最も簡単です:

nvidia-smi

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.98                 Driver Version: 384.98                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 980 Ti  Off  | 00000000:02:00.0  On |                  N/A |
| 22%   33C    P8    13W / 250W |   5817MiB /  6075MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1060      G   /usr/lib/xorg/Xorg                            53MiB |
|    0     25177      C   python                                      5751MiB |
+-----------------------------------------------------------------------------+

学習がバックグラウンドプロセスの場合、pid jobs -pの元のpidはnvidia-smi


6

次のコードを実行して、現在GPUを使用しているかどうかを確認できます。

import tensorflow as tf
tf.test.gpu_device_name()

出力がの場合は''、使用しているCPUだけであることを意味します。
出力がそのようなものであれば/device:GPU:0、それはGPU動作することを意味します。


次のコードを使用して、どちらGPUを使用しているかを確認します。

from tensorflow.python.client import device_lib 
device_lib.list_local_devices()

出力がの場合、' 'どうすればよいですか?
Jason

@Jason GPUバージョンを再インストールするだけです。
Hu Xixi

6

これをjupyterノートブックの上部に置きます。不要なものをコメント化します。

# confirm TensorFlow sees the GPU
from tensorflow.python.client import device_lib
assert 'GPU' in str(device_lib.list_local_devices())

# confirm Keras sees the GPU (for TensorFlow 1.X + Keras)
from keras import backend
assert len(backend.tensorflow_backend._get_available_gpus()) > 0

# confirm PyTorch sees the GPU
from torch import cuda
assert cuda.is_available()
assert cuda.device_count() > 0
print(cuda.get_device_name(cuda.current_device()))

注意: TensorFlow 2.0のリリースに伴い、KerasがTF APIの一部として含まれるようになりました。

もともとここで答え


5

Tensorflow 2.0の場合

import tensorflow as tf

tf.test.is_gpu_available(
    cuda_only=False,
    min_cuda_compute_capability=None
)

ここにソース

他のオプションは:

tf.config.experimental.list_physical_devices('GPU')

1
is_gpu_available(tensorflow.python.framework.test_utilから)は非推奨であり、将来のバージョンでは削除される予定です。
Himanshu Teotia

5

TENSORFLOWの更新> = 2.1。

TensorFlowがGPUを使用しているかどうかを確認する推奨方法は次のとおりです。

tf.config.list_physical_devices('GPU') 

TensorFlow 2.1の時点でtf.test.gpu_device_name()、前述のように非推奨になりました。


3

これは、tf.sessionbash から直接利用できるデバイスをリストするために使用している行です。

python -c "import os; os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'; import tensorflow as tf; sess = tf.Session(); [print(x) for x in sess.list_devices()]; print(tf.__version__);"

利用可能なデバイスとテンソルフローバージョンを出力します。次に例を示します。

_DeviceAttributes(/job:localhost/replica:0/task:0/device:CPU:0, CPU, 268435456, 10588614393916958794)
_DeviceAttributes(/job:localhost/replica:0/task:0/device:XLA_GPU:0, XLA_GPU, 17179869184, 12320120782636586575)
_DeviceAttributes(/job:localhost/replica:0/task:0/device:XLA_CPU:0, XLA_CPU, 17179869184, 13378821206986992411)
_DeviceAttributes(/job:localhost/replica:0/task:0/device:GPU:0, GPU, 32039954023, 12481654498215526877)
1.14.0

3

以下のスニペットは、gpuをテストするのに非常に便利です。

Tensorflow 2.0テスト

import tensorflow as tf
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
with tf.device('/gpu:0'):
    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
    b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
    c = tf.matmul(a, b)

with tf.Session() as sess:
    print (sess.run(c))

Tensorflow 1テスト

import tensorflow as tf
with tf.device('/gpu:0'):
    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
    b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
    c = tf.matmul(a, b)

with tf.Session() as sess:
    print (sess.run(c))

3

以下は、GPUデバイスの名前も返します。

import tensorflow as tf
tf.test.gpu_device_name()

このコマンドの出力が空の文字列である場合...どのようにデバッグしますか?
zthomas.nc

3

tensotflow 2.0の場合> =

import tensorflow as tf
sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))

ここに画像の説明を入力してください


3
>>> import tensorflow as tf 
>>> tf.config.list_physical_devices('GPU')

2020-05-10 14:58:16.243814: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcuda.so.1
2020-05-10 14:58:16.262675: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-05-10 14:58:16.263119: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1555] Found device 0 with properties:
pciBusID: 0000:01:00.0 name: GeForce GTX 1060 6GB computeCapability: 6.1
coreClock: 1.7715GHz coreCount: 10 deviceMemorySize: 5.93GiB deviceMemoryBandwidth: 178.99GiB/s
2020-05-10 14:58:16.263143: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.1
2020-05-10 14:58:16.263188: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcublas.so.10
2020-05-10 14:58:16.264289: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcufft.so.10
2020-05-10 14:58:16.264495: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcurand.so.10
2020-05-10 14:58:16.265644: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusolver.so.10
2020-05-10 14:58:16.266329: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcusparse.so.10
2020-05-10 14:58:16.266357: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudnn.so.7
2020-05-10 14:58:16.266478: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-05-10 14:58:16.266823: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:981] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-05-10 14:58:16.267107: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1697] Adding visible gpu devices: 0
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

@AmitaiIrronによって提案されたように:

このセクションは、GPUが見つかったことを示します

2020-05-10 14:58:16.263119: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1555] Found device 0 with properties:

pciBusID: 0000:01:00.0 name: GeForce GTX 1060 6GB computeCapability: 6.1
coreClock: 1.7715GHz coreCount: 10 deviceMemorySize: 5.93GiB deviceMemoryBandwidth: 178.99GiB/s

そして利用可能な物理デバイスとして追加されました

2020-05-10 14:58:16.267107: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1697] Adding visible gpu devices: 0

[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

GPUが使用されているかどうかを示す出力のセクションをポイントすると便利です。
アミタイIrron

@AmitaiIrron提案をありがとう、私はそれがもう少し明確であることを望みます。
bLeDy

2

TensorFlowのインストールでGPUアクセラレーションが使用されているかどうかをテストするオプションがいくつかあります。

3つの異なるプラットフォームで次のコマンドを入力できます。

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
  1. Jupyter Notebook-Jupyter Notebookを実行しているコンソールを確認します。使用されているGPUを確認できます。
  2. Python Shell-出力を直接見ることができます。(注-2番目のコマンドの出力を変数 'sess'に割り当てないでください。それが役立つ場合)。
  3. Spyder-コンソールで次のコマンドを入力します。

    import tensorflow as tf tf.test.is_gpu_available()


2

Tensorflow 2.1

GPUでのメモリ使用量をnvidia-smiで検証できる簡単な計算。

import tensorflow as tf 

c1 = []
n = 10

def matpow(M, n):
    if n < 1: #Abstract cases where n < 1
        return M
    else:
        return tf.matmul(M, matpow(M, n-1))

with tf.device('/gpu:0'):
    a = tf.Variable(tf.random.uniform(shape=(10000, 10000)), name="a")
    b = tf.Variable(tf.random.uniform(shape=(10000, 10000)), name="b")
    c1.append(matpow(a, n))
    c1.append(matpow(b, n))

1

TensorFlow 2.0を使用している場合は、これをループで使用してデバイスを表示できます。

with tf.compat.v1.Session() as sess:
  devices = sess.list_devices()
devices

1

tensorflow 2.xを使用している場合:

sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))

0

JupyterまたはIDEで次のコマンドを実行して、TensorflowがGPUを使用しているかどうかを確認します。 tf.config.list_physical_devices('GPU')


この回答は、ここでの残りの回答にどのように役立ちますか?
ComputerScientist
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.