Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu

人工智能30

(一)卸载cuda10.2

参考帖子:

Nvidiajetsonnano配置CUDA9CUDNN7.1.5 - 百度文库

1、卸载cuda

查看已安装cuda

#通过dpkg命令,查看相关cuda安装的包
dpkg -l | grep -i cuda

查询出来是这些,可以根据查询出来的包来⽤apt-get卸载

(下面不是自己的,贴了别人的做演示)

sudo apt-get remove cuda-cublas-10-0
sudo apt-get remove cuda-repo-l4t-10-0-local-10.0.166
sudo apt-get remove cuda-toolkit-10-0
sudo apt-get remove cuda-cudart-10-0
sudo apt-get remove cuda-license-10-0

卸载cuda,我这⾥⼀次性卸载

sudo apt-get remove cuda*

2、卸载cudnn

查询cudnn相关已安装包

dpkg -l | grep -i cudnn

卸载cudnn

sudo apt-get remove libcudnn8*

3、卸载nvinfer

查询nvinfer相关已安装包

dpkg -l | grep -i libnvinfer

卸载nvinfer

sudo apt-get remove libnvinfer*

4、卸载visionwork(根据⾃⼰需求来选择卸载)

查询visionwork相关已安装包

dpkg -l | grep -i vision

卸载visionwork

sudo apt-get remove libvisio*

5、卸载opencv(根据⾃⼰需求来选择卸载)

查询opencv相关已安装包

dpkg -l | grep -i opencv

卸载opencv

sudo apt-get remove libopencv*

(二)下载cuda9、cudnn7

参考帖子:

arm安装cuda9.0,tensorflow-gpu, jetson tx2安装Jetpack踩坑合集 - 水木清扬 - 博客园

Jetson TX2 安装 cuda9.0 及 cudnn7 超详细(真实亲测) - 灰信网(软件开发博客聚合)

1、在下面网站下载.run文件

Jetson Download Center | NVIDIA Developer

Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu

2、将文件拷贝到ubuntu16上,操作(注意:ubuntu18不可以)

先给777权限,再 ./ xxx.run

(等待安装。。。)

(注意:路径中不能有 中文!!!)

Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu

Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu

3、打开 jetpack_download 文件夹

Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu

下载完成后文件是这些:
cuda-repo-l4t-9-0-local_9.0.252-1_arm64.deb
libcudnn7_7.1.5.14-1+cuda9.0_arm64.deb
libcudnn7-dev_7.1.5.14-1+cuda9.0_arm64.deb
libcudnn7-doc_7.1.5.14-1+cuda9.0_arm64.deb
libnvinfer4_4.1.3-1+cuda9.0_arm64.deb
libnvinfer-dev_4.1.3-1+cuda9.0_arm64.deb
libnvinfer-samples_4.1.3-1+cuda9.0_arm64.deb
libgie-dev_4.1.3-1+cuda9.0_arm64.deb

(三)安装cuda9、cudnn7

(根据这些顺序来安装)

(去到下载好解压的⽂件夹中,命令⾏输⼊)

1、安装cuda

sudo dpkg -i cuda-repo-l4t-9-0-local_9.0.252-1_arm64.deb
sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub
sudo apt update
sudo apt-get install cuda-toolkit-9-0

2、安装cudnn

由于都是 .deb 文件,因此直接使用 下面的命令安装即可:

sudo dpkg -i libcudnn7_7.1.5.14-1+cuda9.0_arm64.deb
sudo dpkg -i libcudnn7-dev_7.1.5.14-1+cuda9.0_arm64.deb
sudo dpkg -i libcudnn7-doc_7.1.5.14-1+cuda9.0_arm64.deb

3 、安装nvinfer

sudo dpkg -i libnvinfer4_4.1.3-1+cuda9.0_arm64.deb
sudo dpkg -i libnvinfer-dev_4.1.3-1+cuda9.0_arm64.deb
sudo dpkg -i libnvinfer-samples_4.1.3-1+cuda9.0_arm64.deb

4 、安装libgie

sudo dpkg -i libgie-dev_4.1.3-1+cuda9.0_arm64.deb

(四)配置环境变量

1、修改cuda的环境变量(没有gedit可以⽤vim)

sudo gedit ~/.bashrc

打开后,拉到最下⾯,将原来的cuda10的环境变量都删除掉。

写⼊

