Tensorflow-gpu版本安装过程简介--开始使用你的GPU加速吧!

1. 我的机器配置(穷学生的攒机之旅)

1.1 机器的来源

在上个月,我在闲鱼上疯狂捡漏,最终淘了一个800块的主机(后配了一块惠普500G的SSD,价格370)以及760的显示器,自己氪金(这能叫氪金???)在创新区整了一套我觉得蛮不错的生产力工具,总共花费大概是2000左右,比我5000的笔记本使用体验好多了(笔记本的屏幕还坏掉了哭唧唧)。由于现在大三了,这些机器我是绝对不舍得丢掉的,读到研究生估计也会拎着一起走,为了啥呢,还不是因为穷。

1.2 机器的配置

先上两个设备的配置:

主机的配置信息我思来想去还是用了智商检测大师...配置确实是物超所值了,只是主板没有m.2的接口,我只有重买了一块hp的sata接口的ssd,装了学校KMS上的系统,整的还是蛮舒服的。跑分大家都懂的,看看就好,之前是能到15w左右的hhh(有一个问题是我这个显卡玩lol的FPS居然会在60左右不太清楚是什么问题嘤嘤嘤,之前下CUDA的时候又给我优化了设置,最近准备再试试

显示器的配置我也要吹一吹,2k分辨率 + 32大尺寸,简直幸福感Max,敲代码(你骗鬼呢)和看番啥的都很舒服呢。

image

image
image

2. 开始配置环境

2.1 卸载之前的tensorflow版本

首先我是先装的cpu版本的tensorflow,我使用以下命令对其进行了卸载,后面如果不是tensorflow-gpu,安装和卸载的时候都是默认cpu版本。

pip uninstall tensorflow
2.2 开始安装环境

安装gpu版本的tensorflow是需要CUDA以及CUDNN的支持的,所以我先去下载了这两个东西,给大家列一下我的各配置的版本叭,应该不会有问题,我再次贪心安装了CUDA最新版本10.1的,结果十分的凄凉还是卸载了重新装了CUDA10.0版本的,所以建议大家还是去下载LTS(长期支持)版本的一些库,毕竟相关的生态可能没有那么快更新

首先怎么看自己的显卡支持的CUDA版本呢,这里补充一点的是CUDA和CUDNN都是只支持Nvidia显卡的,A卡我没有装过,请A卡的同学自己右上角叭(劝退)。

1.桌面右键点击NVIDIA控制面板 -> 点击控制面板的左下角系统信息 -> 组件中可以看到支持的CUDA版本

我理解的是,这是GPU能够支持的最新版本的CUDA库的版本,应该是向下兼容的,所以我下载CUDA10.0才能正确运行

image
image
image

2.开始下载相关的库

这里我就只放链接了,安装过程中我没有出现什么问题,CUDA我选择的是NetWork版本的(就是运行exe再下载相关组件),并且我也是直接精简模式一把梭没有出现什么问题.注意cuDNN的话要注册才能下载

工具及库 版本 下载链接
Python 3.6.8 https://www.python.org/downloads/
CUDA cuda_10.0.130_win10_network https://developer.nvidia.com/cuda-toolkit-archive
cuDNN cuDNN v7.5.1 (April 22, 2019), for CUDA 10.0 https://developer.nvidia.com/rdp/cudnn-download
tensorflow-gpu 1.13.1 pip install tensorflow-gpu(此条命令是从tuna上抓的最新版本的包)
2.3 完成环境的配置

提醒一点,cuDNN因为是个库,所以你需要将其下的对应文件夹里面的内容挪到CUDA的库中

CUDA的文件路径一般是在“C:\Program Files\NVIDIA GPU Computing Toolkit”

(强烈建议大家使用listary,用过一次就会爱上他,使用listary的同学也可以直接搜索GPU,如下图所示)

并保证CUDA在环境变量中(安装时一般是自动添加的),你在cmd里面输入nvcc -V即可查看

将cuDNN中的bin中的文件挪到CUDA的bin中

将cuDNN中的include中的文件挪到CUDA的include中

将cuDNN中的lib中的文件挪到CUDA的lib中

image
image
image
2.4. 尽情愉悦的享受GPU加速的快感吧

我大概花了2个小时来完成这次的GPU版本tensorflow的环境搭建,在看到结果出来的那一刻还是挺愉悦的,赶紧跑了个keras的MNIST数据集试试水,发现大概google的colab的速度的1/3左右,时间方面比CPU版本的快了7-8倍,已经很心满意足了,希望大家也能享受到机器学习的快感,下面贴上跑MNIST的CNN的代码以及速度展示

如果没有较好GPU的同学可以去薅Google的羊毛,因为里面是使用jupyter的,所以你可能需要学习一些相关的知识,你可以在里面使用clone命令克隆你Github上面的项目并在这上面跑跑,希望大家的AI之旅玩的愉快,

Colab的传送门: https://colab.research.google.com

image
image
# 第一次使用的话首先会下载一个MNIST数据集
from keras.datasets import mnist

(train_data, train_labels), (test_data, test_labels) = mnist.load_data()
print('train_shape {} {}'.format(train_data.shape, train_labels.shape))
print('test_shape {} {}'.format(test_data.shape, test_labels.shape))

from keras import models
from keras import layers
import numpy as np
from keras.utils.np_utils import to_categorical


def model_conv():
    model = models.Sequential()
    model.add(
        layers.Conv2D(32, (3, 3), activation='relu',
                      input_shape=(28, 28, 1)))  # 32个3*3的卷积核
    model.add(layers.MaxPooling2D(2, 2))  # 2*2 的池化

    model.add(layers.Conv2D(64, (3, 3), activation='relu'))  # 64个3*3的卷积核
    model.add(layers.MaxPooling2D(2, 2))  # 2*2 的池化

    model.add(layers.Conv2D(64, (3, 3), activation='relu'))  # 64个3*3的卷积核
    model.add(layers.Flatten())  # 拉伸

    model.add(layers.Dense(64, activation='relu'))
    model.add(layers.Dense(10, activation='softmax'))
    model.compile(
        optimizer='rmsprop', loss='categorical_crossentropy', metrics=['acc'])
    return model


if __name__ == '__main__':
    x_train = train_data.reshape((60000, 28, 28, 1))
    x_train = x_train.astype('float32') / 255
    x_test = test_data.reshape((10000, 28, 28, 1))
    x_test = x_test.astype('float32') / 255

    y_train = to_categorical(train_labels)
    y_test = to_categorical(test_labels)

    print(x_train.shape, y_train.shape)

    model = model_conv()
    model.summary()
    his = model.fit(
        x_train, y_train, epochs=5, batch_size=64, validation_split=0.1)

    loss, acc = model.evaluate(x_test, y_test)
    print("loss: {}, acc: {}".format(loss, acc))
    model.save("my_mnist_model.h5")

    print("Model have saved! ")

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,529评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,015评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,409评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,385评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,387评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,466评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,880评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,528评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,727评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,528评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,602评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,302评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,873评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,890评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,132评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,777评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,310评论 2 342