windows10环境下 tensorflow-gpu 1.9.0 使用gpu和cpu进行训练神经网络时间对比

好不容易配好了tensorflow-gpu的环境,当然要试试使用gpu到底比用cpu快多少啦。在跑程序之前,我们先要知道程序所能调用的设备信息,在spyder中使用以下代码即可,当然其他编辑器也是可以的。

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

输入代码后,我自己的机子得到的结果如下,这个输出结果显示我能够调用的设备有两个,一个cpu,一个gpu,还有这个gpu的compute capability为5,也就是说我的这块gtx 950M显卡的计算能力为5。设备编号要记录一下,然后就是速度测试环节。

 

我用来进行测试速度的代码来自于《Python深度学习》这本书,作者是弗朗索瓦·肖莱,这本书我个人觉得非常不错,想要学习深度学习方面的可以看一下,如果没有这方面的经验,建议先从《深度学习入门》,作者是斋藤康毅,开始入手,也就是江湖人称的鱼书。扯远了,说回这段测试代码,这段代码也是非常经典,有接触过深度学习的应该都知道,手写数字的识别,只不过这次还使用了Keras框架,没配好环境的童鞋应该是无法运行这段代码的。接着,上代码。

import tensorflow as tf
from keras.datasets import mnist
from keras import models
from keras import layers
from keras.utils import to_categorical
with tf.device('/cpu:0'):   #选择使用的设备,设备编号之前已经得到
    (train_images,train_labels),(test_images,test_labels)=mnist.load_data()
    network=models.Sequential()
    network.add(layers.Dense(512,activation='relu',input_shape=(28*28,)))
    network.add(layers.Dense(10,activation='softmax'))
    network.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])
    train_images=train_images.reshape((60000,28*28))
    train_images=train_images.astype('float32')/255
    test_images=test_images.reshape((10000,28*28))
    test_images=test_images.astype('float32')/255
    train_labels=to_categorical(train_labels)
    test_labels=to_categorical(test_labels)
    network.fit(train_images,train_labels,epochs=5,batch_size=32)

特别要注意我进行了注释的那一行,那一行就是控制你的电脑选择设备的,gpu:0就是编号为0的gpu,cpu同理。

测试结果如下,先上cpu的运行结果:

每个epoch平均耗时14秒,每个step平均耗时235微秒,这还只是一个两层的神经网络呢,深一点的神经网络还不知道要消耗多少时间!

gpu的运行结果:

这次速度就快了很多,每个epoch平均耗时9秒,每个step平均耗时160微秒 ,相比于cpu的时间消耗平均减少32%,这已经是一个不错的速度了,而且,这还只是一个简单的神经网络,深度只有两层,如果训练的是深度比较大的卷积神经网络,那可能节约的时间会更多,当然那个就留着以后再来测试了,以后可能还会对Linux系统下的cpu和gpu训练神经网络的时间再做个对比,可以持续关注我哦。

ubuntu16.04系统下使用keras框架,cpu和gpu训练bp神经网络时间对比,可以见下面链接:

https://blog.csdn.net/qq_38279908/article/details/88817518

ubuntu16.04系统下使用keras框架,分别使用cpu和gpu训练卷积神经网络时间对比,可以见下面链接:

https://blog.csdn.net/qq_38279908/article/details/88839405

猜你喜欢

转载自blog.csdn.net/qq_38279908/article/details/88758080