發表文章

目前顯示的是 2017的文章

[DL] Tensorflow android demo

圖片
          最近在學習如何將tensorflow架在android上面,利用平板去跑深度學習。基本上是照的tensorflow官網的步驟,在修改自己環境問題,經過千辛萬苦終於跑出可執行的apk檔,現在就開始一步一步進行教學,希望之後使用的大家,也別踩到雷呀!! 執行的範例主要有以下三種: TF Classify: 物體分類 TF Stylize:   對相機預覽的影像進行圖像風格的變換 TF Detect:   偵測影像有人的位置,並劃出偵測框 引用: https://goo.gl/Wr2lKg 先前環境準備: 安裝android studio,並完成環境設置 https://developer.android.com/sx.html 下載NDK https://developer.android.com/ndk/downloads/older_releases.html#ndk-12b-downloads 下載tensprflow的官方文件 $ git clone https://github.com/tensorflow/tensorflow.git        並執行 $ cd tensorflow $ ./configure  下載bazel,mac 可以直接使用指令進行下載   $ brew install bazel 完成前置作業,開始修改要執行此專案需修改的程式部分修改<tensorflow_root>/WORKSPACE檔案, 將android_sdk_repository 和 android_ndk_repository 修改成自己電腦的環境 原始程式: # Uncomment and update the paths in these entries to build the Android demo. #android_sdk_repository( #    name = "androidsdk", #    api_level = 23, #    build_tools_version = "25.0.1", #    # Replace with path to Andro

[DL] Build simple model based on Tensorflow

圖片
本篇文章是從莫烦的學習影片學習的,主要是教學我們如何建置一個簡單的學習網絡。 以下的程式,主要是運用此方程式   y=Wx+b, 已知變數x,想利用兩個變數 W(weights),b(biases) 去算出我的們期望值y, 並另用SGD去降低loss值, 算出最能接近期望值y時的 W(weights)與b(biases) 以下程式: # coding=utf-8 import tensorflow as tf import numpy as np # creat data, random value between 0 and 1 x_data = np.random.rand(100).astype(np.float32) # define the learn value # to learn value: Weight:0.1  biases:0.3 # y_data= 真實值 y_data = x_data*0.1+0.3 ### creat tensorflow structure start ### # define the range and initial weights Weights = tf.Variable(tf.random_uniform([1],-1.0,1.0)) biases = tf.Variable(tf.zeros([1])) # 給定 tensorflow 學習的函數 # y = 預值測 y = Weights*x_data + biases # build loss  function loss = tf.reduce_mean(tf.square(y-y_data)) # select optimal methods to reduce loss and learning rate is always less than 1 # Define learning rate=0.5 optimizer = tf.train.GradientDescentOptimizer(0.5) #Optimal the loss value to small ,the best value is 0 train = optimizer.minimize(loss) #Initial all variabl

[Android] Implement a service

圖片
android service lifecycle 實作了service program ,已把程式放置在GitHub。 link: service實作

[Android] Implement a camera demo

實作了相機測試的程式 ,已把程式放置在github了。 鏈結: 相機實作

[分享] Google Cloud OnBoard Taiwan 心得分享

