银河麒麟(Kylin) - V4 移植Tensorflow-1.10.1版本 + Bazel编译工具编译

银河麒麟v4 (x88_64架构和arm架构) 离线安装docker arm架构的离线docker安装方式一样,唯一的区别是下载的安装包不一样而已,需要下载arm64版本的依赖包。银河麒麟v4 飞腾2000+ arm架构 离线安装docker。银河麒麟v4 x86_64架构 离线安装docker。docker安装时缺少的依赖包下载地址。安装系统的对应的linux内核版本。安装系统的对应的linux内核版本。arm架构的docker安装包下载。docker文件下载地址。安装过程中报错,一般都是。2.查看操作系统信息。2.查看操作系统信息。 阅读详情
AI摘要

本文详细描述了一名技术专家如何在银河麒麟V4ARM平台上,为项目需求编译Tensorflow1.10.1版本并配合Bazel工具解决编译问题的过程,包括环境配置、依赖安装和编译步骤,以供后续参考。

银河麒麟(Kylin) - V4 移植Tensorflow-1.10.1版本 + Bazel编译工具编译



在这里插入图片描述

原因

项目需求:需要用到Tensorflow工具处理数据,在网络上搜索发现ARM平台没有可以直接安装的安装包,想要用这个工具只能编译源码。在此期间测试了Tensorflow其他版本都是因为编译中报各种错误,导致编译失败。项目需求指定操作系统只能用银河麒麟系统V4版本,Tensorflow版本也是指定只能是1.X版本,不能用最新的2.X版本。还好不指定Tensorflow-1.X后面的小版本号。经过长达一个星期的测试编译各种Tensorflow1.X版本,终于在测试编译Tensorflow-1.10.1版本编译成功了!!!
在此记录、方便以后查看。


测试环境

电脑配置

  • 主板 :联想KaiTian M740J
  • CPU:飞腾 D2000/8(64位,8核)
  • 内存:16G
  • 硬盘:256GB
  • 系统:银河麒麟桌面操作系统V4
  • 平台架构:ARM


准备工作

1、编译Tensorflow有对应的编译工具如图:

在这里插入图片描述

注意:

我编译的版本为CPU版本

如果需要GPU版本:点击查看构建工具与Tensorflow对应的版本

2、TensorFlow 软件适配

安装编译需要的依赖包

  • Java 8 (e.g. openjdk-8-jre) installed
  • Python
  • Pip
  • NumPy
  • python-virtualenv
  • Bazel 0.15.0
$ apt-get install python-dev
$ sudo apt update
$ sudo apt install python-pip
$ pip install --upgrade pip
$ pip install setuptools six numpy wheel mock
$ pip install keras_preprocessing
$ apt-get install python-enum34

我的系统自带JDK8版本

没有的话自己下载一个安装:
Install OpenJDK 8

$ wget http://openjdk.linaro.org/releases/jdk8u-server-release-1708.tar.xz
$ tar xvf jdk8u-server-release-1708.tar.xz
$ cd jdk8u-server-release-1708
$ export JAVA_HOME=$PWD
$ cd jre/lib/security/
$ rm cacerts
 
(for CentOS 7) $ ln --symbolic /etc/pki/java/cacerts .
(for Debian Jessie) $ ln --symbolic /etc/ssl/certs/java/cacerts . 
 
 
$ cd jdk8u-server-release-1708/bin
$ export PATH=$PWD:$PATH


编译

1、编译安装Bazel

先创建一个bazel-0.15.0文件夹,在解压bazel-0.15.0-dist.zip文件指向这个创建的bazel-0.15.0文件夹。(不指向文件夹的话解压的所有文件都在当前目录下)
进入bazel-0.15.0文件夹

$ mkdir bazel-0.15.0
$ unzip bazel-0.15.0-dist.zip -d bazel-0.15.0
$ cd bazel-0.15.0

执行编译

$ ./compile.sh
#Copy bazel to $PATH
$ sudo cp output/bazel /usr/bin/

如图:出现这行代表编译完成
在这里插入图片描述

编译完成bazel在bazel-0.15.0文件夹的output文件夹里

