玩转英伟达jetson系列(二)安装深度学习框架Tensorflow

玩转英伟达jetson系列(二)安装深度学习框架Tensorflow

文章目录

    • 玩转英伟达jetson系列(二)安装深度学习框架Tensorflow
  • 前言
  • 一、安装pip3
  • 二、pip3换源
  • 三、安装一些依赖包和库
  • 四、安装tensorflow
  • 五、测试tensorflow


前言

上一篇文章我们已经成功对jetson tx2或Xavier进行了刷机,这个时候Xavier和tx2已经有了做AI加速计算的SDK和条件,如opencv库,CUDA,cuDNN等。想要检查和测试这些组件的话,由于这些组件都在固定文件夹,比较简单,就不详细赘述,这里有一个教程链接可以参考一下:https://blog.csdn.net/qq_19707521/article/details/103669306,确认无误后,下面我们开始进行tensorflow-gpu的安装。


一、安装pip3

因为刷系统时,SDKManager已经为你的tx2或Xavier装好了python3.6,所以直接键入命令安装pip3

sudo apt-get install python3-pip python3-dev
python3 -m pip install --upgrade pip  #升级pip

备注:你要装的tensorflow肯定是要在python3环境中的,所以后面安装python3的库文件时一定要用pip3,不要用pip,因为jetson tx2和Xavier上还有python2的环境

二、pip3换源

如果pip3不换源,后面下载那些依赖包或库的时候速度特别慢,速度可以达到几K每秒,换完源后速度飞快,事半功倍。
修改配置文件~/.pip/pip.conf(如果没有就自行创建,格式和前面的必须完全一致,这个一般情况下是没有的)创建过程如下:

mkdir ~/.pip

cd ~/.pip

touch pip.conf

修改过程如下;

sudo vim ~/.pip/pip.conf

在打开的文档中加入

[global]
index-url=https://mirrors.aliyun.com/pypi/simple
[install]
trusted-host=mirrors.aliyun.com

这是阿里云的pip源,还有清华和中科大和豆瓣的源可以选择,网上很好搜到。

三、安装一些依赖包和库

这里参考了英伟达官网教程https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetson-platform/index.html#upgrading_tensorflow

sudo apt-get install python3-scipy
sudo apt-get install python3-pandas
sudo apt-get install python3-sklearn
sudo apt-get update
sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
sudo pip3 install -U numpy==1.16.1 future==0.18.2 mock==3.0.5 h5py==2.10.0 keras_preprocessing==1.1.1 keras_applications==1.0.8 gast==0.2.2 futures protobuf pybind11

四、安装tensorflow

首先,英伟达官网说了从20.02容器,容器可以理解放tensorflow的空间,之后开始,对jetson系列来说,tensorflow-gpu的名称已经被tensorflow替代,tersorflow默认就是gpu版本。终端运行如下命令:
先不要急着输入命令,先看这条命令和下面我对命令的解释,最后你就知道你要输入什么命令了

sudo pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v$JP_VERSION tensorflow==$TF_VERSION+nv$NV_VERSION

$JP_VERSION:jetpack的版本,如4.3、4.4
$TF_VERSION:TensorFlow的发行版本,如1.15,2.1.0等
$NV_VERSION:Tensorflow容器版本,如20.4,20.6等
以下都是以jetpack4.4为例:访问 https://developer.download.nvidia.cn/compute/redist/jp/v44

如果是jetpack4.3的话上面链接中的v44就改成v43,访问上面链接得到下图
玩转英伟达jetson系列(二)安装深度学习框架Tensorflow_第1张图片
然后点击上图中的tensorflow进入,得到下图,可以看到安装不同tensorflow的wheel
玩转英伟达jetson系列(二)安装深度学习框架Tensorflow_第2张图片
比如我要装tensorflow-1.15.2+nv20.4-cp36-cp36m-linux_aarch64.whl,

这里tensorflow版本为1.15.2,容器版本为20.4

那么我只要输入下面命令就行

sudo pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 tensorflow==1.15.2+nv20.4

根据上面图片中的wheel,如果要装tensorflow-2.3.1+nv20.10-cp36-cp36m-linux_aarch64.whl的话,照葫芦画瓢,输入以下命令:

sudo pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 tensorflow==2.3.1+nv20.10

备注:一定要把tensorflow版本和容器版本和jetpack版本写清楚,要不然安装可能会失败。

由于我们更换的pip3的源,换成了国内的源,安装tensorflow的速度会很快。

五、测试tensorflow

最简单的方法:打开终端输入以下命令

python3                               #进入python3环境

import tensorflow as tf       #导入tensorflow包,一般这步没问题就成功

print(tf.__version__)         #输入tensorflow版本

复杂的方法:写一个简单的网络

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

x_data = np.linspace(-0.5, 0.5, 200)[:,wang 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])
# 第一层
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)
# 第二层
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)
# 损失函数
loss = tf.reduce_mean(tf.square(y - pred))
# 训练
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("第{0}次,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()

此处参考文章:https://blog.csdn.net/beckhans/article/details/89146881


如果您认可我的文章,希望能够关注我的微信公众号,大家一起进步,我会不定期更新工作中学到的东西和一些技术比较前沿的东西。

玩转英伟达jetson系列(二)安装深度学习框架Tensorflow_第3张图片

玩转英伟达jetson系列(二)安装深度学习框架Tensorflow_第4张图片

你可能感兴趣的:(tensorflow,深度学习,python,人工智能,机器学习)