export CUBA_HOME=/usr/local/cuda-9.0
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-9.0/bin:/usr/local/bin/cmake:$PATH

保存退出,更新环境变量

source ~/.bashrc

2、cudnn安装完成后,其实是直接安装到了默认安装路径usr/include和usr/lib下的,因此需要将其拷贝到cuda安装路径下:

sudo cp /usr/include/cudnn.h /usr/local/cuda/include/
sudo cp /usr/lib/aarch64-linux-gnu/libcudnn* /usr/local/cuda/lib64/

然后执行下面命令,用重新生成cudnn库的软连接

cd /usr/local/cuda/lib64

sudo chmod +r libcudnn*

sudo rm -rf libcudnn.so libcudnn.so.7
sudo ln -s libcudnn.so.7.1.5 libcudnn.so.7
sudo ln -s libcudnn.so.7 libcudnn.so

sudo ldconfig

到此,cuda 及 cudnn 安装就完成了。

(五)测试

1、测试cuda版本

nvcc -V

打印出cuda9.0成功

2、测试cudnn版本

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
得到
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 1
#define CUDNN_PATCHLEVEL 5
--
#define CUDNN_VERSION    (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#include "driver_types.h"

可知,当前的 cudnn 版本是 7.1.5。

3、检查cudnn

玩转Jetson Nano(二)检查已安装组件_贝克汉鸭的博客-CSDN博客

Jetson-nano中已经安装好了cuDNN,并有例子可供运行,我们运行一下例子,也正好验证上面的CUDA

cd /usr/src/cudnn_samples_v7/mnistCUDNN
sudo make
sudo chmod a+x mnistCUDNN
./mnistCUDNN

如果成功,如下所示

(下图中的gcc版本可能有出入)

cudnnGetVersion() : 7105 , CUDNN_VERSION from cudnn.h : 7105 (7.1.5)
Host compiler version : GCC 4.8.4
There are 1 CUDA capable devices on your machine :
device 0 : sms  1  Capabilities 5.3, SmClock 921.6 Mhz, MemSize (Mb) 3956, MemClock 12.8 Mhz, Ecc=0, boardGroupID=0
Using device 0

Testing single precision
Loading image data/one_28x28.pgm
Performing forward propagation ...

Testing cudnnGetConvolutionForwardAlgorithm ...

Fastest algorithm is Algo 1
Testing cudnnFindConvolutionForwardAlgorithm ...

^^^^ CUDNN_STATUS_SUCCESS for Algo 0: 0.354323 time requiring 0 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 1: 2.859844 time requiring 3464 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 5: 8.539687 time requiring 203008 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 7: 8.603073 time requiring 2057744 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 2: 9.619896 time requiring 57600 memory
Resulting weights from Softmax:
0.0000000 0.9999399 0.0000000 0.0000000 0.0000561 0.0000000 0.0000012 0.0000017 0.0000010 0.0000000
Loading image data/three_28x28.pgm
Performing forward propagation ...

Resulting weights from Softmax:
0.0000000 0.0000000 0.0000000 0.9999288 0.0000000 0.0000711 0.0000000 0.0000000 0.0000000 0.0000000
Loading image data/five_28x28.pgm
Performing forward propagation ...

Resulting weights from Softmax:
0.0000000 0.0000008 0.0000000 0.0000002 0.0000000 0.9999820 0.0000154 0.0000000 0.0000012 0.0000006

Result of classification: 1 3 5

Test passed!

Testing half precision (math in single precision)
Loading image data/one_28x28.pgm
Performing forward propagation ...

Testing cudnnGetConvolutionForwardAlgorithm ...

Fastest algorithm is Algo 1
Testing cudnnFindConvolutionForwardAlgorithm ...

^^^^ CUDNN_STATUS_SUCCESS for Algo 0: 0.206719 time requiring 0 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 1: 0.257865 time requiring 3464 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 2: 0.354739 time requiring 28800 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 4: 8.522656 time requiring 207360 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 7: 8.905677 time requiring 2057744 memory
Resulting weights from Softmax:
0.0000001 1.0000000 0.0000001 0.0000000 0.0000563 0.0000001 0.0000012 0.0000017 0.0000010 0.0000001
Loading image data/three_28x28.pgm
Performing forward propagation ...

Resulting weights from Softmax:
0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000714 0.0000000 0.0000000 0.0000000 0.0000000
Loading image data/five_28x28.pgm
Performing forward propagation ...