最后打开output文件夹执行:./bazel会有个初始化的过程,如果正常打印,没有异常抛出那么恭喜你成功了。

在这里插入图片描述

把bazel文件拷贝到/usr/bin/下

$ bazel

在这里插入图片描述

安装完成

注意:

bazel和tensorflow有版本依赖关系,如果使用bazel编译tensorflow源代码切记版本不要搞错了。

RAM>=4GB,ROM>=16GB,编译整个过程RAM占用一度大于2GB,可能会内存溢出

CPU整个过程都几乎满载,编译过程中注意散热问题,不要编译到一半机器死掉

2、编译安装Tensorflow

  • 编译选项和以及平台相关修改
  • 针对飞腾平台,需要对部分源码进行少量修改,具体如下:
  1. tensorflow/BUILD 文件:
    添加:
config_setting(
       name = "linux_aarch64", 
       values = {"cpu": "aarch64"}, 
       visibility = ["//visibility:public"], 
       )
  1. tensorflow/contrib/lite/kernels/internal/BUILD 文件:
    注释掉所有 mfpu 相关的编译选项。

  2. 编译选项

$ ./configure

Python 版本路径选择填写:/usr/bin/python

jemalloc的相关选项 Y。

其余选项均选择 N 或 n。

  • 编译及安装
    进行编译:
$ bazel build -c opt --copt="-funsafe-math-optimizations"
--copt="-ftree-vectorize" --copt="-fomit-frame-pointer" --verbose_failures
tensorflow/tools/pip_package:build_pip_package

如图:出现这行代表编译完成
在这里插入图片描述

$ bazel-bin/tensorflow/tools/pip_package/build_pip_package
/tmp/tensorflow_pkg

如图:Build pip package
在这里插入图片描述

得到:tensorflow-1.10.1-cp27-cp27mu-linux_aarch64.whl

  1. 编译完成后,tensorflow 包位于:/tmp/tensorflow_pkg/下。
  2. 安装 TensorFlow:
$ pip install /tmp/tensorflow_pkg/tensorflow-1.10.1-cp27-cp27mu-linux_aarch64.whl
  1. 查看TensorFlow
 $  pip show tensorflow  

在这里插入图片描述

  1. TensorFlow 软件功能验证
    4.1 验证 TensorFlow 安装
    在 python 交互式环境下验证 TensorFlow 是否正确安装。

在这里插入图片描述

看到以上输出,说明 TensorFlow 已经安装完成。

  1. 测试demo
#!/usr/bin/env python
import os
import tensorflow as tf
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
 
mnist = tf.keras.datasets.mnist
 
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
 
model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])
 
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
 
model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)

执行结果如下

在这里插入图片描述


安装完成

编译成功:Kylin-4.0.2-desktop-sp4-arm64 编译完成 bazel-0.15.0

编译成功:Kylin-4.0.2-desktop-sp4-arm64 编译完成tensorflow-1.10.1-cp27-Linux

银河麒麟V4下离线安装安装docker,并解决docker离线安装中错误问题。 我下载的分别是containerd.io_1.3.7-1_amd64.deb ,docker-ce_19.03.9~3-0~ubuntu-xenial_amd64.deb ,docker-ce-cli_19.03.0~3-0~ubuntu-xenial_amd64.deb。地址:​ ​http://ftp.sjtu.edu.cn/ubuntu/pool/main/libs/libseccomp/正在将 containerd.io (1.3.7-1) 解包到 (1.3.7-1) 上 ... 阅读详情

相关推荐

国产化之虚拟ARM64-CPU安装银河麒麟操作系统

背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟v4,CPU使用飞腾处理器。我本地没有这个国产的处理器,但飞腾是基于ARMv8架构的64位处理器,所以理论上基于这个CPU架构的硬件应该都可以。 首先想到的是树莓派,这个开发板集成的ARM CPU,不过要看下是否为ARMv8架构,如果正好有的话可以试一试。不过这也有点重了,能模拟CPU就好了,最终找到了QEMU这个工具,可以在Windows上运行。 这篇文章就在Windows 10上创建一个模拟ARM64平台的虚拟机来安装银河麒麟操作系统。

程序员,AI探索者 7701