圖片
    有幸參加Google Cloud OnBoard大會,這次大會可以說是Google首次在台分享GCP (Google Cloud Platform) ,參與此活動算是收穫滿滿可以獲得一個參與的證書、一本大會分享ppt的書籍、GCP的特製衣服,重點不是吃喝玩樂,當然還是獲得滿滿的新知開心回家拉。 以下顯示整體流程:     整體活動下來真的充實也蠻緊湊的,會議主要是由Google CEO做開場,介紹現在Google 會朝向AI、Machine Learning以及現在最夯的Deep Learning,並且介紹GCP的優勢與未來展望。 開場完換成GCPUG.TW (Google Cloud  Platform Taiwan)的兩位強者大大分享Google Cloud  Platform使用方法與、功能以及細節,還有現場demo教大家如何使用,重點如何計算計費,長久使用還可以打折,這方案對於沒有資金買設備的使用者還算蠻方便的。 其實整體我比較有興趣的是下午介紹大數據與Maching Lrarning的介紹,講者還有demo一個蠻有趣的軟體"Autodraw"。我測試了一下,覺得還蠻好玩的,手殘的我畫了一棟房子 他居然可以辨識出我要畫的是房子,而且還可以讓我選擇要變成哪種漂亮的房子。 有了選擇,畫圖極弱的我也可以當然畫一棟超漂亮的房子,很神奇吧!! 結束整體會議,除了提供好多好吃的食物還有人山人海的人潮外,還大致了解GCP中的工具與技術,裡頭的細節就不寫在這了,因為官網其實也寫得蠻清楚,對了整體議程最後還有提供我們300美金讓大家去使用GCP的功能,有空我也來玩玩看 ,整體蠻推薦這次的活動 ,之後如果再有這種活動蠻推薦大家參加的。 補充鏈結介紹: GCPUG.TW 社團 Google Cloud Platform 平台細節介紹 AutoDraw

[Android] TextView 換行

圖片
想必很多人會碰到 TextView 元件中字串無法換行的問題,假設是直接在xml文件中打“這是第一行,aaaaa,再來第二行,bbbbb”,顯示如下 : 所打的字串都會顯示在同一行,如何才能換行呢?非常簡單,只需要在要換行的地方加入“ \n ”就可以了,因此我們將剛剛的字串改成 “這是第一行,aaaaa,\n再來第二行,bbbbb”,顯示的結果如下: 立馬變成我們所想要的樣子拉~另外也是可以在java的文件中進去換行,不過我覺得最方便的還是在xml直接去做修改。

[Blogger] 檢測您的網站是否適合在行動裝置上瀏覽

圖片
最近發現了一個新工具,出自於Google,主要是可以利用此工,讓寫Blog的作者們知道自己所架設的網頁,使用於手機瀏覽是否會有不順暢問題,更讓我們自己了解網頁還有哪些可以再改進的地方。 首先,我們先進入到 檢測的頁面 按此處 ,顯示如下圖。 接著只需要將需要測試的路落格網址貼上,接著就會開始分析 分析完畢會顯示以下三種分析: 行動裝置相容性:網站不適合透過行動裝置瀏覽時,訪客掉頭就走的機率高出 5 倍 行動裝置載入速度:如果行動網站無法在 3 秒內載入網頁,幾乎有半數的訪客會選擇離開 桌機載入速度:每 10 位使用者中有 9 位會用多台裝置處理日常工作 我們就可依據分析的結果再去調整我們部落格的架構,讓使用者在觀賞我們的部落格上更方便且讓更多人想使用,如果想要更細節的分析,也可以按下取得免費報告,就可以看到更完整分析囉。 參考網址: https://testmysite.thinkwithgoogle.com/intl/zh-tw?utm_source=google_search&utm_medium=mpushup&utm_campaign=c_tw

[Blogger]在線人數即時顯示

圖片
如果你也有Blogger,相信一定會很想知道到底有多少人看你的Blogger,如何使用即時人數顯示非常的簡單," whos.amung.us  "就有提供此功能,而且還是免費的唷!以下我們就開始教學如何再自己的Blogger製作顯示即時線上人數的功能吧! 步驟一: 進入  whos.amung.us  網頁中,切換到home 步驟二: 在同一頁面,複製以下語法 步驟三: 回到自己的blogger,因為我使用google blogger功能,所以界面不一定大家都相同,首先選擇版面配置---->新增小工具----->選擇 HTML/JavaScript,再來就只要把代碼貼上去,就完成囉!! 就可以完成以下顯示囉! 如果想要客製化顏色或是版本也是可以的,只要到  whos.amung.us   網站選擇" weight"選項,就可以客製化自己想要的顏色以及不同的樣板,當然客製好自己喜歡的版本,一樣是照上面流程,就可以完成即時顯示線人數的功能囉! 圖片來源: http://whos.amung.us/