Resulting weights from Softmax:
0.0000000 0.0000008 0.0000000 0.0000002 0.0000000 1.0000000 0.0000154 0.0000000 0.0000012 0.0000006

Result of classification: 1 3 5

Test passed!

接下来可以编译opencv、tensorflow-gpu等。

******提供更换gcc、g++版本的方法(开始)********

为了与cuda9.0匹配,考虑安装了gcc-4.8和g++-4.8(或者gcc-6和g++-6)

安装GCC4.8

sudo apt-get install gcc-4.8

sudo apt-get install g++-4.8

创建软链接:

sudo ln -s /usr/bin/gcc-4.8 /usr/local/cuda/bin/gcc

<code>sudo ln -s /usr/bin/g++-4.8&#xA0;/usr/local/cuda/bin/g++</code>

*******(结束)*******

(六)安装tensorflow

1、安装pip

sudo apt install python-pip

这将安装 pip 和它的许多其他依赖项。

查看pip版本(此时默认pip版本是 9.0.1)

pip -V

升级pip版本

python -m pip install --upgrade pip

pip 升级为 20.3.4

在执行 pip -V之前,要做一些修改:

sudo vi /usr/bin/pip

将原来的

from pip import main
if __name__ == '__main__':
&#xA0; &#xA0; sys.exit(main())

改成

from pip import __main__
if __name__ == '__main__':
&#xA0; &#xA0; sys.exit(__main__._main())
pip -V

打印:
pip 20.3.4 from /home/nvidia/.local/lib/python2.7/site-packages/pip (python 2.7)

2、安装常用依赖库

sudo apt-get install python-scipy
sudo apt-get install python-pandas
sudo apt-get install python-sklearn

这里面没有numpy和matplotlib,不是说他俩不重要,而是安装其它包时,这两个也会被自动安装。

3、安装tensorflow

1)确认CUDA已经被正常安装

nvcc -V

如果能看到CUDA版本号,即为正确安装

2)安装所需要的包

sudo apt-get install libhdf5-serial-dev hdf5-tools

3)安装TensorFlow GPU版本

因为后面要用ros,考虑安装 py2 的tensorflow-gpu版本 (网上帖子都是基于python3的tensorflow-gpu安装,没办法,自己趟出一条血路,经过N次重装系统,终于可行,都是泪)

由于tensorflow1.13.1没有提供python2版本,尝试安装tensorflow1.14.0-py2

Index of /compute/redist/jp/v33/tensorflow-gpu

Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu

如果你网速太慢,whl文件我已下载好了,给出链接:

tensorflow_gpu-1.14.0+nv19.9-cp27-cp27mu-linux_aarch64.whl-嵌入式文档类资源-CSDN下载

pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v33 tensorflow-gpu==1.14.0+nv19.9 --user
&#x5B89;&#x88C5;&#x8FC7;&#x7A0B;&#x4E2D;&#xFF0C;&#x53EF;&#x80FD;&#x51FA;&#x73B0;error&#xFF1A;

 ImportError: No module named wrapt

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-kbtEa9/wrapt/

&#x89E3;&#x51B3;&#xFF1A;
pip install --upgrade setuptools

安装完成后,会有一些警告,如下图

Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu

报的警告是:某些 安装库的路径 没有添加到 环境变量PATH 中,先不管它

4)测试tensorflow

在python2.7中导入 tensorflow

Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu

成功导入tensorflow

用一个例子测试一下tensorflow

# coding=UTF-8
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

x_data = np.linspace(-0.5, 0.5, 200)[:, np.newaxis]
noise = np.random.normal(0, 0.02, x_data.shape)
y_data = np.square(x_data) + noise

x = tf.placeholder(tf.float32, [None, 1])
y = tf.placeholder(tf.float32, [None, 1])

# &#x8F93;&#x5165;&#x5C42;&#x4E00;&#x4E2A;&#x795E;&#x7ECF;&#x5143;&#xFF0C;&#x8F93;&#x51FA;&#x5C42;&#x4E00;&#x4E2A;&#x795E;&#x7ECF;&#x5143;&#xFF0C;&#x4E2D;&#x95F4;10&#x4E2A;
# &#x7B2C;&#x4E00;&#x5C42;
Weights_L1 = tf.Variable(tf.random.normal([1, 10]))
Biases_L1 = tf.Variable(tf.zeros([1, 10]))
Wx_plus_b_L1 = tf.matmul(x, Weights_L1) + Biases_L1
L1 = tf.nn.tanh(Wx_plus_b_L1)

