首页 > 其他分享 >使用GPU加速TensorFlow-Keras

使用GPU加速TensorFlow-Keras

时间:2023-04-25 13:12:54浏览次数:43  
标签:tensorflow Keras cuda TensorFlow print GPU CPU

之前一直在用CPU训练TensorFlow模型,现在来尝试一下GPU训练。

【1】安装GPU必要的软件环境

显卡:MX450(支持CUDA 11.7以下版本)

软件1:Visual Studio 2019 Community

软件2:Cuda 10.1 update2

软件3:cuDNN 8.0.5 for win10(x86) 

环境:在Anacodna中专门建立tensorflow_gpu环境

Python 3.7.16

cudnn 7.6.5

tensorflow-gpu 2.2.0

keras 2.3.1

tensorflow-cuda-keras版本对应如下:

参考文章:cuda安装https://blog.csdn.net/chen565884393/article/details/127905428

 【2】TensorFlow开启GPU加速

import tensorflow as tf
print('tensorflow version:',tf.__version__)  # 查看TensorFlow的版本
print('===================================================')
print('cuda available:',tf.test.is_built_with_cuda()) # 判断CUDA是否可用
print('===================================================')
print(tf.test.is_gpu_available())  # 查看cuda、TensorFlow_GPU和cudnn(选择下载,cuda对深度学习的补充)版本是否对应
print('===================================================')
gpus = tf.config.experimental.list_physical_devices(device_type='GPU') # 查看可用GPU
print(gpus)
import os
#选择使用某一块或多块GPU
#os.environ["CUDA_VISIBLE_DEVICES"] = "0,1"  # =右边"0,1",代表使用标号为0,和1的GPU
os.environ["CUDA_VISIBLE_DEVICES"] = "0"  # =右边"0",代表使用标号为0的GPU
# 查看可用GPU的详细信息
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
#  这时候在运行相应的代码,就可以看到在GPU上运行了。可以通过任务管理器-性能处查看GPU使用率。

【3】用Keras训练一个卷积神经网络

[CPU测试] tensorflow 3.9.16 Keras 2.11.0

迭代训练5次,每次消耗实践为12s、13s、14s、14s、12s,加上最后一步的1s,总共耗时66s。

打开任务管理器查看性能:CPU占满100%;用上了一些核显性能(可能是其他设备,不一定是训练消耗的);独显0%完全不用。

 

[GPU测试]

开始训练,但是报错了

ValueError: Error when checking input: expected input_1 to have 3 dimensions, but got array with shape (60000, 28, 28, 1)

 将输入层维度修改一下,从

改为

奇怪的是,使用CPU训练时并不需要修改这里的维度。可能是Keras与TensorFlow的版本与现在不同?

 修改后进行训练,结果如下:

 迭代训练5次,每次消耗实践为8s、6s、6s、6s、5s,加上最后一步的1s,总共耗时32s,比CPU耗时减少约50%,GPU加速成功了。

系统性能如下。可见,CPU占用仅42%;独显使用率一般在7%、8%,有时会突然跳到14%左右;核显虽有使用,但关系应该不大(其他程序占用)。

只是用到了如此少的GPU资源,就能获得几乎100%的速度提升,GPU加速还是太强了。可能是我的架构或者代码问题,GPU使用率还是偏低,如果进行相关优化、训练更大的模型,GPU使用率应该是可以更高。

 

 

 

 

标签:tensorflow,Keras,cuda,TensorFlow,print,GPU,CPU
From: https://www.cnblogs.com/steven913/p/17352258.html

相关文章

  • GPU服务研究学习...
    windows10版本安装CUDA,首先需要下载两个安装包CUDAtoolkit(toolkit就是指工具包)cuDNN #安装CUDA教程https://developer.nvidia.com/cuda-downloads #安装cuDNN教程https://developer.nvidia.com/cudnn 安装完毕后验证#查看Cuda版本nvcc--version #......
  • mindspore-gpu-2.0.0-alpha版本学习笔记
    使用docker容器运行:sudodockerrun-it-v/home/devil/shareData/root/shareData --runtime=nvidia--gpusall --nameUbuntu_x86_64swr.cn-south-1.myhuaweicloud.com/mindspore/mindspore-gpu-cuda11.1:2.0.0-alpha /bin/bash   ===========================......
  • 深度学习--全连接层、高阶应用、GPU加速
    深度学习--全连接层、高阶应用、GPU加速MSE均方差CrossEntropyLoss:交叉熵损失Entropy熵:1948年,香农将统计物理中熵的概念,引申到信道通信的过程中,从而开创了信息论这门学科,把信息中排除了冗余后的平均信息量称为“信息熵”。香农定义的“熵”又被称为香农熵或信息熵,即......
  • 如何配置一个用于深度学习的 GPU 服务器 [Ubuntu 18.04 LTS 为例]
    一、硬件配置CPUofInteli9-9980XE(18-core36-thread,@3.0-4.4GHz),RAMof128GB(DDR4),GPUofNVIDIARTX2080Ti*4(11GBGDDR6*4),andM.2NVMeSSDof1TB(/homewith256GBasswap),SATA3SSDof2TB(/ssd)andHDDof8TB*2(/dataand/proj).二......
  • keras图片生成器ImageDataGenerator参数详解
    keras图片生成器ImageDataGeneratorkeras.preprocessing.image.ImageDataGenerator(featurewise_center=False,samplewise_center=False,featurewise_std_normalization=False,samplewise_std_normalization=False,zca_whitening=False,zca_epsilon=1e-......
  • keras_preprocessing参数详解
    keras_preprocessing.image.image_data_generator.ImageDataGenerator.flow_from_directory()获取目录路径并生成一批增强数据。defflow_from_directory(self,directory:Any,target_size:Tuple[int,int]=(256,256),......
  • java调用python脚本,用到tensorflow、keras等第三方库
    https://blog.csdn.net/jstlovely/article/details/121247764?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168110434116800227452800%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168110434116800227452800&......
  • 使用GPU训练神经网络的历史
    我在一台没有GPU支持的Mac电脑本上本地部署了stable-diffusion-webui,并生成了一张图。这张图大概需要10分钟的时间才能生成,但如果有GPU支持的话,只需要几秒钟就能完成。这让我深刻体会到GPU的算力比CPU强大得多。GPU算力为啥远高于CPU更多的处理单元GPU在同样芯片面积上集成的处......
  • 关于PythonNet与TensorFlow的调试技巧
    1.使用TensorFlow2.x版本训练的模型,在导入时容易报错,不要跨版本训练或者调用模型。报错内容通常定位到restore方法。2.PythonNet调用py文件报错时,右键该文件执行后报错内容会一闪而过,可以右键使用Python编译器(Idel)打开,错误会详细显示,且内容与编辑器一样。3.TensorFlow1.9最......
  • GPU-CPU命令行缓冲区
    目录书上25页命令行缓冲区是一个循环队列,且有大小限制(书上说是几千)CPU调用GPU干活,就会往队列屁股后添加指令GPU看到队列头有指令,就开始干活受CPU限制,受GPU限制受CPU限制:cpu繁忙,向命令行缓冲区写命令很慢,没有命令那gpu就闲下来了受GPU限制:gpu繁忙,命令行缓冲区已经写满......