Posts

Showing posts from 2018

Deep Learning 開發框架 Tensorflow vs Keras vs PyTorch 我應該學哪個?

Deep Learning 開發框架 Tensorflow vs Keras vs PyTorch 我應該學哪個? 簡答(2018-06-05) 基礎或入門:Keras。用 Keras 感覺一下 Deep Learning 的威力,Keras 的好處就是對於現成的架構、資料集可以很簡單幾十行程式碼就能實現,不過因為Keras是高層的API,無法方便的對架構微調、實驗新的架構,要做這些事請考慮用Pytorch或Tensorflow 研究與快速開發:Pytorch。 向人群靠攏:Tensorflow。因為開發的比PyTorch早,很多專案都是用Tensorflow寫的。 PyTorch與Tensorflow的設計原則差異 PyTorch與Tensorflow的設計原則上,就差在PyTorch是「Define-by-Run」而Tensorflow是「Define-and-Run」。 兩者各是什麼意思,而實驗寫作起來又會有什麼差呢?要回答這個問題,我們直接以有DL界Hello World的MNIST為範例。 PyTorch MNIST Tensorflow MNIST 在看PyTorch MNIST時,你可以用一般解讀Python程式的順序: Line 109 : main() Line 58 : def main () : Line 104 : model = Net().to(device) #定義模型,這時會呼叫class Net(nn.Module)的__init__函式,初始化網路架構 Line 104 : train(args, model, device, train_loader, optimizer, epoch) #把模型丟進train函式裡 Line 27 : def train (args, model, device, train_loader, optimizer, epoch) : Line 32 : output = model(data) #實際把data輸入模型當中,這時會呼叫class Net(nn.Module)的forward函式,計算完網路forward後回傳softmax結果 … 看完這個流程,你或許會認為,這樣的流程不是理所當然嗎? 我們再來看Tenso

(Research Note) Model-Aided Monocular Visual-Inertial State Estimation and Dense Mapping

Image
Qiu, Kejie, and Shaojie Shen. “Model-aided monocular visual-inertial state estimation and dense mapping.” Intelligent Robots and Systems (IROS), 2017 IEEE/RSJ International Conference on. IEEE, 2017. 簡介 (Sensor Fusion 感測器融合) 利用三維模型定位得到全域姿態(global pose),修正VIO累積誤差 ​

ROS - Implementing publisher / subscriber using RoboWare

Image
ROS 的開發流程,跟早期的Android開發一樣,開發工具很原始,瑣碎機械化的部驟又多,開發時非常消磨耐性。 讓Android開發流程更順暢的功臣是AndroidStudio,而讓ROS開發流程簡化的就是RoboWare了(開發軼聞 本来做ROS底盘最后做了个IDE:RoboWare Studio诞生记 ) 以下展示了使用RoboWare加速開發的實際過程: 詳細解釋可以參照 ROS Robot Programming (English) Yoonseok Pyo page.151~ Sample code: https://github.com/ROBOTIS-GIT/ros_tutorials/tree/master/ros_tutorials_topic ​

Ubuntu Chrome Remote Desktop Setting

Ubuntu Chrome 遠端桌面設定 Ubuntu16.04 下用 Chrome Remote Desktop 取代緩慢的 Teamviewer 由於在Ubuntu下有使用遠端桌面的需求,找了習慣的Teamviewer來用,發現Teamviewer在Windows下算順暢但在Ubuntu下的速度慢得難以忍受,找了其它的替代方案如X11 server等,畫面陽春又無法直接操作原桌面GUI,難道沒有好用的遠端桌面嗎? Chrome Remote Desktop(CRD) 或許是個最好的解決方案……才怪 CRD在以預設安裝好時,一樣會以X11 server一樣的方式,為遠端連入建立一個Session,因此連入時,你將會看到桌面的Menu bar不見了,滑鼠也怪怪的,總之怎麼用怎麼不順,但別絕望的太早,設定一下CRD會是Ubuntu下用得最順手的遠端桌面。 Chrome 安裝 到官網下載 google-chrome-stable_current_amd64.deb $ sudo dpkg -i google-chrome-stable_current_amd64.deb $ sudo apt-get -f install $ sudo dpkg -i google-chrome-stable_current_amd64.deb Settings => Sign in to Chrome 安裝 Chrome Remote Desktop Plugin Remote Assistance => Get started => Share => 下載 chrome-remote-desktop_current_amd64.deb $ sudo dpkg -i chrome-remote-desktop_current_amd64.deb # 安裝缺乏的套件 $ sudo apt-get -f install $ sudo dpkg -i chrome-remote-desktop_current_amd64.deb 完成上述安裝後,還需要進一步設定 Chrome remote desktop 設定 停止 Chrome Remote Desktop: /opt/google/chrome-re

Numpy入門資源

快速入門 Numpy的101個練習 Numpy小抄 (出處: DataCamp ) ​

Deep learning roadmap

Image
Preparation 先備知識&工具 Numpy ​

Open3D: A Modern Library for 3D Data Processing

Image
Open3D 是一個開放原始碼的函式庫,支援對3D資料的快速開發,在接口端同時支援C++與Python,後端經過最佳化並針對平行化設計。 在 Open3D 之前,3D 資料常用 Point Cloud Library (PCL)處理,可惜的是在PCL開放源始碼後,開發不太活躍,在編譯時可以清楚的感覺到其壅腫的設計,使編譯時間拉長。 設定Open3D環境 (如果在以下文字說明安裝過程中遇到錯誤,可以參見影片,其中包含解決錯誤過程) 步驟 Pyenv 安裝 Open3D 安裝VS Code 執行Open3D 範例程式 Pyenv http://blog.codylab.com/python-pyenv-management/ 因為Open3D支援以python binding方式操作底層C++ API,這裡先設定好pyenv管理python版本 安裝 pyenv 和 pyenv-virtualenv $ git clone https://github.com/yyuu/pyenv.git ~/.pyenv $ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv $ sudo apt update $ sudo apt install python-pip $ sudo pip install virtualenv $ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm 把下列加到 ~/.bashrc export PYENV_ROOT= " $HOME /.pyenv" export PATH= " $PYENV_ROOT /bin: $PATH " eval " $(pyenv init -) " source ~/.bashrc pyenv install 3.6 . 3 pyenv global 3.