# &#x7B2C;&#x4E8C;&#x5C42;
Weights_L2 = tf.Variable(tf.random.normal([10, 1]))
Biases_L2 = tf.Variable(tf.zeros([1, 1]))
Wx_plus_b_L2 = tf.matmul(L1, Weights_L2) + Biases_L2
pred = tf.nn.tanh(Wx_plus_b_L2)

# &#x635F;&#x5931;&#x51FD;&#x6570;
loss = tf.reduce_mean(tf.square(y - pred))

# &#x8BAD;&#x7EC3;
train = tf.train.GradientDescentOptimizer(0.1).minimize(loss)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for i in range(2000):
        sess.run(train, feed_dict={x: x_data, y: y_data})
        print("&#x7B2C;{0}&#x6B21;&#xFF0C;loss = {1}".format(i, sess.run(loss,feed_dict={x: x_data, y: y_data})))
    pred_vaule = sess.run(pred, feed_dict={x: x_data})
    plt.figure()
    plt.scatter(x_data, y_data)
    plt.plot(x_data, pred_vaule, 'r-', lw=5)
    plt.show()

例子参考:

玩转Jetson Nano(三)安装TensorFlow GPU_贝克汉鸭的博客-CSDN博客_jetson nano tensorflow

下图是运行成功的截图:

Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu

至此,基于python2.7的 tensorflow-gpu 安装完成!!!

(七)安装 keras

考虑与tensorflow-gpu版本适配,我们安装 keras 2.3.1

pip install keras==2.3.1

Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu

检查一下安装成果,import keras时,下方提示using TensorFlow backend,就证明Keras安装成功并使用TensorFlow作为backend。

(八)继续安装 opencv

sudo dpkg -i libopencvxxxxxxx.deb

去 jetpack_download文件夹 下,自行安装即可。

*****(分割线)********

【下面的内容是安装cuda10、cudnn7.3,经过我的测试,tensorflow1.14.0与cuda10并不兼容,所以下面内容的cuda10、cudnn7.3下载并配置部分可以参考,但是tensorflow安装部分请读者自行修改对应的tensorflow版本】

(二)下载cuda10、cudnn7.3

参考帖子:

arm安装cuda9.0,tensorflow-gpu, jetson tx2安装Jetpack踩坑合集 - 水木清扬 - 博客园

Jetson TX2 安装 cuda9.0 及 cudnn7 超详细(真实亲测) - 灰信网(软件开发博客聚合)

1、在下面网站下载.run文件

Jetson Download Center | NVIDIA Developer

Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu

2、将文件拷贝到ubuntu16上,操作(注意:ubuntu18没试过)

先给777权限,再 ./ xxx.run

(等待安装。。。)

(注意:路径中不能有 中文!!!)

Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu

1是 安装路径

2是 下载路径,cuda和cudnn安装包就在此Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu

3、打开 jetpack_download 文件夹

Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu

下载完成后文件是这些:
cuda-repo-l4t-10-0-local-10.0.117_1.0-1_arm64.deb
libcudnn7_7.3.1.20-1+cuda10.0_arm64.deb
libcudnn7-dev_7.3.1.20-1+cuda10.0_arm64.deb
libcudnn7-doc_7.3.1.20-1+cuda10.0_arm64.deb
libnvinfer5_5.0.3-1+cuda10.0_arm64.deb
libnvinfer-dev_5.0.3-1+cuda10.0_arm64.deb
libnvinfer-samples_5.0.3-1+cuda10.0_all.deb
libgie-dev_5.0.3-1+cuda10.0_all.deb

(三)安装cuda10、cudnn7.1

(根据这些顺序来安装)

(去到下载好解压的⽂件夹中,命令⾏输⼊)

1、安装cuda

sudo dpkg -i cuda-repo-l4t-10-0-local-10.0.117_1.0-1_arm64.deb
sudo apt-key add /var/cuda-repo-10-0-local-10.0.117/7fa2af80.pub
sudo apt update
sudo apt-get install cuda-toolkit-10-0

2、安装cudnn

由于都是 .deb 文件,因此直接使用 下面的命令安装即可:

