Jetson Nano 安装TensorFlow GPU遇到问题

Jetson Nano 安装TensorFlow GPU教程
您当前位置: 首页 > JETSON NANO 4GB(B01公版/SUB版) > AI入门教程
4、Jetson Nano 安装TensorFlow GPU教程

今天的目标是安装TensorFlow GPU版本,安装TensorFlow GPU版本需要成功配置好CUDA,没有配制好的请看教程1。不过在安装TensorFlow GPU之前,有一些机器学习必须用到的安装包也需要来安装一下。注意配置好的镜像已安装好tensorflow,无需安装。

  1. 安装pip

因为Jetson Nano中已经安装了Python3.6版本,所以安装pip还是比较简单的

sudo apt-get install python3-pip python3-dev

安装后pip是9.01版本,需要把它升级到最新版,升级后pip版本为19.3.1。这里面升级后会有一个小Bug,需要手动改一下

python3 -m pip install --upgrade pip #升级pip

image.png

sudo vim /usr/bin/pip3 #打开pip3文件

将原来的

from pip import main

if name == ‘main’:

sys.exit(main())

改成

from pip import main

if name == ‘main’:

sys.exit(__main__._main())

修改结束后保存。运行pip3 -V成功后显示

yahboom@yahboom-desktop: ~$ pip3 -V

image.png

  1. 安装那些机器学习领域非常重要的包

sudo apt-get install python3-numpy

(是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。)

sudo apt-get install python3-scipy

(Scipy是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。)

sudo apt-get install python3-pandas

(pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。)

sudo apt-get install python3-matplotlib

(Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形)

sudo apt-get install python3-sklearn

(简单高效的数据挖掘和数据分析工具)

  1. 安装TensorFlow GPU版

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

nvcc -V

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

image.png

安装所需要的包

sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran

安装python的依赖项

sudo pip3 install -U numpy1.16.1 future0.18.2 mock3.0.5 h5py2.10.0 keras_preprocessing1.1.1 keras_applications1.0.8 gast==0.2.2 futures protobuf pybind11

(3)安装TensorFlow GPU版本(在线安装经常中断,建议使用离线安装)

(3.1)在线安装

sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 tensorflow

以下是官网的tensorflow安装说明。https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetson-platform/index.html#install

(3.2)离线安装

因为在线安装下载太慢了,所以我们可以选择离线包安装,安装包需要去网上下载。需要根据当前系统的JetPack版本安装对应的TensorFlow。资料5、常见的库和模型也有存放一个离线包,但是需要看是否与您当前的系统的jetpack版本匹配。

https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetson-platform-release-notes/tf-jetson-rel.html#tf-jetson-rel

image.png

1)将WHL文件直接通过winSCP软件上传到jeston nano 上的/home/nano文件夹。

2)上传完成之后,输入指令(pip3 install +您对应的版本安装包)

pip3 install xxx.whl

下载途中可能也会需要在线安装一些软件包 直接Y(YES)通过。

3)完成安装,输入以下指令检测tensorflow是否成功安装。

python3

import tensorflow as tf

tf.version

查询tensorflow安装路径为:

tf.path

查询结果如下:

image.png

  1. 安装Keras

Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。

中文学习网站:https://keras.io/zh/

既然有了TensorFlow,那就把Keras也安装上。我自己很喜欢keras,让TensorFlow变得更加简单

sudo pip3 install keras

安装完成后,进入python3,检查一下安装成果,import keras

image.png

如上可能会出现以下问题,需要更新numpy的版本。

image.png

  1. 测试TensorFlow

跑一段自己写的非线性回归代码,速度还是挺快的,使用vi新建python文件命名:tensorflowDemo.py 然后复制以下代码进去。保存后使用 python3 tensorflowDemo.py运行,这段必须在图形化界面下运行,因为会出现一张图表。由于是TensorFlow2所以把import tensorflow as tf改成了import tensorflow.compat.v1 as tf和tf.disable_v2_behavior(),即代码的前两句,如果是TensorFlow1则为import tensorflow as tf。

-- coding: utf-8 --

import tensorflow.compat.v1 as tf

tf.disable_v2_behavior()

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])

输入层一个神经元,输出层一个神经元,中间10个

第一层

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()

image.png

image.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不正经的码狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值