WIn10

安装cuda

先安装VS,然后根据自己的版本安装CUDA、

安装完后,打开cmd命令行输入nvcc -V,检测是否安装成功

 win10//ubuntu安装tensorflow-gpu与kears,并用minist测试

 

安装cuDDN

安装对应版本,解压后覆盖到CUDA的地址,默认为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1

 

使用anaconda安装tensorflow-gpu

创建一个新的环境 

conda create -n env_name python=version 

激活并进入环境中 

conda activate tensorflow

更换清华源(https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/)(也可使用其他源)

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --set show_channel_urls yes

安装

conda install tensorflow-gpu (或者是pip,注意版本,这里是1.x,需要安装keras,后续keras已经自带,不需要单独安装)

测试

 win10//ubuntu安装tensorflow-gpu与kears,并用minist测试

 安装keras

 conda install keras

 

使用jupyter

Jupyter Notebook

添加其他conda虚拟环境

https://blog.csdn.net/u011606714/article/details/77741324

 

Ubunt/18.04

1、安装驱动

2、nvidia-smi,查看自己的驱动和CUDA版本,没有cuda也可以在conda里装

3、安装anaconda

4、新建一个虚拟环境

5、激活虚拟环境,以下操作在虚拟环境中进行conda create -n env_name python=version 

pip 和 conda 更新清华源   https://mirrors.tuna.tsinghua.edu.cn/help/pypi/ 

6、conda list  看有没有cuda,cudnn,没有的话再装(conda install cudatoolkit     conda install cudnn)

7、conda install python==3.7 ,安装python是为了后面使用虚拟环境的python,不会和本机环境打架(如果已经装了,就不用再装了)

8、pip install tensorflow-gpu 

(安装的是tf2,里面自带keras。如果需要其他版本自行设定。  注意!!! tf2-gpu 需要cuda10.0,10.1会报错,至少截止目前(2019.11.20)是这样)

 

updata 2020.1.8

conda search tensorflow-gpu
conda install tensorflow-gpu=2.0.0

 

遇到的问题(重点):

记录遇到的一些环境问题
目前已知tf2-gpu无法在cuda10.1上运行,错误提示:缺少动态链接库

退回到cuda10.0,cudnn7,6,遇到Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
在 https://github.com/tensorflow/tensorflow/issues/24496 找到解决办法

```
import tensorflow as tf

config = tf.compat.v1.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.compat.v1.Session(config=config)
```

或者是

```

physical_devices = tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(physical_devices[0], True)

```

这个的意思大概是tf会默认占用所有闲置现存,然后加上这个后,就动态分配现存
看评论说,这个问题多出现在RTX显卡上。而且这种解决方法会影响速度,暂时没有其他方法

 

下面用搭建CNN测试环境

import tensorflow as tf
from tensorflow.keras import datasets, layers, models, losses

'''
    第一步:选择模型
'''
model = models.Sequential()
'''
   第二步:构建网络层
'''
# 第1层卷积,卷积核大小为3*3,32个,28*28为待训练图片的大小
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))
# 第2层卷积,卷积核大小为3*3,64个
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
# 第3层卷积,卷积核大小为3*3,64个
model.add(layers.Conv2D(64, (3, 3), activation='relu'))

model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))

model.summary()

'''
   第三步:编译
'''
# sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9,  nesterov=True)  # 优化函数,设定学习率(lr)等参数
# 使用交叉熵作为loss函数
# compile()方法只有三个参数: 优化器optimizer,损失函数loss和指标列表metrics
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

'''
   第四步:训练
   .fit的一些参数
   batch_size:对总的样本数进行分组,每组包含的样本数量
   epochs :训练次数
   shuffle:是否把数据随机打乱之后再进行训练
   validation_split:拿出百分之多少用来做交叉验证
   verbose:屏显模式 0:不输出  1:输出进度  2:输出每次的训练结果
   validation_data:指定验证集, 此参数将覆盖validation_spilt。
'''
(X_train, Y_train), (X_test, Y_test) = datasets.mnist.load_data()
# 使用Keras自带的mnist工具读取数据(第一次需要联网)
# 由于mist的输入数据维度是(num, 28, 28),这里需要把后面的维度直接拼起来变成784维
X_train = X_train.reshape(X_train.shape[0], 28, 28, 1).astype('float32') / 255
X_test = X_test.reshape(X_test.shape[0], 28, 28, 1).astype('float32') / 355


model.fit(X_train, Y_train, batch_size=200,
          epochs=20,  validation_split=0.2, verbose=1)

'''
    第五步:输出结果
'''
scores = model.evaluate(X_test, Y_test, batch_size=200)
print('Test loss:', scores[0])
print('Test accuracy:', scores[1])
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-05-19
  • 2021-06-26
  • 2021-12-05
  • 2021-12-15
  • 2021-09-01
  • 2021-08-08
猜你喜欢
  • 2021-08-04
  • 2021-05-26
  • 2021-07-02
  • 2021-06-24
  • 2021-05-01
  • 2021-12-01
相关资源
相似解决方案