sudo dpkg -i libcudnn7_7.3.1.20-1+cuda10.0_arm64.deb
sudo dpkg -i libcudnn7-dev_7.3.1.20-1+cuda10.0_arm64.deb
sudo dpkg -i libcudnn7-doc_7.3.1.20-1+cuda10.0_arm64.deb

3 、安装nvinfer

sudo dpkg -i libnvinfer5_5.0.3-1+cuda10.0_arm64.deb
sudo dpkg -i libnvinfer-dev_5.0.3-1+cuda10.0_arm64.deb
sudo dpkg -i libnvinfer-samples_5.0.3-1+cuda10.0_all.deb

4 、安装libgie

sudo dpkg -i libgie-dev_5.0.3-1+cuda10.0_all.deb

(四)配置环境变量

修改cuda的环境变量(没有gedit可以⽤vim)

sudo gedit ~/.bashrc

打开后,拉倒最下⾯,将原来的cuda10.2的环境变量都删除掉。

写⼊

export CUBA_HOME=/usr/local/cuda-10.0
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.0/bin:/usr/local/bin/cmake:$PATH

保存退出,更新环境变量

source ~/.bashrc

cudnn 安装完成后,其实是直接安装到了默认安装路径usr/include和usr/lib下的,因此需要将其拷贝到cuda安装路径下:

sudo cp /usr/include/cudnn.h /usr/local/cuda/include/
sudo cp /usr/lib/aarch64-linux-gnu/libcudnn* /usr/local/cuda/lib64/

然后执行下面命令,用重新生成cudnn库的软连接

cd /usr/local/cuda/lib64

sudo chmod +r libcudnn*

sudo rm -rf libcudnn.so libcudnn.so.7
sudo ln -s libcudnn.so.7.3.1 libcudnn.so.7
sudo ln -s libcudnn.so.7 libcudnn.so

sudo ldconfig

到此,cuda 及 cudnn 安装就完成了。

(五)测试

nvcc -V

&#x6253;&#x5370;&#x51FA;&#xFF1A;
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sun_Aug_12_21:08:25_CDT_2018
Cuda compilation tools, release 10.0, V10.0.117

打印出cuda10.0成功。

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
&#x5F97;&#x5230;
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 3
#define CUDNN_PATCHLEVEL 1
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#include "driver_types.h"

可知,当前的 cudnn 版本是 7.3.1。

检查cudnn

玩转Jetson Nano(二)检查已安装组件_贝克汉鸭的博客-CSDN博客

Jetson-nano中已经安装好了cuDNN,并有例子可供运行,我们运行一下例子,也正好验证上面的CUDA

cd /usr/src/cudnn_samples_v7/mnistCUDNN
sudo make
sudo chmod a+x mnistCUDNN
./mnistCUDNN

如果成功,如下所示

cudnnGetVersion() : 7301 , CUDNN_VERSION from cudnn.h : 7301 (7.3.1)
Host compiler version : GCC 7.5.0
There are 1 CUDA capable devices on your machine :
device 0 : sms  1  Capabilities 5.3, SmClock 921.6 Mhz, MemSize (Mb) 3956, MemClock 12.8 Mhz, Ecc=0, boardGroupID=0
Using device 0

Testing single precision
Loading image data/one_28x28.pgm
Performing forward propagation ...

Testing cudnnGetConvolutionForwardAlgorithm ...

Fastest algorithm is Algo 1
Testing cudnnFindConvolutionForwardAlgorithm ...

^^^^ CUDNN_STATUS_SUCCESS for Algo 0: 0.105781 time requiring 0 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 1: 0.908281 time requiring 3464 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 2: 5.615313 time requiring 57600 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 4: 8.604583 time requiring 207360 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 7: 9.908385 time requiring 2057744 memory
Resulting weights from Softmax:
0.0000000 0.9999399 0.0000000 0.0000000 0.0000561 0.0000000 0.0000012 0.0000017 0.0000010 0.0000000
Loading image data/three_28x28.pgm
Performing forward propagation ...

Resulting weights from Softmax:
0.0000000 0.0000000 0.0000000 0.9999288 0.0000000 0.0000711 0.0000000 0.0000000 0.0000000 0.0000000
Loading image data/five_28x28.pgm
Performing forward propagation ...

Resulting weights from Softmax:
0.0000000 0.0000008 0.0000000 0.0000002 0.0000000 0.9999820 0.0000154 0.0000000 0.0000012 0.0000006

Result of classification: 1 3 5

Test passed!

