1. 程式人生 > >在android上編譯和執行python版的tensorflow

在android上編譯和執行python版的tensorflow

    Tensorflow採用python作為主語言,雖然tensorflow提供了運行於android的例子,但採用是java。基於原始碼,採用NDK,可以編譯出android版本的tensorflow。
    編譯環境採用ubuntu 16.04,NDK使用r13b版本,最新的r14版本編譯時有些問題。

1.下載原始碼 1.0版本

2. 編譯和安裝tensorflow,編譯期間需要下載,如果網路環境不好,可能會失敗,需要多次嘗試。

3. 修改WORDSPACE,取消註釋,設定android的sdk和ndk路徑,版本。

android_sdk_repository(
    name = "androidsdk",
    api_level = 23,
    build_tools_version = "25.0.2",
    # Replace with path to Android SDK on your system
    path = "/home/xxx/Android/Sdk",
)
#
android_ndk_repository(
    name="androidndk",
    #path="/home/xxx/Android/Sdk/ndk-bundle",
    path="/home/xxx/Android/android-ndk-r13b",
    api_level=21)


4. 編譯

bazel build -c opt //tensorflow/tools/pip_package:build_pip_package \--crosstool_top=//external:android/crosstool \[email protected]_tools//tools/cpp:toolchain \--cpu=armeabi-v7a --verbose_failures


    編譯期間,出現錯誤最多的是有關 STL的錯誤,一般解決方法是開啟對應包的BUILD,找到錯誤的包名,新增:

copts = [“-std=c++11”]

    沒有太大的問題,都是一些小錯誤,涉及到的地方較多,就不再一一列出,對應修改即可。

5. 示例和下載

    本文附件為python控制檯原始碼和編譯之後的tensorflow python包,執行結果如下:

WIFI環境下,可以在電腦上通過telnet連結到手機,執行tensorflow程式碼,如下:

Python控制檯原始碼採用android studio開發,Tensorflow python包解壓後,放到內建的sd卡的目錄/sdcard/tensorflow/python2.7/dist-packages.

下載:

相關推薦

android編譯執行pythontensorflow

    Tensorflow採用python作為主語言,雖然tensorflow提供了運行於android的例子,但採用是java。基於原始碼,採用NDK,可以編譯出android版本的tensorflow。     編譯環境採用ubuntu 16.04,NDK使用r13b

Android APP編譯執行原理

在本篇中,主要介紹Android平臺應用程式的執行原理,在閱讀了SDK文件中“Application Fundamentals”一篇的內容後,根據自己的理解繪製了下面的示意圖:       每個應用程式安裝後,系統便會為其分配一個獨立的儲存空間,所謂的“Securi

系統技術非業餘研究 » 如何在TILEPro64多核心板卡編譯執行Erlang

美國Tilera公司的眾核伺服器,單顆核心包含64顆CPU。硬體架構圖: 卡長這樣的: Erlang已經可以在這款CPU上成功執行,我們可以參考Ulf Wiger在Multicore ☺ Message-passing Concurrency 文件中關於Erlang在Tilera上的效能圖

android執行檔案交叉編譯執行

簡介 android一般使用java進行開發,但是有時候我們可能需要使用到native語言,使用C/C++進行編譯執行. 現在我們可以搜到很多使用android-studio和NDK進行編譯so執行的方式,我就不再贅述了,我們這裡主要講如何利用已經有的NDK工

交叉編譯環境學習(編譯Android的可執行程式)

        前幾天幫忙師兄發現的Android上的一個驅動程式漏洞,奈何技術不夠耐心不足,沒有找到漏洞的根源。由於程式要由c程式來觸發,而c程式是在pc上的開發的,要在Android裝置上執行,這

Linux鞏固記錄(1) java項目的編譯執行

mce frame cati readfile 知識 4.3 sse apach ast 由於要近期使用hadoop等進行相關任務執行,操作linux時候就多了 以前只在linux上配置J2EE項目執行環境,無非配置下jdk,部署tomcat,再通過docker或者jenk

Streaming執行PythonWordCount

