From 107b6a10ce82c48a15189265c4d8bda765bbdf3d Mon Sep 17 00:00:00 2001 From: xuma Date: Mon, 15 Aug 2022 19:36:29 +0800 Subject: [PATCH] one key push update --- .../_posts/Tensorflow中的GPU配置及内存分配.md | 90 +++++++++++++++++- ...16e4af7df2acf0be93a444928e300bd564a089.png | Bin 0 -> 7966 bytes 2 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 source/images/5bc51343e21394d4f82ce4a63916e4af7df2acf0be93a444928e300bd564a089.png diff --git a/source/_posts/Tensorflow中的GPU配置及内存分配.md b/source/_posts/Tensorflow中的GPU配置及内存分配.md index 0ecdff87..9ea89c31 100644 --- a/source/_posts/Tensorflow中的GPU配置及内存分配.md +++ b/source/_posts/Tensorflow中的GPU配置及内存分配.md @@ -30,7 +30,95 @@ nvidia-sim简称NVSMI,提供监控GPU使用情况和更改GPU状态的功能 更详细的介绍:https://blog.csdn.net/C_chuxin/article/details/82993350 CMD中输入: -``` + +```plant nvidia-smi ``` +![图 2](../images/5bc51343e21394d4f82ce4a63916e4af7df2acf0be93a444928e300bd564a089.png) + +- GPU:本机中的GPU编号(有多块显卡的时候,从0开始编号)图上GPU的编号是:0 + +- Fan:风扇转速(0%-100%),N/A表示没有风扇 + +- Name:GPU类型,图上GPU的类型是:Tesla T4 + +- Temp:GPU的温度(GPU温度过高会导致GPU的频率下降) + +- Perf:GPU的性能状态,从P0(最大性能)到P12(最小性能),图上是:P0 + +- Persistence-M:持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时花费的时间更少,图上显示的是:off + +- Pwr:Usager/Cap:能耗表示,Usage:用了多少,Cap总共多少 + +- Bus-Id:GPU总线相关显示,domain:bus:device.function + +- Disp.A:Display Active ,表示GPU的显示是否初始化 + +- Memory-Usage:显存使用率 + +- Volatile GPU-Util:GPU使用率 + +- Uncorr. ECC:关于ECC的东西,是否开启错误检查和纠正技术,0/disabled,1/enabled + +- Compute M:计算模式,0/DEFAULT,1/EXCLUSIVE_PROCESS,2/PROHIBITED + +- Processes:显示每个进程占用的显存使用率、进程号、占用的哪个GPU + +隔几秒刷新一下显存状态:nvidia-smi -l 秒数 + +隔两秒刷新一下GPU的状态:nvidia-smi -l 2 + +## tensorflow的显卡使用方式 + +### 1、直接使用 + +这种方式会把当前机器上所有的显卡的剩余显存基本都占用,注意是机器上所有显卡的剩余显存。 + +```python +with tf.compat.v1.Session() as sess: + # 输入图片为256x256,2个分类 + shape, classes = (224, 224, 3), 20 + # 调用keras的ResNet50模型 + model = keras.applications.resnet50.ResNet50(input_shape = shape, weights=None, classes=classes) + model.compile(optimizer="adam", loss="sparse_categorical_crossentropy", metrics=["accuracy"]) + + # 训练模型 categorical_crossentropy sparse_categorical_crossentropy + # training = model.fit(train_x, train_y, epochs=50, batch_size=10) + model.fit(train_x,train_y,validation_data=(test_x, test_y), epochs=20, batch_size=6,verbose=2) + # # 把训练好的模型保存到文件 + model.save('resnet_model_dog_n_face.h5') +``` + +### 2、分配比例使用 + +```python +from tensorflow.compat.v1 import ConfigProto# tf 2.x的写法 +config =ConfigProto() +config.gpu_options.per_process_gpu_memory_fraction=0.6 +with tf.compat.v1.Session(config=config) as sess: + model = keras.applications.resnet50.ResNet50(input_shape = shape, weights=None, classes=classes) +``` + +### 3. 动态申请使用 + +**这种方式是动态申请显存的,只会申请内存,不会释放内存。而且如果别人的程序把剩余显卡全部占了,就会报错。** + +```python +config = tf.compat.v1.ConfigProto() +config.gpu_options.allow_growth = True +session = tf.compat.v1.InteractiveSession(config=config) +with tf.compat.v1.Session(config=config) as sess: + model +``` + +### 4 指定GPU + +在有多块GPU的服务器上运行tensorflow的时候,如果使用python编程,则可指定GPU,代码如下: + +```python +import os +os.environ["CUDA_VISIBLE_DEVICES"] = "2" +``` + +> 未完待续... diff --git a/source/images/5bc51343e21394d4f82ce4a63916e4af7df2acf0be93a444928e300bd564a089.png b/source/images/5bc51343e21394d4f82ce4a63916e4af7df2acf0be93a444928e300bd564a089.png new file mode 100644 index 0000000000000000000000000000000000000000..163596864833f3f13cfa3443816a12754b40c8e0 GIT binary patch literal 7966 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