【20231129】银河麒麟V4系统(4.4.131-20200604)硬件解码支持问题

【20231214】银河麒麟系统(5.4.18-52-generic)ghost镜像还原失败问题排查记录

qq_43252610的博客 5154

【国产化系列】银河麒麟系统V4/V10/V10SP1版本镜像

提取码: cym4。

优快云明星博主,认证博客专家,视频、Matlab领域优质创作者。 3万+

银河麒麟(Kylin)系统Ghost镜像文件(.kyimg)系统还原方法

银河麒麟(Kylin)系统备份的Ghost镜像文件(.kyimg)系统还原方法

luotuo28的博客 5万+

《Linux运维实战:Consul-1.0.0银河麒麟Kylin V10-移植指南》

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例

东城绝神 9712

Kylin-4.0.2-desktop-sp2-arm64 编译完成QT5.12.8-Lenovo版本

型号:昭阳 R5000T-1 系统:Kylin-4.0.2-desktop-sp2_lenovo-20180409-arm64 QT:编译版本是QT5.12.8 测试编译QT5.12.8,亲测可用 其他设备、系统、自行测试 ---------------------------------------------------------------------------- 安装方法: 1、把qt5.12.8lenovo.tar.gz文件复制到系统根目录opt下给予权限 2、解压:sudo tar -xvf qt5.12.8lenovo.tar.gz 3、打开QT Creator - 工具 - Kits - Qt Vsersions 4、选择添加 文件系统opt/qt5.12.8/bin/qmake 确定 5、在构建套件 QT version 选择 QT 5.12.8 版本 6、完成

银河麒麟操作系统安装_V4/V10系统详细使用教程

构建高性能安卓运行环境,形成完整的国产平台安卓应用生态迁移解决方案,实现高效的图形中间层、统一设备接口中间层、多实例多窗口化运行机制、数据共享、音视频透传、一键安装、提升安卓APP体验和安全防护增强等功能,具有原生性、高兼容性、高融合性等特点,解决用户的多样化应用需求,将丰富、成熟的安卓生态迁移到国产平台下,目前可支持2000余款安卓应用(如微信、QQ、办公、股票、游戏等)。同源支持飞腾、鲲鹏、海思麒麟、龙芯、申威、海光、兆芯等国产CPU和Intel、AMD平台。8.设置完毕,开始安装,请耐心等待…

测试专家的专栏 1万+

Kylin-4.0.2-desktop-sp2-arm64 编译完成qt-creator-4.2.0

型号:昭阳 R5000T-1 系统:Kylin-4.0.2-desktop-sp2_lenovo-20180409-arm64 QT-Creator:编译版本是qt-creator-4.2.0 测试编译qt-creator-4.2.0 其他设备、系统、自行测试 ----------------------------------------------------------------------------- qt-creator-4.2.0,亲测可用 qt-creator-4.2.0,亲测可用 qt-creator-4.2.0,亲测可用

Kylin-4.0.2-desktop-sp4-20200728.J1-arm64.iso文件Kylin-4.0.2-desktop-sp4免费获取

链接: https://pan.baidu.com/s/1jBAGT9Bmntzz8WgYAhw40Q?pwd=m6q9 提取码: m6q9。通过网盘分享的文件:Kylin-4.0.2-desktop-sp4-20200728.J1-arm64.iso。--来自百度网盘超级会员v5的分享。

陈文治的博客 2271

Kylin-4.0.2-desktop-sp4-arm64 编译完成tensorflow-1.10.1-cp27-Linux

型号:KaiTian M740J 系统:Kylin-4.0.2-desktop-sp4-arm64 编译版本:tensorflow-1.10.1-cp27-cp27mu-linux_aarch64.whl 亲测可用 其他设备、系统、自行测试 ------------------------------------------------------------------------------------------------------------------ 系统版本为ARM64 版本 python版本为2.7 版本 此编译版本为CPU版本

U8-固定资产月末结账报错:BOF或EOF中有一个是真