Testing half precision (math in single precision)
Loading image data/one_28x28.pgm
Performing forward propagation ...

Testing cudnnGetConvolutionForwardAlgorithm ...

Fastest algorithm is Algo 1
Testing cudnnFindConvolutionForwardAlgorithm ...

^^^^ CUDNN_STATUS_SUCCESS for Algo 1: 0.128698 time requiring 3464 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 2: 0.214740 time requiring 28800 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 0: 0.397813 time requiring 0 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 4: 1.029636 time requiring 207360 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 5: 6.952447 time requiring 203008 memory
Resulting weights from Softmax:
0.0000001 1.0000000 0.0000001 0.0000000 0.0000563 0.0000001 0.0000012 0.0000017 0.0000010 0.0000001
Loading image data/three_28x28.pgm
Performing forward propagation ...

Resulting weights from Softmax:
0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000714 0.0000000 0.0000000 0.0000000 0.0000000
Loading image data/five_28x28.pgm
Performing forward propagation ...

Resulting weights from Softmax:
0.0000000 0.0000008 0.0000000 0.0000002 0.0000000 1.0000000 0.0000154 0.0000000 0.0000012 0.0000006

Result of classification: 1 3 5

Test passed!

(六)安装tensorflow

1、安装pip

sudo apt install python-pip

&#x8FD9;&#x5C06;&#x5B89;&#x88C5; pip &#x548C;&#x5B83;&#x7684;&#x8BB8;&#x591A;&#x5176;&#x4ED6;&#x4F9D;&#x8D56;&#x9879;&#x3002;

查看pip版本

pip -V

&#x6B64;&#x65F6;&#x9ED8;&#x8BA4;pip&#x7248;&#x672C;&#x662F; 9.0.1

升级pip版本

python -m pip install --upgrade pip

&#x5347;&#x7EA7;&#x4E3A; 20.3.4

在执行 pip -V之前,要做一些修改:

sudo vi /usr/bin/pip

将原来的

from pip import main
if __name__ == '__main__':
&#xA0; &#xA0; sys.exit(main())

改成

from pip import __main__
if __name__ == '__main__':
&#xA0; &#xA0; sys.exit(__main__._main())
pip -V

&#x6253;&#x5370;&#xFF1A;
pip 20.3.4 from /home/nvidia/.local/lib/python2.7/site-packages/pip (python 2.7)

2、安装常用依赖库

sudo apt-get install python-scipy
sudo apt-get install python-pandas
sudo apt-get install python-sklearn

&#x8FD9;&#x91CC;&#x9762;&#x6CA1;&#x6709;numpy&#x548C;matplotlib&#xFF0C;&#x4E0D;&#x662F;&#x8BF4;&#x4ED6;&#x4FE9;&#x4E0D;&#x91CD;&#x8981;&#xFF0C;&#x800C;&#x662F;&#x5B89;&#x88C5;&#x5176;&#x5B83;&#x5305;&#x65F6;&#xFF0C;&#x8FD9;&#x4E24;&#x4E2A;&#x4E5F;&#x4F1A;&#x88AB;&#x81EA;&#x52A8;&#x5B89;&#x88C5;&#x3002;

3、安装tensorflow

(1)确认CUDA已经被正常安装

nvcc -V

如果能看到CUDA版本号,即为正确安装

(2)安装所需要的包

sudo apt-get install libhdf5-serial-dev hdf5-tools

(3)安装TensorFlow GPU版本

Index of /compute/redist/jp/v33/tensorflow-gpu
Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu

pip install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v33 tensorflow-gpu==1.14.0+nv19.9 --user
&#x53EF;&#x80FD;&#x51FA;&#x73B0;error&#xFF1A;

 ImportError: No module named wrapt

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-kbtEa9/wrapt/

&#x89E3;&#x51B3;&#xFF1A;
pip install --upgrade setuptools

Original: https://blog.csdn.net/m0_46519541/article/details/124654372
Author: 啦啦啦啦snsn
Title: Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu



相关阅读

Title: TensorFlow GPU最完整的安装方法

自己这几天更换电脑,再加上前次旧电脑学习,安装了好几次TensorFlow,每次都遇到了一些问题,经常缺一些文件,在网上下载文件还很慢,走了不少弯路,特将完整的安装方法记录如下,以便后续使用,也供同行参考。