[Android]android Global variable 寫法

圖片
寫了一陣子android,最常遇到的問題就是多個Activity 中需要傳送資料與共用管理資料,解決方法可以用Bundle的寫法去處理,但我發現使用Application去產生Global variable(全域變數)這個方法方便許多,也比較不會把資料錯亂,因此今天來分享使用Application 的方法,共同使用全域變數. 首先需要先創立的一個class來繼承Application import android.app.Application; public class GlobalVariable extends Application {     private String Word;     //要傳送的字串     //修改 變數字串     public void setWord(String word){         this.Word = word;     }     //顯示 變數字串     public String getWord() {         return Word;     } } 並在AndroidMainifest.xml新增android:name,並填上剛剛創建的class名稱,強調名稱前一定要記得加 ,本人就是一不小心忘記加結果跑一堆bug. <application         android:name=".GlobalVariable"         android:allowBackup="true"         android:icon="@mipmap/ic_launcher"         android:label="@string/app_name"         android:supportsRtl="true"         android:theme="@style/AppTheme">         <activity android:name=".MainActivity">             <intent-filter>                

[Android] Creating a JAR file with multiple library

圖片
學習會如何打包.jar 與使用後,作者嘗試將library中再包一個jar檔,但發現在使用上出現了問題,為了好了解,所以我舉例解釋. 首先我們先解釋目前的架構,目前我會有的一個library,方便說明我把他命名成firstlib, firstlib內容使用到另一個library,我稱它為secondlib。因此我們需要先將secondlib產生的secondLib.jar檔放入firstlib去做使用。 secondlib我新創一個SecondActivity的class,簡單寫一個函式已之後使用,程式碼如下: public class SecondActivity {     public String secondoutput(){         String output;         output="second success";         return output;     } } 再來下圖表示我們將secondlib產生的secondLib.jar放入於firstlib下。 firstlib我也同樣創一個FirstActivity的class,簡單寫一個函式並且有使用到secondLib的函式,程式碼如下: public class FirstActivity {     SecondActivity name= new SecondActivity();     public String firstoutput(){         String output;         output=name.secondoutput();         return output;     } } 再來我們又做同樣的步驟再將firstlib打包成firstLib.jar。最終將firstLib.jar放入我創建的project使用,並附上架構如下圖: 問題來了,就是再使用firstlib.jar檔時,我們竟然不能使用secondLib.jar的函式,我們打開firstlib.jar看看,可以看到裡頭只有2個class,根本沒有顯示任何secondLib.jar的資訊. 我找了很久才發現問題再於jar檔不能多重打包,當然我們還有另外的替代方案就是使用.aar檔

[Android] build the JAR file in Android Studio

圖片
對於我android新手來說,很常使用別人的library或是.jar做練習,但卻都沒有自己產生過.jar去使用,因此今天自己來練習如何產生.jar去作使用 首先我們先要File---->New--->new project ,我將這project 先命名為test 再來因為要做一個library,所以再到File---->new module---->選擇 Android Library 我將這 module命名為testlibrary,完成之後,我們可以看到整體架構如下: 再來我們先需要完成前置步驟,先看下面如果是要建成library,我們需要修改testlibrary的gradle 要將gradle 的apple plugin改成"library形式",如果已經是 'com.android.library'就不需要再修改了 原本: apply plugin: 'com.android.application' library版本: apply plugin: 'com.android.library' 並在相同檔案下,加入以下程式碼 task makeJar(type: Copy) { from('build/intermediates/bundles/release/') into('build/libs/') include('classes.jar') rename ('classes.jar', 'mytestLibrary.jar') } task clearJar(type: Delete) { delete 'build/libs/mytestLibrary.jar' makeJar.dependsOn(clearJar, build) 完成以上步驟,我們就可以來產生.jar擋了,產生.jar有兩種方法,就看使用者比較喜歡哪一種方法 第一種使用terminal產生: 路徑到你的專案下,輸入./ gradlew make