文章目录

  • 1. 安装tensorflow-gpu框架
  • 1.1 下载CUDA工具包。
  • 1.2 下载cudnn。将cudnn的解压下的三个文件bin , include , lib 对CUDA安装目录下的同名文件进行替换
  • 注:在哪找你的CUDA
  • 2. 选择安装TensorFlow的anaconda环境
  • 3. 安装TensorFlow
  • 3.1 直接pip安装(第一种方法)
  • 3.2 先安装好.whl文件,再pip(第二种方法)
  • 3.3 测试tensorflow-gpu安装完成
  • 4. 安装keras框架
  • 5. 测试keras安装完成



keras为tensorflow提供了封装更加高级的API,如果读者不想了解tensorflow的细节,那么keras将会是一个可以“偷懒”的选择。

keras官方github链接:

https://link.zhihu.com/?target=https%3A//github.com/keras-team/keras

注:本人均安装的最新版,也就是tf 2.0、CUDA11

1. 安装tensorflow-gpu框架

1.1 下载CUDA工具包。

https://developer.nvidia.com/cuda-toolkit-archive

基于keras 的resnet python环境配置 keras搭建_github

1.2 下载cudnn。将cudnn的解压下的三个文件bin , include , lib 对CUDA安装目录下的同名文件进行替换

基于keras 的resnet python环境配置 keras搭建_CUDA_02

注:在哪找你的CUDA

当你安装CUDA的时候,选择过一个路径,CUDA安装完后那个路径会没了。别担心,那个路径只是让你选择临时下载路径,等到安装完成后,CUDA会自动按在C盘。

你可以去这里找:C:\Program Files\NVIDIA GPU Computing Toolkit

另外,你可以看一下你的环境变量,如果CUDA安装完后没有添加,那么你就手动添加,如图:

基于keras 的resnet python环境配置 keras搭建_github_03

2. 选择安装TensorFlow的anaconda环境

就是你的TensorFlow要安装在anaconda的那个环境里

  • 查看anaconda环境
conda info --env

基于keras 的resnet python环境配置 keras搭建_tensorflow_04

我上面是两个环境,如果你想在base下安装TensorFlow就直接安装即可,如果想另起一个环境也可以

  • 比如新建一个环境,名字叫:tensorflow-gpu
conda create -n tensorflow-gpu python=3.7

如果你创建环境,你需要进入

# base 是你的环境名,上面有两个环境:base、tensorflow-gpu
activate base

3. 安装TensorFlow

3.1 直接pip安装(第一种方法)

这种方法对于网速不好的同学还是不建议的,当然如果你公司的网速好,那是完全OK的,下面给出清华源的:

pip install tensorflow-gpu==2.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

3.2 先安装好.whl文件,再pip(第二种方法)

这里给出的 是1.6的,如果想安装2.0的whl,可以自行百度

因为目前的tensorflow不支持高版本的CUDA。笔者提供一个适用于CUDA9.1的.whl文件,提取码:n78t

https://pan.baidu.com/share/init?surl=dXhgsbzrcWKMdH5q_RPTfQ

将其复制到C:\Windows\System32以后,在cmd窗口:

pip install tensorflow_gpu-1.6.0-cp36-cp36m-win_amd64.whl

3.3 测试tensorflow-gpu安装完成

1.X版本:

import tensorflow as tf
hello = tf.constant('hello,TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

2.X版本:

import tensorflow as tf
tf.compat.v1.disable_eager_execution()          # 保证sess.run()能够正常运行
hello = tf.constant('hello,TensorFlow!')
# sess = tf.Session()
sess = tf.compat.v1.Session()                   # 版本2.0的函数
print(sess.run(hello))

4. 安装keras框架

在你刚刚的TensorFlow环境里安装Keras

pip install keras==2.3.1

5. 测试keras安装完成

以下是MNIST手写数字数据集,如果能正常运行,说明keras安装完成

from keras.datasets import mnist
from keras.utils import to_categorical

train_X, train_y = mnist.load_data()[0]
train_X = train_X.reshape(-1, 28, 28, 1)
train_X = train_X.astype('float32')
train_X /= 255
train_y = to_categorical(train_y, 10)

from keras.models import Sequential
from keras.layers import Conv2D, MaxPool2D, Flatten, Dropout, Dense
from keras.losses import categorical_crossentropy
from keras.optimizers import Adadelta

model = Sequential()
model.add(Conv2D(32, (5,5), activation='relu', input_shape=[28, 28, 1]))
model.add(Conv2D(64, (5,5), activation='relu'))
model.add(MaxPool2D(pool_size=(2,2)))
model.add(Flatten())
model.add(Dropout(0.5))
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))

model.compile(loss=categorical_crossentropy,
             optimizer=Adadelta(),
             metrics=['accuracy'])

batch_size = 100
epochs = 8
model.fit(train_X, train_y,
         batch_size=batch_size,
         epochs=epochs)

test_X, test_y = mnist.load_data()[1]
test_X = test_X.reshape(-1, 28, 28, 1)
test_X = test_X.astype('float32')
test_X /= 255
test_y = to_categorical(test_y, 10)
loss, accuracy = model.evaluate(test_X, test_y, verbose=1)
print('loss:%.4f accuracy:%.4f' %(loss, accuracy))

基于keras 的resnet python环境配置 keras搭建_tensorflow_05

基于keras 的resnet python环境配置 keras搭建_CUDA_06


另外,如果你想查看你的TensorFlow安装的是什么版本,也可以:

import os
from tensorflow.python.client import device_lib
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "99"
print(device_lib.list_local_devices())

如果输出的是:

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 11034982094171819019
]

说明是CPU版本,如果直接conda remove tensorflow, 卸载cpu版本的同时,误删了两者同时需要使用的文件,会导致tensorflow-gpu又需要重新下载,相信大家体会过tensorflow的完整下载是多么慢。

解决办法:直接 conda install tensroflow-gpu==2.0.0, 就把CPU版本的改为GPU版本了

最后查看tensorflow版本:

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 11553754156730994166
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 3141979340
locality {
  bus_id: 1
  links {
  }
}
incarnation: 2138728576519569114
physical_device_desc: "device: 0, name: GeForce GTX 1050 Ti, pci bus id: 0000:01:00.0, compute capability: 6.1"
]