TensorFlow的学习需要有专门的Nvida的GPU显卡的电脑,GPU的显存最好在4G以上,我以前那台电脑只有1G显示只能学习一些非常初级模型,稍微复杂的模型就无法运行。对于没有GPU独显的同学,可以使用百度的AI Studio,上面提供免费的GPU服务器,每天可以免费使用8小时,并且直接安装好百度的PaddlePaddle,系统已经配置好,也可以快速学习人工智能。

一、了解显卡性能及支持的CUDA版本

可以在终端界面,通过nvidia-smi命令查看你的也显卡信息,查看你的电脑是上否有支持CUDA的显卡及相应的型号、显存。
Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu
也可以在控制面板中找NVIDIA Control Panel程序,升级Windows 11后发现控制面板中没有NVIDIA的控制面板了,可以在开启程序中通过查找找到。
Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu
在NVIDIA控制面板中,通过帮助查单–>系统信息–>组件,找到如下图所示NVCUDA64.dll程序所对应的版本,就是你计算机上CUDA能支持的版本,后续在下载CUDA时一定要与此相匹配,避免兼容性和莫名其妙的问题出现。我的笔记本是新的,显卡是Geforce Rtx 3060,安装的CUDA驱动程序是11.2版本,后续要查找与之对应的CUDA、CUDNN、Tensorflow-GPU版本进行安装,否则会出现不匹配的情况。Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu

; 二、确定TensorFlow与Python版本

在TensorFlow官网的安装指南给出了TensorFlow、Python、CUDA对应的版本,我在前期学习中,由于安装版本问题,走了不少弯路。具体请参阅。Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu
根据前面查询到的CUDA版本11.2,我决定尽可能安装高一些版本的工具,以减少后续组件升级的工作量,因此我确定安装cudnn 8.1,python 3.9,tensorflow 2.6作这台新电脑的研究环境。对于python和tensorflow可以不同项目使用不同的版本,自己后续可以根据项目需要进行调整,但需要尽可能在上图官方已经测试的版本中选择,否则可能出一些兼容性问题。

三、安装CUDA及cuDNN

1、CUDA及cuDNN下载

CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。

cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。

CUDA看作是一个工作台,cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。

CUDA下载链接为:https://developer.nvidia.com/cuda-toolkit-archive,找到第一章信息对应的板版本。如下图所示,没有对应的Windows11版本,可以用Windows 10对应的版本可以安装和使用。文件比较大,请使用迅雷等下载工具下载,否则容易下载失败。另下载注意使用Local全部下载,后续查找缺少的Dll文件需要。Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu
cuDNN的下载需要注册一下Nvidia开发帐号才能下载,下载地址为:https://developer.nvidia.com/cudnn。根据网站提示,先用邮箱注册一个开发者帐号,登录后出来下载下载页面,根据第二章确定的cuDNN版本,从归档历史库下载你计算机匹配的cuDNN版本。Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu
2、CUDA安装

安装cuda时,第一次会让设置临时解压目录,第二次会让设置安装目录;临时解压路径,建议默认即可,也可以自定义。安装结束后,临时解压文件夹会自动删除。

安装目录,可以使用默认路径,也可以使用指定路径,关注一下安装路径,后续需要手工将几个程序所在路径加到系统环境变量的path参数中,以便于python程序调用。Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu
CUDA安装过程比较简单,安装完后,将下面几个目录加到系统环境变量的path参数中,以使用python程序调用对应的程序和dll库。

CUDA文件比较大,如果你的计算机硬盘空间足够,建议用自定义选项,全部安装,避免少文件。我的计算机是SSD硬盘,空间不大,采用的是基本安装,在使用时发现少很多文件,刚开始是到网上DLL库上找并下载使用,发现存在文件不全且版本不对应情况,通过修改文件名勉强可以使用,但可能存在兼容性问题。Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu
后面用winrar打开CUDA安装exe文件,可以通过查找功能找到缺少的文件,解压后放在cuda安装目录的bin文件目录下即可。红线文件是CUDA缺少的文件,绿线文件是下一步cuDNN解压拷贝的文件。Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu
3、cuDNN安装

cuDNN是一些动态库文件,用解压缩软件打开,直接解压到前面一条CUDA的安装路径即可,解压后注意确认好文件的路径。此外,注意文件版本,与第2章找到的对应表对应。Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu

四、Python安装

1、Python文件下载