hadoop streaming python 一:先寫map類import sys for line in sys.stdin: line = line.strip( ) words = line.split( ) for word in words: print(‘%s\t%s‘ % (wor

java --代碼編譯執行的整個過程

pan home 面向 share 簡單的 下一條 c++ oot 註解 1. 什麽是 JVM   JVM 是 Java 的核心和基礎,在 Java 編譯器和 os 平臺之間的虛擬處理器。它是一種基於下層的操作系統和硬件平臺並利用軟件方法來實現的抽象的計算機,可以在上面執行

window下如何使用文本編輯器(如記事本)創建、編譯執行Java程序

得到 輸入 ava 執行 world! ext tex 目錄 源代碼 window下如何使用文本編輯器(如記事本)創建Java源代碼文件,並編譯執行 第一步:在一個英文目錄下創建一個 .text 文件 第二步:編寫代碼 第三步:保存文件 選擇 文件>另

JVM原理(Java代碼編譯執行的整個過程+JVM內存管理及垃圾回收機制)

變化 並行 colspan 同時 簡單的 table 目前 動態 中心 轉載註明出處: http://blog.csdn.net/cutesource/article/details/5904501 JVM工作原理和特點主要是指操作系統裝入JVM是通過jdk中Java.ex

Android編譯二次打包

犯錯 解壓 就會 field har stat 生成 https make 參考:APK反編譯 一、工具介紹: 1、解壓工具 2、JDK 3.apktool: aapt.exe,apktool.bat,apktool.jar;三個在同一目錄結合使用,用來反編譯apk

Linux環境下c程序的編譯執行

環境變量 動態 main.c tor direct 環境 沒有 stdlib.h share 1 單個文件的編譯和執行創建main.c文件,內容如下: #include <stdio.h> #include <stdlib.h> int main

微服務分散式事務實戰(四)分散式事務處理器的下載,編譯執行

分散式事務處理器的下載,編譯和執行 (1)下載分散式事務處理器工程原始碼 https://github.com/codingapi/tx-lcn/ (2)匯入eclipse (3)修改配置檔案 填寫分散式事務伺服器地址,redis地址 ,註冊中心地址 ################

用dos命令編譯執行java檔案

1.安裝JDK,配置好環境變數 2.在命令列視窗進入java檔案所在路徑(用cd命令),假設HelloWorld.java檔案在C盤根目錄     3.在該路徑下輸入如下命令: javac. -d . HelloWorld.java  執行後可到j

Linux Kernel 0.01 的編譯執行

Linux Kernel 0.01 的編譯和執行 本文操作環境均在 Linux 系統中實現。 ================================================================================== 一、準備工作 下面說明的內容要

計算機編譯執行的定義

編譯:包括編譯和連結兩個過程。編譯部分,是把原始檔(程式碼)轉換成機器可以識別的二進位制語言,這個過程是針對每一個原始檔的。連結,是把編譯生成的二進位制檔案,組合成為一個系統可以執行的可執行檔案。這兩部分整體也叫編譯。也就是說,廣義的編譯,就是把程式碼,轉換成可執行檔案。執行:把編譯出來的可

Linux環境下c程式的編譯執行

1 單個檔案的編譯和執行建立main.c檔案,內容如下: #include <stdio.h> #include <stdlib.h> int main(void){ printf("Hello world!\n"); return 0; };   編譯:

無IDE時編譯執行Java

最近 Java subreddit 出現了一篇”在沒有IDE的情況下編譯Java包” 的帖子,這個帖子丟擲了這麼一個問題,“是否存在一個命令可以編譯一組處於同一資料夾下獨立包內的java檔案的方法(這稱之為bin),同時怎樣執行新的類檔案呢?” 它的提出者 kylolink解釋說

Java 程式碼編譯執行的整個過程

Java 位元組碼的執行是由 JVM 執行引擎來完成,流程圖如下所示: Java 程式碼編譯和執行的整個過程包含了以下三個重要的機制: Java 原始碼編譯機制 類載入機制 類執行機制 Java 原始碼編譯機制 Java 原始碼編譯由以下三個過程組成: 分析和輸入到符

windows命令列下編譯執行c/c++

我看了半天,也沒找到window命令列下編寫程式,說明這個不可取。 那我們只有利用已有檔案來編譯與運行了。 假設我在E盤裡有個.cpp檔案,我改如何編譯和執行她尼? 第一步:我可以直接到該目錄的檔案管理器視窗位址列執行命令:cmd,這樣就可以直接到達所需檔案的目錄。如下圖   &nbs