度了下,发现此问题一般是由于fa_Vtsobject表缺少对应月份的记录导致,补上即可,但是查看发现此表记录正常。 跟踪后发现定位到以下语句: select * from AccInformation where cSysID = N'FA' and cName =N'bVoucherApply'上述语句执行后没有任何记录显示,但是在正常的账套执行是有记录的,那有可能就是记录丢失导致,执行以下

guizhouakun的博客 5917

银河麒麟服务器V4 SP2安装配置多路径

银河麒麟服务器V4 SP2安装配置多路径

sealy_chang的博客 4992

Linux运维人,该醒醒了,2019年要变天了

外界都说运维只是处于被动低效率手工救火的状态,企业对其重视程度不高,提起运维很多人能联想到的字眼就有“苦逼”、“辛苦”、“加班”、“背锅”。在大数据、人工智能、容器技术的强力加持下,运维这个传统的技术工种已经从“机械劳动”这样的刻板印象中蜕变出来,成为了任何一家技术公司所必须依赖和大力投入的核心技术能力。 现在,运维人员的发展前景也开始让很多程序员眼羡,作为Linux运维人员的你:这一年,你的L...

qq_43083284的博客 1万+

解决Linux镜像使用软碟通制作系统安装盘无法启动的问题

说到系统安装盘,一般人都会联想到PE、大白菜、软碟通等名词,而这些名词对应的工具都是在Windows平台的,那么在Linux平台如果我需要做系统安装盘应该怎么做呢? 一、准备工作 1. 1、下载系统/PE镜像 这个就不说了 1.2、把镜像丢到Linux主机 这个也不说了 二、开始写入 2.1、U盘格式化 在写入之前,需要对U盘进行格式化,具体怎么个格式化法,这里主要涉及两种因素 镜像大小 系统平台 按平台 平台 可 采用的格式 Windows FAT32、ntfs Linux fat

坐公交也用券 3366

VHDL按键消抖(状态机版本)

检测下降沿:设置一个和,分别代表之前的之前和之前的信号状态,若两个信号key_in_d2=1,key_in_d1=0,他俩的not key_in_d2 and key_in_d1为1,则说明下降沿产生,把它设置为标志位key_flag。延时计数:50MHz的板子每次计数需要20ns,而抖动时间大约为5-10ms。所以取7ms,作为延时时间。可以看见当检测到下降沿时,开始计数计数计满再次检测,若为低电平则为按下按键,否则为抖动。通过检测下降沿来临,延时计数再次检测,如果为低电平则为按键按下。

qq_69639216的博客 1084

Virtuoso ADE Explorer实战技巧:从基础操作到高级仿真

本文深入解析了Virtuoso ADE Explorer在模拟电路仿真中的核心价值与实战技巧。作为Cadence平台的专业工具,它专为高效、系统化的设计空间探索而生,能大幅提升PVT验证、参数扫描和蒙特卡洛分析的效率。文章从基础界面操作、并行仿真管理,到高级的参数扫描、数据报告生成及蒙特卡洛结果深度剖析,提供了全面的避坑指南与工作流优化建议,帮助工程师从重复劳动中解放,专注于电路设计与性能优化。

ios99的博客 899

在银河麒麟V4系统下使用Qt(软件配置方面)

最近做一个项目,在银河麒麟V4系统下使用Qt,做一个使用restful接口传输Json数据的通信代码。

weixin_45406539的博客 2653

publisher与subscriber话题的消息类型md5sum不一致问题

[ERROR] [1604235557.591296096]: Client [/range_vision_fusion_01] wants topic /detection/vision_objects to have datatype/md5sum [autoware_msgs/DetectedObjectArray/13415342e539aa36ea9a6f04ffaf39b4], but our version has [autoware_msgs/DetectedObjectArray/c16a

cxhmike的博客 6620

银河麒麟、中标麒麟学习实操资料汇总(含V4、V7、V10)

在数据库国产化替代的浪潮之下,一批批国产操作系统也崭露头角。墨天轮社区便选取了中国操作系统排行榜上排名靠前的麒麟软件,依照各版本整理了相关的实操文档、文章,分享给大家。

Era666的博客 1万+

Ubuntu 24.04 搭建 Squid 代理服务器终极指南:从入门到 HTTPS 缓存AI模型

本文详细指导在Ubuntu 24.04系统部署Squid代理服务器,实现AI大模型文件的高效缓存。重点内容包括:1) 安装squid及必备的squid-openssl扩展包;2) 配置HTTPS拦截(SSL-Bumping)功能,创建CA证书和SSL数据库;3) 优化缓存策略,设置4TB存储空间并强制缓存常见大文件格式;4) 结合华为防火墙实现透明代理。文章特别强调实际部署中的关键注意事项和常见错误解决方案,如证书路径配置、权限设置等问题,帮助用户快速搭建企业级缓存代理服务。

