-
由于tensorflow并没有arm版本的,因此,我们需要从源码开始对tensorflow进行编译。Tensorflow的编译需要用到bazel工具。但是bazel工具也是没有arm版本的,因此我们需要先编译安装bazel,再进行tensorflow的编译。 1、bazel编译bazel编译需要从bootstrapping编译。对应的编译指导地址为:https://docs.bazel.build/versions/master/install-compile-source.html注意,我们是要从bootstrapping编译的,因此,编译命令请参考“Build Bazel from scratch (bootstrapping) ”这一个章节进行操作。(1)下载源码,注意我们要下载的是bazel的dist包,并不是github上的源码。Dist包下载的地址为 https://github.com/bazelbuild/bazel/releases/download/0.24.1/bazel-0.24.1-dist.zip。请找到0.24.1版本,并进行下载,如下图所示:(2)安装依赖,执行以下命令,安装相关依赖:sudo apt-get install build-essential openjdk-11-jdk python zip unzip(3)将bazel的zip包进行解压,并进入对应路径,并执行命令进行编译。unzip bazel-0.24.1-dist.zipcd bazel-0.24.1env EXTRA_BAZEL_ARGS="--host_javabase=@local_jdk//:jdk" bash ./compile.sh出现以下信息,代表bazel编译成功。(4)编译成功后,bazel的可执行文件将会生成在bazel目录下的output文件夹,我们需要将该路径放到PATH环境变量中,以便后面编译tensorflow可以使用。export PATH=$PATH:/path/to/bazel-0.24.1/output运行以下命令,查看bazel版本,即代码成功。bazel --help 2、tensorflow编译(1)源码下载。训练中要使用到的tensorflow版本为1.15.0。首先,我们从github上面clone下来:git clone https://github.com/tensorflow/tensorflow.git接着,我们需要切换tag至v1.15.0版本上:git checkout v1.15.0查看当前的log,检查是否已经切换至v1.15.0:git log若输出如上图所示,就代表已经切换成功。(2)修改nsync源码编译之前,我们要对nsync的源码做一些修改,这是为了后续训练8p场景下能够稳定。1) 下载nsync-1.22.0.tar.gz源码包。进入tensorflow源码目录,打开” tensorflow/workspace.bzl”文件,找到其中name为nsync的”tf_http_archive”定义: tf_http_archive( name = "nsync", sha256 = "caf32e6b3d478b78cff6c2ba009c3400f8251f646804bcb65465666a9cea93c4", strip_prefix = "nsync-1.22.0", system_build_file = clean_dep("//third_party/systemlibs:nsync.BUILD"), urls = [ "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/nsync/archive/1.22.0.tar.gz", "https://github.com/google/nsync/archive/1.22.0.tar.gz", ],)从urls中的任意链接下载对应的源码包,保存到任意路径。我这里是下载至/root/distdir路径下。2)编辑” nsync-1.22.0/platform/c++11/atomic.h”文件,在NSYNC_CPP_START_内容后添加如下红色字体内容。#include "nsync_cpp.h"#include "nsync_atomic.h" NSYNC_CPP_START_ #define ATM_CB_() __sync_synchronize() static INLINE int atm_cas_nomb_u32_ (nsync_atomic_uint32_ *p, uint32_t o, uint32_t n) { int result = (std::atomic_compare_exchange_strong_explicit (NSYNC_ATOMIC_UINT32_PTR_ (p), &o, n, std::memory_order_relaxed, std::memory_order_relaxed)); ATM_CB_(); return result;}static INLINE int atm_cas_acq_u32_ (nsync_atomic_uint32_ *p, uint32_t o, uint32_t n) { int result = (std::atomic_compare_exchange_strong_explicit (NSYNC_ATOMIC_UINT32_PTR_ (p), &o, n, std::memory_order_acquire, std::memory_order_relaxed)); ATM_CB_(); return result;}static INLINE int atm_cas_rel_u32_ (nsync_atomic_uint32_ *p, uint32_t o, uint32_t n) { int result = (std::atomic_compare_exchange_strong_explicit (NSYNC_ATOMIC_UINT32_PTR_ (p), &o, n, std::memory_order_release, std::memory_order_relaxed)); ATM_CB_(); return result;}static INLINE int atm_cas_relacq_u32_ (nsync_atomic_uint32_ *p, uint32_t o, uint32_t n) { int result = (std::atomic_compare_exchange_strong_explicit (NSYNC_ATOMIC_UINT32_PTR_ (p), &o, n, std::memory_order_acq_rel, std::memory_order_relaxed)); ATM_CB_(); return result;}2) 重新压缩源码包:tar -czvf nsync-1.22.0.tar.gz nsync-1.22.0/*3) 重新计算sha256校验值sha256sum nsync-1.22.0.tar.gz4) 将校验后的值以及文件路径录入” tensorflow/workspace.bzl”文件当中。tf_http_archive( name = "nsync", sha256 = "23179b1988e5a697b29b7ee1f01add3b42e7a4392214544e998e4b40dbb1d7a0", strip_prefix = "nsync-1.22.0", system_build_file = clean_dep("//third_party/systemlibs:nsync.BUILD"), urls = [ "file:///root/distdir/nsync-1.22.0.tar.gz ", "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/nsync/archive/1.22.0.tar.gz", "https://github.com/google/nsync/archive/1.22.0.tar.gz", ],)(3)设置tensorflow编译配置,运行一下命令./configure根据上述的提示,我们需要找到python3.7的位置,运行以下命令,找到pylthon3.7位置which python3.7将该路径填写进去。检查python3.7的库路径是否正确;如果正确,直接回车接下来的这个XLA JIT支持一定要选择Y,否则编译出来的tensorflow不能在训练中使用。剩下的选项按照上述的进行设置即可。(4)正式编译bazel build --config=opt --distdir=/root/distdir --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=1" --verbose_failures //tensorflow/tools/pip_package:build_pip_package上面的—distdir选项为预先进行下载的依赖包的路径。若在安装过程中提醒有包下载失败,可以自行下载,放到distdir路径下。(5)编译完成后,正式生成whl安装包。mkdir out./bazel-bin/tensorflow/tools/pip_package/build_pip_package ./out通过以上的步骤,我们在out文件夹下生成了tensorflow的whl安装包。大小应当与下图大小相近。 编译好的whl包的链接:https://bbs.huaweicloud.com/forum/thread-81557-1-1.html
-
有 Atlas300 x86 音频编解码demo吗?
-
l 环境检查(纯净版全程root操作)系统环境:l 网络配置1、IP配置(*.yaml)l 安装依赖1、gcc 安装sudo apt-get updatesudo apt-get install aptitudesudo aptitude install gccsudo apt install gccsudo apt-get install g++验证:gcc --version(g++ 同gcc)2、 make 安装apt install makeapt install make-guile3、 其他依赖安装 apt-get install –y cmake zlib1g zlib1g-dev libsqlite3-dev openssl libssl-dev libffi-dev unzip pciutils net-tools libblas-dev gfortran libblas3 libopenblas-dev验证:4、 Python 3.7.5 wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz 具体查看参考文献链接l 安装开发套件包Ascend-Toolkit-20.0.RC1-x86_64-linux_gcc7.3.0.runchmod u+x xxx.runl FAQ(1)Check 的时候出现下图问题
-
【功能模块】虚拟机详细信息显示主IP地址网络信息不可用,但我进入Ubuntu后可以上网,mindstudio打不开【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
遇到的问题:no lapack/blas resources found 解决方法,安装lapacksudo apt-get install liblapack-dev 然后重新安装scipy,这次遇到了不一样的问题。遇到的问题:error: library dfftpack has Fortran sources but no Fortran compiler found 解决方法,安装Fortran compiler:sudo apt-get install gfortran
-
首先我的本机是Ubuntu16.04是可以连接到开发版,但是虚拟机怎么都不行,如下显示是连接到设备上我用ifconfig查看记录下ens160u1sudo vi /etc/network/interfaces添加添加完毕后执行ifdown ens160u1ifup ens160u1service NetworkManager restart但是还是无法连接上,我看了下ifconfigens160u1正常显示192.168.1.223,但是ssh连接不上,于是重启系统和板子,怎么都是下面情况,192.168.1.223显示非常短暂之后就显示下面图中情况,即使再次配置interfaces都不行之后我反复重启本机系统,重启虚拟机系统,重启板子,反复配置死活连接不上。但是本机ubuntu16.04却可以,请问这种情况怎么办,一直ssh显示ssh: connect to host 192.168.1.2 port 22: No route to host
-
【功能模块】Atlas 300【操作步骤&问题现象】1、安装Ubuntu 18.04 服务器版 不成功,可能是什么问题?2、是否可以装桌面版?对使用有区别吗麻烦耐心解答,谢谢!
-
官方教程在这https://gitee.com/Atlas200DK/sample-objectdetectionbymobilenet我进行到转换模型时,报出的错误跟教程上的不一样
-
atlas200模块 ubuntu系统能否升级到 ubuntu 18.04 ?有没有升级方法?
-
【功能模块】能否在Atlas 200 DK的开发版ubuntu系统上安装docker。我这里尝试安装失败。有无官网文档?
-
【功能模块】在 x86 服务器安装 Atlas 300 驱动【操作步骤&问题现象】1、OS版本,Ubuntu 18.04.4 LTS;驱动包:A300-3010-NPU_Driver-20.0.0-X86_64-Ubuntu18.04.run2、现象:'make' all KERNEL_UNAME=5.3.0-28-generic DAVINCI_HIAI_DKMS=y....(bad exit status: 2)ERROR (dkms apport): binary package for davinci_ascend: 1.0 not foundError! Bad return status for module build on kernel: 5.3.0-28-generic (x86_64)【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
mindstdio版本为version=1.3.T34.B891 ,ubuntu服务器ip为192.168.6.128dk板的ip为192.168.5.21 。服务器能ping通和ssh登陆到板子。dk板子无法ping通ubuntu服务器。mindstdio添加dk时显示返回结果为null因为板子和ubuntu连接不同的路由器,无法做成同一网段,非同一网段的IP服务器和dk板要怎么连接?另mindstdio启动有个报错是什么意思?
-
如题:Atlas 200 DK与ubuntu 通过usb连接不弹出挂载的提示框,ifconfig也没有显示虚拟网卡,请问如何解决?以前是可以正常使用的,3天前不知道什么就不行了。有知道解决方案的小伙伴可否分享一下解决方案,万分感谢!ubuntu是安装在vmware内的,vmware安装在win10机器上的,win10上面usb网卡驱动安装参考的是https://www.huaweicloud.com/ascend/doc/Atlas%20200%20DK/1.32.0.0(beta)/zh/zh-cn_topic_0213367600.html在设备管理里面查看也是正常的,如图:但是进入ubuntu用ifconfig命令看不到虚拟网卡,如图在可移动设备列表中也看不到华为的设备,如下图:参考帖子https://bbs.huaweicloud.com/forum/thread-45756-1-1.html,在虚拟机设备页面查看USB控制器,是兼容3.0的
-
请问ubuntu系统是运行在那块芯片上?是在华为310上还是hi3559上?还是说华为310只负责AI加速,3559只负责视频解码,系统运行在A55上?
上滑加载中
推荐直播
-
全面解析华为云EI-API服务:理论基础与实践应用指南
2024/11/29 周五 18:20-20:20
Alex 华为云学堂技术讲师
本期直播给大家带来的是理论与实践结合的华为云EI-API的服务介绍。从“主要功能,应用场景,实践案例,调用流程”四个维度来深入解析“语音交互API,文字识别API,自然语言处理API,图像识别API及图像搜索API”五大场景下API服务,同时结合实验,来加深开发者对API服务理解。
正在直播 -
企业员工、应届毕业生、在读研究生共探项目实践
2024/12/02 周一 19:00-21:00
姚圣伟 在职软件工程师 昇腾社区优秀开发者 华为云云享专家 HCDG天津地区发起人
大神带你一键了解和掌握LeakyReLU自定义算子在ONNX网络中应用和优化技巧,在线分享如何入门,以及在工作中如何结合实际项目进行学习
即将直播 -
昇腾云服务ModelArts深度解析:理论基础与实践应用指南
2024/12/03 周二 14:30-16:30
Alex 华为云学堂技术讲师
如何快速创建和部署模型,管理全周期AI工作流呢?本期直播聚焦华为昇腾云服务ModelArts一站式AI开发平台功能介绍,同时结合基于ModelArts 的实践性实验,帮助开发者从理论到实验更好地理解和使用ModelArts。
去报名
热门标签