Python下载网站:https://www.python.org/downloads/。Python下载文件不是很好找,容易跳乱,各版的下载导航连接在页面下部,参见下图。Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu
同样,下载文件也是在页面下部,根据自己需要的版本、操作系统找到对应的安装文件,Python安装文件不大,下载很快。Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu
2、Python安装

Python安装时,注意先将下面的增加Python 3.9到path勾选上,避免后续手工添加,另外建议用自定义安装,将python安装到一个简单、短一点的目录,后续经常要用到。Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu
将python安装到C:\python目录, 同时将install for all users选项选中。Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu
python安装成功后,可以在CMD终端下,用python命令进入,检查版本以及是否可用。

五、TensorFlow安装

先在Pycharm中建立一个项目,如果你使用的是其它开发工具,在你对应工具中创建项目。我这儿直接使用的是Virtualenv虚拟环境,使用要简单一些,前面使用过Anaconda,没有感觉到太大优势,问题还不少,这次就直接使用Pycharm的虚拟环境,感觉要简单一些。Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu
注意选择Python解释器,如果你计算机上有多个python要选择与项目兼容的版本。

TensorFlow可以在具体项目中用pip安装,也可以用pycharm的工具安装,注意选择你电脑显卡能支持与兼容的版本,根据第二章,我选择的是2.6版本。Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu
注意安装的是tensorflow-gpu,选择指定的版本,此处选择的是2.6.0,我试过用最新的2.7.0不兼容,无法使用。当前你也可以根据项目前期使用的版本选择对应的TensorFlow版本。此外还要注意对应的python、cuda版本,都要匹配才能正常使用。Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu
TensorFlow安装的包比较多,速度比较慢,建议提前将pip.ini、pycharm的更新仓库都改为国内镜像:(https://pypi.tuna.tsinghua.edu.cn/simple/)。Jeston nano配置(三)卸载cuda10.2安装cuda9 并安装tensorflow-gpu

六、TensorFlow及GPU验证

在项目中创建一个测试文件test.py,以下几行代码即可。

import tensorflow as tf
if tf.test.gpu_device_name():
    print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
else:
    print("Please install GPU version of TF")

运行test.py如下所述,系统提示运行成功,并显示出GPU的型号,计算能力,我的显卡计算能力为8.6,感觉性能应该还不错,后面根据程序实际的计算性能再发分享报告。

C:\Users\86139\PycharmProjects\test3\venv\Scripts\python.exe C:/Users/86139/PycharmProjects/test3/test.py
2021-11-13 19:50:40.703464: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.

Default GPU Device: /device:GPU:0
2021-11-13 19:50:42.588444: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1510] Created device /device:GPU:0 with 3495 MB memory:  -> device: 0, name: GeForce RTX 3060 Laptop GPU, pci bus id: 0000:01:00.0, compute capability: 8.6
2021-11-13 19:50:42.589427: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1510] Created device /device:GPU:0 with 3495 MB memory:  -> device: 0, name: GeForce RTX 3060 Laptop GPU, pci bus id: 0000:01:00.0, compute capability: 8.6
Process finished with exit code 0

通过安装上述工具,你可以在自己的电脑上进行人工智能的基础学习和研究。

[En]

Through the installation of the above tools, you can do basic learning and research on artificial intelligence on your own computer.

Original: https://blog.csdn.net/wujize/article/details/121329897
Author: 海盐老伍
Title: TensorFlow GPU最完整的安装方法

相关文章
机器学习概述 人工智能

机器学习概述

本文主要是对于阅读周志明《智慧的疆界》的章节笔记总结 机器学习是什么?有什么价值? 要谈机器学习是什么?这里直接给出比较代表定义不断发展的机器学习定义。 1)司马贺:"机器学习就是让机器能够从历史经验...
打造电商语音场景下的多轮人机交互 人工智能

打造电商语音场景下的多轮人机交互

打造电商语音场景下的多轮人机交互 1. 语音人机交互在电商场景下的应用 当前正处技术和市场拐点,行业发展将进一步提速。 大幅提升品牌私域触达转化率,落粉率达16%,远超行业平均。 AI语音在活动通知和...
聚类、距离衡量方法 人工智能

聚类、距离衡量方法

聚类分析 目标:将数据样本划分为若干个通常不相交的"簇",使簇内数据之间具有高的相似性,不同簇数据之间具有高的差异性 ; 一、相似性度量方法 欧氏距离马氏距离标准化欧式距离海明距离哈曼顿距离杰卡德距离...