【TensorFlow】01 TensorFlow簡(jiǎn)介與Python基礎(chǔ)
892
2025-04-01
到2020年11月4日為止,MindSpore實(shí)戰(zhàn)營(yíng)已經(jīng)進(jìn)行到Part3了,張小白在10月28日做了個(gè)體驗(yàn)作業(yè):使用官方做好的APK?,在華為手機(jī)上安裝后,推理了以下幾張圖發(fā)了個(gè)朋友圈。
張小白一直沒(méi)有去做進(jìn)階作業(yè)。。。其實(shí),主要的原因很可能是因?yàn)樽约河X(jué)得自己體驗(yàn)作業(yè)做得也不好——無(wú)法找到作業(yè)題中所謂的“搞怪”照片:
搞笑而不搞怪,搞怪而不搞笑——要“雙搞”真的很難,真是傷透了張小白的腦筋。
直到張小白看到了論壇里 ML 飯 大大的文字。(https://bbs.huaweicloud.com/forum/thread-83725-1-1.html? )這才提起一點(diǎn)寫(xiě)作業(yè)的興趣。飯大大的文字雖然寫(xiě)的很好,但是親自走一回還是必要的。本來(lái)在飯大大的帖子后面跟了個(gè)貼,想寫(xiě)一個(gè)tips就完事兒了。結(jié)果發(fā)現(xiàn),需要躺的坑還是有幾個(gè)的。想來(lái)應(yīng)該可以成一篇文字。。。而且,寫(xiě)文字是有代價(jià)的。。。想到這點(diǎn),張小白不禁手癢癢的。。。
第一次的進(jìn)階作業(yè)的內(nèi)容是:利用官方提供的MindSpore Lite的相關(guān)Android項(xiàng)目生成一個(gè)APK,裝到安卓手機(jī)上,然后拍幾張照片發(fā)朋友圈,同時(shí)上傳到指定位置候?qū)彙!!?/p>
首先,根據(jù)本次實(shí)戰(zhàn)的指導(dǎo)文檔要求,需要安裝android studio 4.0,SDK版本大于等于26,并安裝NDK 21.3,CMake 3.10.2.
那就開(kāi)干吧。。。
自己的android studio(以下簡(jiǎn)稱(chēng)AS)自從安裝后,一直在在硬盤(pán)里待著(就是不實(shí)戰(zhàn))。如果這次不開(kāi)干的話(huà),估計(jì)下次啟動(dòng)它的時(shí)間應(yīng)該是 華為云新組織的 《移動(dòng)應(yīng)用開(kāi)發(fā)全棧成長(zhǎng)計(jì)劃》了。(此處別的小助手應(yīng)該表示下感激。。。)
首先下載MindSpore工程包。
當(dāng)然是一股腦兒把整個(gè)MindSpore都下下來(lái)。。。
打開(kāi)AS,進(jìn)入下面的configure-》setting。
進(jìn)入設(shè)置頁(yè)面:選擇 Appearance & Behavior? -> System Settings->Android SDK.
按照文檔的要求選擇NDK 21.3,CMake 3.10.2:
點(diǎn)擊OK
繼續(xù)OK
點(diǎn)擊Accept,Next
看上圖,它會(huì)去dl.google.com下載東西。這時(shí),飯大大的文檔就起到指導(dǎo)作用了。。。
在網(wǎng)站ping.chinaz.com中搜索dl.google.com:
然后記下找到的地址(隨便一個(gè),比如Ping的較快的)
寫(xiě)入本機(jī)的host文件:(路徑一般為:C:\Windows\System32\drivers\etc)
下載如飛一般的快。。。
很快,NDK和CMake就裝完了。
然后重新打開(kāi)AS,并打開(kāi)現(xiàn)有工程:工程位置:F:\learn\mindspore\model_zoo\official\lite\image_classification
結(jié)果系統(tǒng)就進(jìn)入了漫長(zhǎng)的gradle下載的等待期,項(xiàng)目工程遲遲不出內(nèi)容:。。。
張小白就知道該找度娘干活了。。。
(比如這個(gè)鏈接:https://www.jianshu.com/p/6a6c3a07b39f?utm_campaign? )
先下載好gradle-6.1.1-all.zip
然后刪除?C:\Users\zhang\.gradle\wrapper\dists\gradle-6.1.1-all\cfmwm155h49vnt3hynmlrsdst 目錄下的所有文件。并將下載好的gradle-6.1.1-all.zip 拷貝進(jìn)去。。
此外,由于gradle下載包的時(shí)候缺省還會(huì)找國(guó)外的源,所以需要在?C:\Users\zhang\.gradle 下新建一個(gè) init.gradle的文件:
內(nèi)容如下:
allprojects{ ????repositories?{ ????????def?ALIYUN_REPOSITORY_URL?=?'http://maven.aliyun.com/nexus/content/groups/public' ????????def?ALIYUN_JCENTER_URL?=?'http://maven.aliyun.com/nexus/content/repositories/jcenter' ????????all?{?ArtifactRepository?repo?-> ????????????if(repo?instanceof?MavenArtifactRepository){ ????????????????def?url?=?repo.url.toString() ????????????????if?(url.startsWith('https://repo1.maven.org/maven2')?||?url.startsWith('http://repo1.maven.org/maven2'))?{ ????????????????????project.logger.lifecycle?"Repository?${repo.url}?replaced?by?$ALIYUN_REPOSITORY_URL." ????????????????????remove?repo ????????????????} ????????????????if?(url.startsWith('https://jcenter.bintray.com/')?||?url.startsWith('http://jcenter.bintray.com/'))?{ ????????????????????project.logger.lifecycle?"Repository?${repo.url}?replaced?by?$ALIYUN_JCENTER_URL." ????????????????????remove?repo ????????????????} ????????????} ????????} ????????maven?{ ????????????url?ALIYUN_REPOSITORY_URL ????????????url?ALIYUN_JCENTER_URL ????????} ????} ????buildscript{ ????????repositories?{ ????????????def?ALIYUN_REPOSITORY_URL?=?'http://maven.aliyun.com/nexus/content/groups/public' ????????????def?ALIYUN_JCENTER_URL?=?'http://maven.aliyun.com/nexus/content/repositories/jcenter' ????????????all?{?ArtifactRepository?repo?-> ????????????????if(repo?instanceof?MavenArtifactRepository){ ????????????????????def?url?=?repo.url.toString() ????????????????????if?(url.startsWith('https://repo1.maven.org/maven2')?||?url.startsWith('http://repo1.maven.org/maven2'))?{ ????????????????????????project.logger.lifecycle?"Repository?${repo.url}?replaced?by?$ALIYUN_REPOSITORY_URL." ????????????????????????remove?repo ????????????????????} ????????????????????if?(url.startsWith('https://jcenter.bintray.com/')?||?url.startsWith('http://jcenter.bintray.com/'))?{ ????????????????????????project.logger.lifecycle?"Repository?${repo.url}?replaced?by?$ALIYUN_JCENTER_URL." ????????????????????????remove?repo ????????????????????} ????????????????} ????????????} ????????????maven?{ ????????????????url?ALIYUN_REPOSITORY_URL ????????????????url?ALIYUN_JCENTER_URL ????????????} ????????} ????} }
這樣就使用了 阿里云的gradle源。
然后重新打開(kāi)?F:\learn\mindspore\model_zoo\official\lite\image_classification 這個(gè)工程,頁(yè)面就會(huì)打開(kāi)了。。。(當(dāng)然,由于gradle會(huì)自動(dòng)做build,在打開(kāi)項(xiàng)目的過(guò)程中,還需要等待(loading),但是右下角的進(jìn)度會(huì)告訴你,AS在快速的下載一些包。。。)
如果沒(méi)有什么意外,會(huì)正常Loading結(jié)束并告訴我們,gradle已經(jīng)ok。
工程打開(kāi)后:
點(diǎn)擊Build-》Build Bundles/APK(s)->Build APK(s)
系統(tǒng)就會(huì)開(kāi)始編譯,結(jié)果生成了如下的文件:
app-customDebugType-unsigned.apk
好奇怪的名字,就將它安裝到手機(jī)上吧。
張小白用的方法是:電腦上,打開(kāi)QQ發(fā)出去。。。
手機(jī)上打開(kāi)QQ收下來(lái)。。
點(diǎn)擊“安裝”
點(diǎn)擊“允許”
點(diǎn)擊“繼續(xù)安裝”
不可避免的失敗了。
這個(gè)其實(shí)張小白以前也遇到過(guò)(就是這次忘記了)。就是沒(méi)簽名的安裝包,無(wú)法裝。。。。
所以,還是需要AS生成一個(gè)帶簽名的安裝包。下面先解決這個(gè)問(wèn)題。
當(dāng)然是繼續(xù)度娘。。。。
好像也不難。。
點(diǎn)擊build-》Generate Signed Bundle/APK...
出現(xiàn)以下畫(huà)面:
選擇APK,next
點(diǎn)擊Create New...
在錄入以上內(nèi)容的同時(shí),記得在工程的目錄下建立一個(gè)signAPK目錄(存jks文件)
在前面那張圖點(diǎn)擊OK繼續(xù)。。
選擇release并都選中v1,v2。。點(diǎn)擊Finish。
系統(tǒng)當(dāng)時(shí)會(huì)彈出一個(gè)提示框提示用戶(hù)需要處理一下jks文件。。。不要緊。把那句話(huà)copy下來(lái)。
在命令行窗口執(zhí)行:
當(dāng)然,上面報(bào)了一個(gè)錯(cuò)誤,繼續(xù)度娘發(fā)現(xiàn),原來(lái)是文件名重復(fù)了。。。
簡(jiǎn)單,修改第二個(gè)文件名為 SignDemo1.jks
成功的完成了簽名的密鑰導(dǎo)入。
下面讓張小白生成個(gè)新的帶簽名的APK吧。。。
重新點(diǎn)擊Build-》Build Bundles/APK(s)->Build APK(s)
這回成功在app/release目錄下生成了 app-release.apk
同樣將這個(gè)文件,使用電腦QQ傳過(guò)去:
然后在手機(jī)上接收。。
安裝:
點(diǎn)擊允許。。。
沒(méi)有風(fēng)險(xiǎn),繼續(xù)安裝。。
安裝成功。。
打開(kāi)APP。
照一下耳機(jī):
推理出 植物,電風(fēng)扇,基礎(chǔ)設(shè)施,花瓣。。(嗯,花瓣可能是對(duì)的)
手機(jī),看來(lái)MS Lite只是懂手機(jī)。。
植物,花園。。。很好。。
海報(bào)。。。
當(dāng)然,后面兩個(gè)沒(méi)有識(shí)別出來(lái)是書(shū)。。。這還是有點(diǎn)遺憾的。。。
原來(lái)MS只深度學(xué)習(xí),卻不識(shí)書(shū)。。。這個(gè)結(jié)論也著實(shí)讓張小白嚇了一跳啊~~
不過(guò)這個(gè)APP,張小白覺(jué)得,倒是很有可能延伸到張小白最新關(guān)注的垃圾分類(lèi)應(yīng)用上去。。(https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=84854&page=2#pid442638? )
(全文完,謝謝閱讀)
MindSpore EI企業(yè)智能
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。