zlt315的博客 1920

从零构建Fama-French多因子模型:量化投资系统开发实战

本文详细介绍了如何从零构建Fama-French多因子模型,并将其应用于量化投资系统的开发。首先,文章概述了Fama-French多因子模型的背景、核心原理和架构,解释了其如何通过引入市场风险、规模、价值、盈利和投资等因子来解释股票收益率的变化。接着,文章详细阐述了构建该模型的具体步骤,包括因子的计算、因子暴露的确定以及模型的估计。通过数学模型和公式,文章对模型进行了理论推导,并举例说明了其应用。此外,文章还提供了项目实战的代码案例,从开发环境搭建到源代码实现,逐步指导读者完成量化投资系统的开发。最后,文章

2501_92132293的博客 1226

麒麟服务器操作系统V4,银河麒麟服务器操作系统V4

银河麒麟服务器操作系统是在“863计划”和国家核高基科技重大专项支持下,研制而成的高安全、高可靠、高可用国产操作系统,系统实现对飞腾、龙芯、鲲鹏、兆芯、海光等自主CPU及x86平台的支持,已经在国防、军工、政务、电力、航天、金融、电信、教育、大中型企业等行业或领域得到广泛应用。产品特点安全创新信息安全产品检测中心第四级结构化保护级安全认证,以及首家通过军B+级安全认证的操作系统,是国内高安全等级的...

weixin_33279929的博客 3485

uniapp [安卓苹果App端] - 实现获取手机日历读写权限+调用本机日历数据及操作功能+日历中插入事项事件提醒,检测权限手机日历权限是否开启并引导用户同意授权,uniApp app端开启日历授权

uni-app,权限,手机日历权限,安卓Android,苹果ios,uniapp安卓android获取本机日历读写权限使用,uni-app获取日历权限并实现插入事项事件功能 uniapp苹果IOS系统不支持怎么办,判断权限,权限被拒绝了怎么办,获取日历权限报错,读取日历数据农历阴历并操作插入移除,给用户手机日历中放入一条提示,UniApp调用日历进行读写,打包上架后如何获取,安卓ios权限检测,安卓和ios权限获取,uniapp的APP端日历读写权限与使用示例代码,如何开启日历权限,日历的新增事项和删除,判

🏆 前端领域优质创作者 1万+

银河麒麟v4.0.2安装

安装国产银河麒麟

weixin_55609813的博客 2万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

在win7(X86架构CPU)下使用QEMU虚拟机运行银河麒麟操作系统(ARM架构CPU)

在win7(X86架构CPU)下使用QEMU虚拟机运行银河麒麟操作系统(ARM架构CPU) 1、下载并安装QEMU虚拟机软件 https://qemu.weilnetz.de/w64/2020/ 2、准备好ARM银河麒麟操作系统.iso文件 Kylin-4.0.2-desktop-sp4-20200530.J1-arm64.iso 3、创建镜像文件 在win7命令窗口中运行以下命令来创建镜像文件 F:\QEMU\qemu-img.exe create F:\KYLIN\kylin\kylinDesktop

weixin_39789553的博客 7457

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Bazel 编译 Tensorflow (linux)

Bazel 编译 Tensorflow (linux)

weixin_30957413的博客 929

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: 联想 【SR659F V2】服务器 2*飞腾S2500-ARM64-安装统信系统
下一篇: 银河麒麟(Kylin) - V10 SP2高级服务器操作系统ARM64编译VSCode失败日志
alin、m
博客等级 码龄12年 639粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

alin、m

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

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

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

打赏作者

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

抵扣说明:

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

余额充值