Tag Archives: AI人工智慧

[ 教學技術文翻譯 ] 如何在 ubuntu 16.04或之後的版本,安裝 Tensorflow ?

作者/攝影

翻譯:宗諭

審閱:阿吉老師

主題圖片:翻攝自ubuntu及TensorFlow網站,特此致謝!

說明

原文請見,感謝TensorFlow團隊授權,特此致謝!

文章分類教學技術文
材料表
  • ubuntu 16.04或之後的版本(64位元)

 

硬體需求:

1.從TensorFlow 1.6開始,執行檔使用AVX指令集,因此在較舊的CPU上,可能無法執行。

2.請先閱讀GPU支援說明,並在ubuntu上設定好能安裝CUDA的GPU。

 

Step1:請在您的系統上先安裝Python開發環境(需使用Python 3.4、3.5或3.6)。

請用以下指令來檢查:

python3 --version
pip3 --version
virtualenv --version

 

如果這些套件都已經安裝好了,請跳過下一步。若沒有安裝好的話,請安裝Pythonpip package managerVirtualenv

sudo apt update
sudo apt install python3-dev python3-pip
sudo pip3 install -U virtualenv  # system-wide install

 

Step2:建立虛擬環境(推薦)

Python virtual environments are used to isolate package installation from the system.

之所以要建立個別的Python虛擬環境,是為了從作業系統隔離不同版本的套件。

 

Create a new virtual environment by choosing a Python interpreter and making a ./venv directory to hold it:

1.藉由選擇一個Python直譯器並產生一個./venv目錄存放它,以建立一個新的虛擬環境。

virtualenv --system-site-packages -p python3 ./venv

 

2.使用shell指令來啟動虛擬環境。

source ./venv/bin/activate  # sh, bash, ksh, or zsh

 

When virtualenv is active, your shell prompt is prefixed with (venv).

3.當虛擬環境被啟動,您電腦上的提示符號的前面會多了一個(venv)。

 

Install packages within a virtual environment without affecting the host system setup. Start by upgrading pip:

4.在虛擬環境中安裝套件,不會影響主機系統的設定。讓我們先升級pip:

pip install --upgrade pip

pip list  # show packages installed within the virtual environment

 

5.如果您已經不需使用TensorFlow,請用以下命令離開虛擬環境:

deactivate  # don't exit until you're done using TensorFlow

 

Step3:安裝TensorFlow pip套件

 Choose one of the following TensorFlow packages to install from PyPI:

因為本文使用的作業系統是ubuntu,所以請根據您的電腦規格,從PyPI來安裝下列其中一個TensorFlow套件:

  • tensorflow– 當前版本,只支援CPU,推薦初學者安裝。
  • tensorflow-gpu– 當前版本,支援GPU(ubuntu和Windows)
  • tf-nightly – nightly版本,只支援CPU,不穩定。
  • tf-nightly-gpu–nightly版本,支援GPU,不穩定(ubuntu和Windows)

 

請在虛擬環境中輸入以下命令來安裝您所要的TensorFlow版本,例如:

pip install --upgrade tensorflow

 

接下來,驗證安裝:

python -c "import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))"

 

如果沒有看到錯誤訊息,就安裝完成了!接下來,讀者可以先閱讀一些教學文件,然後展開對TensorFlow的初體驗。

 

備註:如果想要購買人工智慧相關產品,歡迎洽詢機器人王國商城

 

相關文章

[ 翻譯 ] 2018.11.06- 背後原理大解析:如何運用強化學習的演算法,自動化圖像資料擴增?

翻譯

宗諭

審閱

阿吉老師

圖片

Google AI 部落格

主題圖片:Designed by Zivile_z

說明

本文源自 Google AI 部落格,經 Google 同意轉載,特此致謝!

 

The success of deep learning in computer vision can be partially attributed to the availability of large amounts of labeled training data — a model’s performance typically improves as you increase the quality, diversity and the amount of training data. However, collecting enough quality data to train a model to perform well is often prohibitively difficult. One way around this is to hardcode image symmetries into neural network architectures so they perform better or have experts manually design data augmentation methods, like rotation and flipping, that are commonly used to train well-performing vision models. However, until recently, less attention has been paid to finding ways to automatically augment existing data using machine learning. Inspired by the results of our AutoML efforts to design neural network architectures and optimizers to replace components of systems that were previously human designed, we asked ourselves: can we also automate the procedure of data augmentation?

深度學習在電腦視覺領域的成功,部分可歸功於可以取用大量已被標記好的訓練資料。因為隨著使用者增加訓練資料的質、量及多樣性,模型的效能通常會提升。然而,常見的狀況是難以收集到高品質的資料來訓練模型,效能也因此提升不起來。解決這個問題的方法之一,是在神經網路架構中將圖像對稱寫死,好提升模型效能;或是讓專家採取手動設計資料擴增的方法,例如旋轉或翻轉,這些方法已普遍用於訓練出高效能的視覺模型。但直到最近,人們才把注意力放在如何運用機器學習找到自動擴增現有資料的方法。為替換先前由人類設計的系統元件,我們運用AutoML設計神經網路架構優化方法,得到相當好的成果。受到這樣成果的啟發,我們不禁自問:「資料擴增的程序也可以自動化嗎?」

 

n “AutoAugment: Learning Augmentation Policies from Data”, we explore a reinforcement learning algorithm which increases both the amount and diversity of data in an existing training dataset. Intuitively, data augmentation is used to teach a model about image invariances in the data domain in a way that makes a neural network invariant to these important symmetries, thus improving its performance. Unlike previous state-of-the-art deep learning models that used hand-designed data augmentation policies, we used reinforcement learning to find the optimal image transformation policies from the data itself. The result improved performance of computer vision models without relying on the production of new and ever expanding datasets.

在”AutoAugment: Learning Augmentation Policies from Data” 這篇論文中,我們探索一種強化學習的演算法,它能增加現存訓練資料集中資料的量和多樣性。直覺上,資料擴增被用來教導模型關於資料域中影像的不變性,在某種程度上使神經網路對這些重要的對稱性也維持不變,因而能改善這個神經網路的效能。不像之前最先進的深度學習模型採用人類設計的的資料擴增策略,我們運用強化學習,從資料本身發現最佳的圖像轉換原則。運用這些原則的結果改善了電腦視覺模型的效能,而無須仰賴新的且不斷變大的資料集。

 

Augmenting Training Data
The idea behind data augmentation is simple: images have many symmetries that don’t change the information present in the image. For example, the mirror reflection of a dog is still a dog. While some of these “invariances” are obvious to humans, many are not. For example, the mixup method augments data by placing images on top of each other during training, resulting in data which improves neural network performance.

擴增訓練的資料

資料擴增的原理十分簡單:一張圖會有許多的對稱性,它們不會改變這張圖所要呈現的資訊。例如,一條狗做鏡像之後仍然是一條狗。但這些「不變的地方」對我們人類來說,有的相當明顯,有些則不然。例如,「混合(mixup)」方法會在訓練時將影像放置於彼此的上方來擴增資料,進而提升神經網路的效能。

圖1

 

AutoAugment is an automatic way to design custom data augmentation policies for computer vision datasets, e.g., guiding the selection of basic image transformation operations, such as flipping an image horizontally/vertically, rotating an image, changing the color of an image, etc. AutoAugment not only predicts what image transformations to combine, but also the per-image probability and magnitude of the transformation used, so that the image is not always manipulated in the same way. AutoAugment is able to select an optimal policy from a search space of 2.9 x 1032 image transformation possibilities.

AutoAugment是能為電腦視覺資料集設計自定義的資料擴增策略的一種自動化方法。例如,導引如何選擇基本圖像的轉換作業,像是水平或垂直翻轉圖像、旋轉圖像及改變圖像的顏色⋯⋯等等。AutoAugment不僅能預測到要結合哪一種圖像轉換法,還能預測每張圖像的概率,還有圖像轉換的強度,所以圖像不再使用同一種方法來調整。自動擴增技術能從高達2.9 x 1032   種圖像轉換可能性的搜尋空間中找到一個最佳策略。

 

AutoAugment learns different transformations depending on what dataset it is run on. For example, for images involving street view of house numbers (SVHN) which include natural scene images of digits, AutoAugment focuses on geometric transforms like shearing and translation, which represent distortions commonly observed in this dataset. In addition, AutoAugment has learned to completely invert colors which naturally occur in the original SVHN dataset, given the diversity of different building and house numbers materials in the world.

AutoAugment能根據正在處理的資料集,學習到不同的圖像轉換方式。例如,針對street view of house numbers(SVHN)這套資料集中的圖像,因其中包含真實場景圖像中的各種數字,自動擴增技術便聚焦於幾何轉換,像是歪斜和位移,代表這個資料集中常見的資料失真情況。此外,自動擴增技術已完整學會如何將顏色反轉,而這樣的情況在原始的SVHN資料集中相當常見,原因是考慮到真實世界中的各種不同的建築物和房屋門牌號碼材質。

圖2

 

On CIFAR-10 and ImageNet, AutoAugment does not use shearing because these datasets generally do not include images of sheared objects, nor does it invert colors completely as these transformations would lead to unrealistic images. Instead, AutoAugment focuses on slightly adjusting the color and hue distribution, while preserving the general color properties. This suggests that the actual colors of objects in CIFAR-10 and ImageNet are important, whereas on SVHN only the relative colors are important.

在處理CIFAR-10ImageNet這兩個資料集時,AutoAugment技術就不會使用歪斜,因為這兩個資料集通常未包括歪斜物體的圖像;它也不會去反轉顏色,因為這樣會導致圖像失真。相反地,AutoAugment技術聚焦於微調顏色和色調分佈,同時還能保留一般顏色屬性。這意味在CIFAR-10和ImageNet中,物體的實際顏色很重要,而在前面提到的SVHN資料集中,重要的只有相對的顏色。

圖3

 

Results
Our AutoAugment algorithm found augmentation policies for some of the most well-known computer vision datasets that, when incorporated into the training of the neural network, led to state-of-the-art accuracies. By augmenting ImageNet data we obtain a new state-of-the-art accuracy of 83.54% top1 accuracy and on CIFAR10 we achieve an error rate of 1.48%, which is a 0.83% improvement over the default data augmentation designed by scientists. On SVHN, we improved the state-of-the-art error from 1.30% to 1.02%. Importantly, AutoAugment policies are found to be transferable — the policy found for the ImageNet dataset could also be applied to other vision datasets (Stanford CarsFGVC-Aircraft, etc.), which in turn improves neural network performance.

運用AutoAugment技術的成果

針對一些最知名的電腦視覺資料集,我們的AutoAugment演算法找出一些擴增策略,而當我們把這些策略原則納入神經網路的訓練時,可以產生出最高的準確率。藉由擴增ImageNet的資料,我們獲得83.54%的準確率,排名第一!另外,在擴增CIFAR10的資料時,錯誤率則只有1.48%,相較於由科學家設計的預設的資料擴增法,錯誤率降了0.83%!而在擴增SVHN的資料時,錯誤率則是由1.30%降至1.02%。重要的是,AutoAugment策略是可轉移的,也就是說針對ImageNet資料集找出的策略原則也用在其它電腦視覺資料集(例如,Standford CarsFGVC-Aircraft⋯⋯等等。)藉此改善神經網路的效能。

 

We are pleased to see that our AutoAugment algorithm achieved this level of performance on many different competitive computer vision datasets and look forward to seeing future applications of this technology across more computer vision tasks and even in other domains such as audio processing or language models. The policies with the best performance are included in the appendix of the paper, so that researchers can use them to improve their models on relevant vision tasks.

很高興看到我們的AutoAugment演算法在許多不同的電腦視覺資料集中,能有這麼高水準的效能;並且我們期待,未來這項技術能橫跨更多電腦視覺專案,甚至被應用於其它領域,例如音訊處理或語言模型。效能最好的的擴增策略已包含在這篇論文附錄中,研究者可藉此改善他們的視覺專案模型。

 

備註:如果您想要購買AI人工智慧相關產品,歡迎洽詢機器人王國商城,謝謝。

 

相關文章

[ 影片 ] 2018.11.01- CAVEDU觀點:如何看AI與科技教育(完整版)

拍攝

宗諭

剪輯、後製

怡婷

資料提供

豐智

製作協助

皇甫、鈺莨

主講人

阿吉老師曾吉弘

 

 

 

在這一集的「CAVEDU觀點」中,我們探討的主題是:AI與科技教育

總共有以下幾個重點:

 

  1. CAVEDU如何看AI人工智慧教學?(約開始於0:22)

  2. 科技教學方式一直改變,該怎麼辦?(約開始於2:35)

  3. CAVEDU如何設計課程?(約開始於4:53)

  4. CAVEDU如何在課程中導入AI人工智慧?(約開始於5:50)

  5. CAVEDU如何把AI人工智慧落實在大學、高中課堂上(約開始於6:30)

  6. 使用AI人工智慧進行視覺辨識,和使用OpenCV有何不同?(約開始於7:14)

  7. 設計樹莓派AI無人車的核心理念?(約開始於8:43)

  8. 什麼是邊緣運算?(約開始於9:32)

  9. 為何邊緣運算結合AI相關應用適合教學場域?(約開始於10:32)

  10. Intel Movidius神經運算棒介紹(約開始於10:51)

  11. 人工智慧實務工作坊(AGV)介紹(約開始於12:55)

 

重點相當多,讀者們可以根據自己想觀看的內容,選擇段落:

 

也歡迎大家訂閱我們的YouTube頻道,接收來自教育現場的AI與科技教育的訊息,謝謝。

 

相關文章

[ 影片 ] 2018.10.26- 阿吉老師線上講堂:CAVEDU教育團隊如何看AI與科技教育(上)

拍攝

宗諭

剪輯、後製

怡婷

資料提供

豐智

製作協助

皇甫、鈺莨

 

AI人工智慧的領域涵蓋廣泛,科技和教育的關鍵字每年都不斷更新、改變,究竟我們要怎樣學習,還有如何教育我們的學生、孩子,才能跟得上時代趨勢???歡迎夥伴們一起來看阿吉老師的影片分享:長期深耕科技教育的CAVEDU教育團隊,如何看AI與科技教育?

歡迎轉載、分享,謝謝。

 

相關文章

[ 介紹文 ] 2018.10.22- 7大關鍵特點,帶您認識CAVEDU的人工智慧課程與教具RKCar

文字整理

宗諭

照片

CAVEDU教育團隊

資料提供

豐智

審閱

CAVEDU教育團隊

 

AI時代已然來臨,各行各業的專業人士皆不斷思考如何將人工智慧應用至該領域。而身為教育工作者的您,也許正籌劃構思如何將AI引入教育現場,讓學生能更輕鬆、容易地學習人工智慧。

 

近兩年來,積極投入、規劃、執行AI教育的我們,目前提供給您最佳的解決方案是它:

 

樹莓派神經網路自走車套件(RKCar)

圖1

 

或許您想問:「這台車和一般的自走車有何不同?」好問題!如果只看外觀和硬體規格,還真沒什麼了不起的不一樣。然而,最大的不一樣是:

 

我們提供配套的教學方案,

保證能執行而且一定玩真的!

 

怎麼說?以下七大關鍵特點是我們AI課程教材的保證:

1.課程內容保證務實,不須擔心課程後續服務。

 

2.實戰課程記錄豐富,合作開課單位包括:微軟技術中心、INTEL、淡江大學、金門大學、新興科技教師增能工作坊⋯⋯等等,且課程邀約持續增加中。

 

3.直譯式Python,程式碼一定看得懂。

 

4.覺得AI很難嗎?我們帶您直接使用免費雲端AI玩應用。

 

5.透析AI大腦,帶您一探神經網路模型。

 

6.有效增加AI資料集的辨識力。

 

7.邊緣運算即刻辨識,不須網路也能完成課程。

 

以下是我們最新出爐、熱騰騰的課表,請參考:

人工智慧主題課程

教學目標:

  • 學習基礎Linux系統

  • 學習單板電腦硬體控制

  • 學習基礎模式識別、影像辨識

  • 結合雲端AI快速設計應用

  • 瞭解、實作AI神經網路運算

  • 瞭解、實作智慧邊緣、邊緣運算

教學內容

課程主題

學習內容

分配時數

備註

(一)樹莓派基礎學習

1.

基礎LINUX指令

2.

基礎Python應用

3.

基礎網路與遠端控制

12

使用Raspberry Pi

(二)硬體控制與影像處理

1.

樹莓派腳位控制

2.

Opencv基礎影像與人臉識別

3.

輪型機器人、機械手臂控制

12

使用Camera、RKCar、機械手臂

(三)雲端AI辨識

1.

情緒識別

2.

天氣預報

3.

語音助理

4.

聊天回話

5.

結合社群軟體應用

18

使用網際網路、Camera、麥克風、喇叭

(四)神經網路運算1

1.

不規則符號辨識

2.

資料集收集與分類

3.

資料預先處理與標記

12

使用攝影機、麥克風

(五)神經網路運算2

1.

訓練與輸出AI模型

2.

評估AI模型與應用

3.

提升AI的辨識能力

12

使用攝影機、麥克風

(六)物聯網邊緣運算

1.

如何使用雲端進行深度學習運算

2.

如何使用終端進行神經網路推理

3.

交通號誌、年齡、街道、生物、等範例應用

4.

如何加速神經網路推理

5.

如何設計人工智慧系統

12

神經運算棒

教學方法:

  • 以實作課程為主、知識授課為輔,配合當代科技應用發展,使課程盡可能以主題實作,與生活結合、廠商常使用的工具,以簡單易學為入門,了解當代科技應用的實作流程,帶給學生實體感,課後可深入學習相關技術

教學資源:

(一)教師研習營、業師教學、主題教學。

(二)相關書籍、講義、線上實作教學文章。

 

文章至此,如果您想更深入了解我們的「人工智慧」主題課程,或是洽詢上課時間,歡迎E-mail:service@cavedu.com

 

接下來,我們將透過一張圖片,向您詳細介紹RKCar的幾項特點:

圖2

 

結語

AI時代,需要有符合時代潮流的教具!RKCar套件化的構成,搭配經過多次實戰驗證的人工智慧主題課程,相信能帶給學生、學員,循序漸進且切入AI學習關鍵點的上課題驗!如果想直接入手RKCar,請洽機器人王國商城,謝謝。

 

相關文章

[ 翻譯 ] 2018.10.12-根據TensorFlow團隊,TensorFlow將於2020年1月起,停止支援Python 2

原文作者

TensorFlow團隊

圖片

截圖自https://python3statement.org/

網站,特此致謝!

翻譯宗諭審閱鈺莨
說明

感謝TensorFlow團隊的授權翻譯,特此致謝!

 

以下公告由Martin代表TensorFlow團隊發佈:

 

程式語言Python的開發者們,將於2020年1月1日停止支援Python 2.7(詳見此文)。

 

因此,TensorFlow專案也將停止支援Python 2,當Python 2的上游支援終止於2020年。在2020年1月1日後,團隊針對TensorFlow所有原始碼的改變,將不再需要相容於Python 2。總之,TensorFlow可能自2020年起,不再適用於Python 2。

 

這樣的改變將可簡化我們的程式碼,並且可使用Python 3.x標準函式中的新功能。

 

備註:如果您想購買AI人工智慧相關產品,歡迎洽詢機器人王國商城,謝謝。

 

相關文章

[ 翻譯 ] 2018.10.09- TensorFlow團隊發佈最新的TensorFlow模型最佳化工具包,一起來看看!

原文作者

TensorFlow團隊

圖片TensorFlow團隊提供

主題圖片:Designed by Freepik

翻譯宗諭審閱阿吉老師
說明

感謝TensorFlow團隊的授權翻譯,特此致謝!原文請見這裡

 

We are excited to introduce a new optimization toolkit in TensorFlow: a suite of techniques that developers, both novice and advanced, can use to optimize machine learning models for deployment and execution.

我們很高興向大家介紹:新的TensorFlow最佳化工具包,它包含了一整套的技術,不論您是入門或進階開發者都可運用這套工具包來最佳化機器學習模型的部署與執行。

 

While we expect that these techniques will be useful for optimizing any TensorFlow model for deployment, they are particularly important for TensorFlow Lite developers who are serving models on devices with tight memory, power constraints, and storage limitations. If you haven’t tried out TensorFlow Lite yet, you can find out more about it here.

我們期待這個工具包對於部署任何TensorFlow模型,都能做到最佳化,然而,這個工具包對TensorFlow Lite的開發者來說尤其重要!因為,TensorFlow Lite的開發者需要在裝置上運作模型,這些裝置不論在記憶體、電源與儲存容量上都更為吃緊。如果您尚未試用過TensorFlow Lite,可在這裡了解更多相關資訊。

 

The first technique that we are adding support for is post-training quantization to the TensorFlow Lite conversion tool. This can result in up to 4x compression and up to 3x faster execution for relevant machine learning models.

這個工具包加入的第一項技術是針對TensorFlow Lite轉換工具的訓練後量化(post-training quantization)功能。針對相關的機器學習模型,這項技術最高可達到4倍的壓縮率,並使執行速度最高加快3倍。

 

By quantizing their models, developers will also gain the additional benefit of reduced power consumption. This can be useful for deployment in edge devices, beyond mobile phones.

藉由量化模型,開發者也將因電源功耗減少而得到額外益處。這有助於部署模型在非手機範圍的邊緣裝置上。

 

Enabling post-training quantization

The post-training quantization technique is integrated into the TensorFlow Lite conversion tool. Getting started is easy: after building their TensorFlow model, developers can simply enable the ‘post_training_quantize’ flag in the TensorFlow Lite conversion tool. Assuming that the saved model is stored in saved_model_dir, the quantized tflite flatbuffer can be generated:

啟用訓練後量化

訓練後量化技術已被整合至TensorFlow Lite轉換工具中。如何開始使用呢?很簡單!在建立TensorFlow模型後,開發者只要在TensorFlow Lite轉換工具中啟用「post_training_quantize」旗標就可以了。假設我們把模型放在saved_model_dir 這個資料夾中,就能產生量化後的「tflite flatbuffer」:

converter=tf.contrib.lite.TocoConverter.from_saved_model(saved_model_dir)
converter.post_training_quantize=True
tflite_quantized_model=converter.convert()
open(“quantized_model.tflite”, “wb”).write(tflite_quantized_model)

 

Our tutorial walks you through how to do this in depth. In the future, we aim to incorporate this technique into general TensorFlow tooling as well, so that it can be used for deployment on platforms not currently supported by TensorFlow Lite.

我們的教學文件會詳細告訴您關於「訓練後量化」這項技術。未來,我們希望把這項技術也納入一般TensorFlow工具中,使它能部署於一些目前TensorFlow Lite尚未支援的平台上。

 

Benefits of post-training quantization

  • 4x reduction in model sizes

  • Models, which consist primarily of convolutional layers, get 10–50% faster execution

  • RNN-based models get up to 3x speed-up

  • Due to reduced memory and computation requirements, we expect that most models will also have lower power consumption

「訓練後量化」的效益:

  • 模型大小最高可減少4倍

  • 主要由卷積層所組成的模型,執行速度可加快10%-50%。

  • 以遞迴神經網路RNN為基礎的模型,最高可加速3倍。

  • 由於減低記憶體和低運算的要求日增,我們期待大多數的模型也能做到低功耗。

 

See graphs below for model size reduction and execution time speed-ups for a few models (measurements done on Android Pixel 2 phone using a single core).

關於降低模型大小與提高執行速度,請參考下面幾張圖表(使用Android Pixel 2 單核心手機)。

圖1 Model Size Comparison: Optimized models are almost 4x smaller 模型大小比較:最佳化後,模型大小幾乎小了4倍。

 

圖2 Latency Comparison: Optimized models are 1.2 to 1.4x faster 延遲比較:經過最佳化的模型加速1.2至1.4倍。

 

These speed-ups and model size reductions occur with little impact to accuracy. In general, models that are already small for the task at hand (for example, mobilenet v1 for image classification) may experience more accuracy loss. For many of these models we provide pre-trained fully-quantized models.

執行加速及降低模型大小對準確性影響不大。總體來說,原本就輕量化、專門針對行動裝置任務的模型(例如用於影像分類的mobilenet v1),準確性可能會損失較多。針對前述這些模型,我們提供預先訓練好的全量化模型

圖3 Accuracy Comparison: Optimized models show negligible accuracy drop, except for mobilenets. 準確性比較:除了mobilenets外,其它最佳化後的模型,準確性幾乎沒有降低。

 

We expect to continue improving our results in the future, so please see the model optimization guide for the latest measurements.

我們未來會繼續改良。關於最新的量測結果請參考模型優化教學。

 

How post-training quantization works

Under the hood, we are running optimizations (otherwise referred to as quantization) by lowering the precision of the parameters (i.e. neural network weights) from their training-time 32-bit floating-point representations into much smaller and efficient 8-bit integer ones. See the post-training quantization guide for more details.

「訓練後量化」如何運作?

我們運作最佳化(又稱為量化)的方式,是藉由降低參數的精確性(例如,神經網路權重),使參數的模型訓練時間,從32位元浮點表示法降低為更小也更有效率的8位元整數。如果讀者想更深入了解,請參考「訓練後量化」教學。

 

These optimizations will make sure to pair the reduced-precision operation definitions in the resulting model with kernel implementations that use a mix of fixed- and floating-point math. This will execute the heaviest computations fast in lower precision, but the most sensitive ones with higher precision, thus typically resulting in little to no final accuracy losses for the task, yet a significant speed-up over pure floating-point execution. For operations where there isn’t a matching “hybrid” kernel, or where the Toolkit deems it necessary, it will reconvert the parameters to the higher floating point precision for execution. Please see the post-training quantization page for a list of supported hybrid operations.

這樣的最佳化,將確保在結果模型中精確性降低後的操作定義能符合內核實作,後者在實作混用了定點和浮點數學。這樣可在精確度較低的情況下做到最多的運算,但其中最敏感且精確性較高的模型,通常不會 (或僅微量)因此導致精確度降低,反之如果是純浮點數執行的話,執行速度則有顯著提升。針對非「混合型」內核的運算,或工具包認為有必要,「訓練後量化」會再將參數轉換為較高精度的浮點數。關於「訓練後量化」支援哪些混合運算,請參考「訓練後量化」網頁。

 

Future work

We will continue to improve post-training quantization as well as work on other techniques which make it easier to optimize models. These will be integrated into relevant TensorFlow workflows to make them easy to use.

未來改進

我們將持續改善「訓練後量化」技術,以及其它模型最佳化技術。而這些技術將被整合至相關的TensorFlow工作流程,使大家能夠更方便使用。

 

Post-training quantization is the first offering under the umbrella of the optimization toolkit that we are developing. We look forward to getting developer feedback on it.

這套還在開發中的最佳化工具包中,「訓練後量化」是我們推出的第一項技術。期待收到大家的回饋。

 

Please file issues at GitHub and ask questions at Stack Overflow.

 

請在GitHub提出你們的建議,並請在Stack Overflow詢問問題。

 

備註:若您想購買AI人工智慧相關產品,歡迎洽詢機器人王國商城

 

相關文章

[ AI人工智慧-神經運算 ] 淺談人工智慧實作,開源工具Tensorflow與安裝(Windows篇)

大家在網路、報章雜誌上是不是很常聽到AI人工智慧呢?2018年許多人在研究、開發AI的神經網路運算,您聽過神經網路運算嗎?今天與讀者們快速分享一些AI、神經網路運算資訊,以及我們設計人工神經網路實作課程時,在Windows系統上使用的一些工具。

作者/攝影

CAVEDU教育團隊 徐豐智

文章分類教學技術文
時間30分鐘
成本電腦
難度

**

材料表Window 10 作業系統

說到人工智慧,相關技術的人會想到機器視覺、自然語言⋯⋯等等專有名詞,今天與讀者們分享的AI課程,是神經網路運算的相關實作。

 

Google的Deepmind團隊使用了Alpha GO 挑戰世界棋王獲勝的事,大家還記得嗎?(快速回憶AlphaGO-連結,這項成果該團隊使用的是神經網路運算技術,工具是Tensorflow。Gmail的垃圾郵件判讀、Google相簿臉部識別、Google翻譯,Google在Tensorflow上以Opensource的方式開放出來,大家可按照自己想做的AI案例收集樣本資料,訓練AI判斷的模型。

 

今年九月起,CAVEDU教育團隊與微軟合作設計AI課程(微軟技術中心上機實作課程-人工智慧實務工作坊:故事連結基於這次經驗,與大家分享如何在Windows作業系統下,安裝AI相關工具套件。我們先介紹現在的AI實作上的一些分類,接著是Tensorflow與keras、Opencv等環境安裝教學。

 

淺談人工智慧實作

首先,有幾種與運算效能不強的硬體整合的AI方式(想直接安裝Tensorflow,可跳過這一段)。

 

一、使用物聯網將判斷交給雲端處理,並將處理結果回傳

終端裝置(樹莓派、Linkit7688⋯⋯)負責收集影像、語音資料,將這些影像、語音資料上傳至雲端AI(Google、Azure、IBM bluemix⋯⋯等),雲端AI判斷後,將判斷結果回傳至終端裝置,終端裝置再進行動作。

 

A、微軟認知服務,解析人的年齡、性別、情緒實作教學連結

 

B、Google語音助理的服務,將聲音上傳到Google,交由雲端處理(實作教學連結、影片連結)

 

C、IBM Bluemix服務做TJBOT聊天機器人(實作教學連結)

 

二、使用Opensouce的工具,建立自己的AI專案,訓練AI

建立判斷AI的工具,透過AI工具提供的演算法和判斷方法,收集相關資料(比如說,透過圖片判斷動物園的動物種類),訓練AI,提高AI的的推理能力(從可分別猩猩和大象的差別,提升至可分別猩猩和獼猴的差別)。

 

A、Tensorflow與keras的機器學習工具(相關文章連結)

 

B、Caffe的機器學習工具(相關文章連結)

 

三、邊緣運算、智慧邊緣:

結合訓練的AI,將運算交給終端裝置(手機、樹梅派⋯⋯等等),解決將資料傳給雲端,再回傳資料導致的延遲。(比如說,汽車上的AI,如果因網路不順,導致判斷過慢發生車禍等意外;又或者在製造業使用的機器手臂,判斷過慢導致產線的良率不穩。)

 

A、Nvidia的GPU顯示卡,幫助電腦運算

 

B、Intel的低功耗加速AI推理的運算棒(相關文章連結)

 

在Windows上安裝TensorFlow的環境

我們要開在Windows作業系統上安裝Tensorflow的教學。請將安裝的電腦,額外預留5GB的硬碟容量以安裝相關軟體。

 

安裝順序:

一、安裝Anaconda環境

二、建立獨立的Anacoonda(Python)虛擬環境

三、安裝TensorFlow 、 Keras、Opencv

四、執行手寫辨識範例

 

一、安裝Anaconda環境

對AI初學者來說,安裝TensorFlow環境、使用的套件雜亂,相互不匹配,是第一道難關。但Anaconda可將這件事變得很單純,因為Anaconda除了支援Windows,也支援Mac、Linux作業系統。之後有空,再跟大家分享在Windows App上安裝ubuntu作業系統。

 

請先至Anaconda網站上下載軟體,點選下圖左邊的Windows選項

https://www.anaconda.com/download/

圖1

 

選擇下載的安裝環境,有Python3、2兩種版本。因為許多的AI範例使用Python3,建議使用Python 3。並依照電腦規格,選擇64位元 / 32位元的版本下載。

圖2

 

點選下載的檔案,開始安裝,點選下一步、同意。

圖3

 

圖4

 

選擇是否只安裝在這一個Windows的帳號

圖5

 

決定安裝路徑。因為之後會訓練資料,請讀者們盡量選擇讀寫速度較快的硬碟。

圖6

 

點選加入Windows的環境變數(可不選,能讓Windows的CMD視窗也可以呼叫Anaconda),預設使用Python3.6。

圖7

 

安裝完成後,在開始的列表會出現Anaconda的相關工具。

圖8

 

二、建立獨立的Anacoonda(Python)虛擬環境

Python有許多相依的套件,建議讀者們在做不一樣的Python套件實測試時,可重新建立新的環境,每個新的環境會依照名稱顯示。

 

下圖是我建立兩個環境,分別命名為testlesson1、testtensorflow。

圖9

 

首先,在本機磁碟(C),新增一個資料夾[testAI],以便管理環境中的檔案,點選[Anaconda Prompt]。

圖10

 

圖11

 

指令:移動至資料夾[testAI]

>cd \testAI
圖12

 

指令:建立Anaconda環境

>conda create --name testAI python=3.6 anaconda

 

指令功能:

conda create:建立虛擬環境

-name testAI:環境名稱,取名為testAI

python=3.6:Python的版本為3.6

anaconda:建立環境時,會把Python相關的套件也一起安裝,例如:NumPy、SciPy等常用的套件,也有Jupyter Notebook。

圖13

 

Anaconda會詢問你該虛擬環境是否安裝這些套件,輸入指令y

>y
圖14

 

圖15

 

安裝完成後,您可以用下列兩個指令開啟 / 關閉虛擬環境:

>conda activate testAI

>conda deactivate
圖16

 

若成功開啟虛擬環境,命令列最左方的顯示會由(base)改為(testAI)。

圖17

 

三、安裝TensorFlow 、 Keras、Opencv

接著,我們要安裝一些訓練AI模型的套件,這些都是python相關的套件,您可以用pip安裝,也可以用conda安裝。

 

安裝Python的Tensorflow套件:

>conda install tensorflow
圖18

 

圖19

 

安裝Python的keras套件:

>conda install keras
圖20

 

圖21

 

安裝Python的opencv套件:

>conda install opencv
圖22

 

圖23

 

套件安裝的差不多了。如果您有想要訓練的資料集、執行的程式,可以放在資料夾[testAI]裡。

圖24

 

接著移動至指定的資料夾:

cd ./ms-agv-car-master/keras_source

 

回到上一層資料夾:

cd ..

 

指令功能:

cd .\ai-car\keras_source:移動資料夾到ai-car\keras_source

cd .. :回到上一層資料夾

五、執行手寫辨識範例

最後,我們執行一個訓練資料的手寫辨識範例,確認Tensorflow系統環境都沒有問題。

(資源來自keras中文文檔https://keras-cn.readthedocs.io/en/latest/

 

首先,安裝git套件。

>conda install git
圖26

 

圖27

 

接下來:

1、透過git下載keras的範例

git clone https://github.com/fchollet/keras.git

 

2、移動到範例資料夾

> cd ./keras/examples/

 

3、執行手寫辨識訓練資料,若執行未出現錯誤,恭喜您已安裝成功,可不用等待程式執行完畢,[Ctrl+C]直接跳出訓練畫面

> python mnist_mlp.py
圖28

 

今天的分享至此結束。盼望這篇文章能給讀者們一些幫助,下次見!

 

相關文章

[ 翻譯 ] 2018.09.21- 認識TensorFlow.js,在瀏覽器就能用JavaScript 訓練機器學習模型喔!

原文作者

Josh Gordon  Sara Robinson

圖片

Josh Gordon、Sara Robinson提供

翻譯宗諭審閱阿吉老師
說明

感謝兩位作者的授權翻譯,特此致謝!原文請見這裡

We’re excited to introduce TensorFlow.js, an open-source library you can use to define, train, and run machine learning models entirely in the browser, using Javascript and a high-level layers API. If you’re a Javascript developer who’s new to ML, TensorFlow.js is a great way to begin learning. Or, if you’re a ML developer who’s new to Javascript, read on to learn more about new opportunities for in-browser ML. In this post, we’ll give you a quick overview of TensorFlow.js, and getting started resources you can use to try it out.

 

我們很興奮能向大家介紹TensorFlow.js。TensorFlow.js是一個完全開放原始碼的函式庫,只要運用Javascript與其高階API,就能在瀏覽器中直接定義、訓練並運行機器學習模型。若您本身是一位Javascript開發者,但對機器學習不是那麼熟悉,那TensorFlow.js是一個很好的學習方式。又或者,您是一位對Javascript不太熟的機器學習開發者,請繼續閱讀本文以幫助您深入了解更多關於瀏覽器內機器學習的新契機。在這篇文章中,我們將快速介紹TensorFlow.js,還有您可用來嘗試TensorFlow.js的快速上手資源。

 

In-Browser ML

Running machine learning programs entirely client-side in the browser unlocks new opportunities, like interactive ML! If you’re watching the livestream for the TensorFlow Developer Summit, during the TensorFlow.js talk you’ll find a demo where @dsmilkov and @nsthorat train a model to control a PAC-MAN game using computer vision and a webcam, entirely in the browser. You can try it out yourself, too, with the link below — and find the source in the examples folder.

 

瀏覽器內的機器學習

在瀏覽器客戶端就能直接執行機器學習程式能帶出許多新契機,例如互動式的機器學習!您可以看看TensorFlow開發者大會直播,在關於TensorFlow.js的分享中有一段是@dsmilkov@nsthorat 正demo一個完全跑在瀏覽器中的範例,運用電腦視覺和網路攝影機訓練一個模型以控制小精靈遊戲。您也可以使用下面的連結親自試一下,並在examples資料夾中找到原始程式碼。

 

If you’d like to try another game, give the Emoji Scavenger Hunt a whirl — this time, from a browser on your mobile phone.

 

如果想試試看其他遊戲,可以試試看Emoji Scavenger Hunt ,但這次請使用您手機上的瀏覽器嘗試。

圖1

 

ML running in the browser means that from a user’s perspective, there’s no need to install any libraries or drivers. Just open a webpage, and your program is ready to run. In addition, it’s ready to run with GPU acceleration. TensorFlow.js automatically supports WebGL, and will accelerate your code behind the scenes when a GPU is available. Users may also open your webpage from a mobile device, in which case your model can take advantage of sensor data, say from a gyroscope or accelerometer. Finally, all data stays on the client, making TensorFlow.js useful for low-latency inference, as well as for privacy preserving applications.

 

由使用者的角度來說,在瀏覽器中就能執行機器學習代表不用再安裝任何函式庫或驅動程式了。只要打開網頁就可以執行程式了。此外,它還可支援GPU加速。TensorFlow.js會自動支援WebGL,當GPU可用的時候,它會在背景中加速您的程式。使用者也可透過行動裝置開啟網頁,這樣一來您的模型就能取用手機的感測器資料,例如陀螺儀或是加速度計。最後,所有資料皆保留在客戶端上,使TensorFlow.js既適用於低延遲推論,也適用於需要保護的應用程式。

 

What can you do with TensorFlow.js?

If you’re developing with TensorFlow.js, here are three workflows you can consider.

  • You can import an existing, pre-trained model for inference. If you have an existing TensorFlow or Kerasmodel you’ve previously trained offline, you can convert into TensorFlow.js format, and load it into the browser for inference.

 

  • You can re-train an imported model. As in the Pac-Man demo above, you can use transfer learning to augment an existing model trained offline using a small amount of data collected in the browser using a technique called Image Retraining. This is one way to train an accurate model quickly, using only a small amount of data.

 

  • Author models directly in browser. You can also use TensorFlow.js to define, train, and run models entirely in the browser using Javascript and a high-level layers API. If you’re familiar with Keras, the high-level layers API should feel familiar.

 

我們可以運用TensorFlow.js做些什麼?

若您正使用TensorFlow.js進行開發,以下三個工作流程是您可考慮的:

  • 您可匯入現有、預先訓練好的模型進行推論。若您有一個現有的TensorFlow或Keras模型,您可將其轉換為js的檔案格式,並將其載入至瀏覽器中進行推論。

 

  • 您可以重新訓練一個已匯入的模型。在前面提及的小精靈遊戲範例中,您可使用遷移式學習,透過使用一種叫做「影像再訓練(Image Retraining)」的技術,運用在瀏覽器中收集到的少量數據,做到在離線狀態下也能訓練現有模型。這是一種只需少量資料也能快速訓練精確模型的方法。

 

  • 直接在瀏覽器中建立模型。您也可以用TensorFlow.js,運用Javascript和高階API,直接在瀏覽器內定義、訓練並運作模型。若您熟悉Keras,那麼這些高層API對您來說應該不陌生。

 

Let’s see some code

If you like, you can head directly to the samples or tutorials to get started. These show how-to export a model defined in Python for inference in the browser, as well as how to define and train models entirely in Javascript. As a quick preview, here’s a snippet of code that defines a neural network to classify flowers, much like on the getting started guide on TensorFlow.org. Here, we’ll define a model using a stack of layers.

 

一起來看看程式碼

若您願意,您可直接使用範例教程開始學習。它們展示了如何匯出用Python定義的模型並在瀏覽器中進行推論,還有如何單單使用Javascript定義並訓練模型。很快提一下,以下的程式碼,它定義了一個可以分類花朵的神經網絡,很類似TensorFlow.org上的入門教學。在此用到了多個層來定義模型。

import * as tf from ‘@tensorflow/tfjs’;
const model = tf.sequential();
model.add(tf.layers.dense({inputShape: [4], units: 100}));
model.add(tf.layers.dense({units: 4}));
model.compile({loss: ‘categoricalCrossentropy’, optimizer: ‘sgd’});

 

The layers API we’re using here supports all of the Keras layers found in the examples directory (including Dense, CNN, LSTM, and so on). We can then train our model using the same Keras-compatible API with a method call:

 

這個layers API支援範例目錄中所有的Keras層(包括Dense、CNN、LSTM等等)。接著,只要呼叫對應的方法就可以使用相容於Keras的API訓練模型。以下是這個方法:

await model.fit(
  xData, yData, {
    batchSize: batchSize,
    epochs: epochs
});

 

The model is now ready to use to make predictions:

這個模型已經可以進行預測了:

// Get measurements for a new flower to generate a prediction
// The first argument is the data, and the second is the shape.
const inputData = tf.tensor2d([[4.8, 3.0, 1.4, 0.1]], [1, 4]);

// Get the highest confidence prediction from our model
const result = model.predict(inputData);
const winner = irisClasses[result.argMax().dataSync()[0]];

// Display the winner
console.log(winner);

 

TensorFlow.js also includes a low-level API (previously deeplearn.js) and support for Eager execution. You can learn more about these by watching the talk at the TensorFlow Developer Summit.

 

TensorFlow.js也包括一個低階的API(前身是deeplearn.js),並且支援Eager execution。請參考TensorFlow開發者大會的內容,您就能更深入了解。

圖2 TensorFlow.js API的概述

 

How does TensorFlow.js relate to deeplearn.js?

Good question! TensorFlow.js, an ecosystem of JavaScript tools for machine learning, is the successor to deeplearn.js which is now called TensorFlow.js Core. TensorFlow.js also includes a Layers API, which is a higher level library for building machine learning models that uses Core, as well as tools for automatically porting TensorFlow SavedModels and Keras hdf5 models. For answers to more questions like this, check out the FAQ.

 

TensorFlow.js與deeplearn.js的關聯是什麼?

這是一個好問題!TensorFlow.js是一個為了機器學習而誕生的JavaScript工具生態系,是deeplearn.js的繼承者,而deeplearn.js現在則被稱為TensorFlow.js Core。TensorFlow.js還包括一個Layers API,這是一個更高階的函式庫,能運用Core來建置機器學習模型,它也是一款自動移植TensorFlow SavedModels與Keras hdf5模型的工具。更多類似問題的答案,請參閱FAQ

 

Where’s the best place to learn more?

To learn more about TensorFlow.js, visit the project homepage, check out the tutorials, and try the examples. You can also watch the talk from the 2018 TensorFlow Developer Summit, and follow TensorFlow on Twitter.

 

哪裡最適合學習TensorFlow.js呢?

想更深入了解TensorFlow.js,請到本專案的首頁查看教學,玩玩看各個範例。您還可觀看2018年TensorFlow開發者大會的演講,並在Twitter上關注TensorFlow

 

Thanks for reading, and we’re excited to see what you’ll create with TensorFlow.js! If you like, you can follow @dsmilkov@nsthorat, and @sqcaifrom the TensorFlow.js team on Twitter for updates.

 

謝謝您耐心讀完本文,我們很期待看到您運用TensorFlow.js做出的成果!喜歡的話,可以在Twitter上關注TensorFlow.js團隊的@dsmilkov@nsthorat@ sqcai 等人的帳號來獲得最新消息。

 

備註:若您想購買AI人工智慧相關產品,請洽機器人王國商城,謝謝。

 

相關文章

[ 介紹文 ] 2018.09.13- 從Apple秋季新品發表會,整理Apple目前最新的機器學習應用

文字撰寫

宗諭、阿吉老師

審閱

阿吉老師

照片來源pixabay發表會地點Steve Jobs Theater
發表會時間

2018年9月13日

部分觀點、看法參考自WIRED網站文章:APPLE’S LATEST IPHONES ARE PACKED WITH AI SMARTS  ,特此致謝!

完整看完這次的Apple秋季新品發表會,其中真是有相當多的亮點,包括更強大的Apple watch、最新的A12 Bionic 手機晶片、革新的iPhone照相系統,更為環保的手機生產、製造、回收方式⋯⋯等等。本文將把焦點放在新一代iPhone上所整合的AI人工智慧功能。小編將為讀者們整理出Apple將機器學習功能應用在最新一代iPhone手機上的幾個重點。

圖1 Apple更多將機器學習應用至新一代iPhone上

 

根據小編觀察,Apple在新一代iPhone以自行設計的「A12仿生」手機晶片為基礎整合了更多了機器學習的功能。根據蘋果台灣官網上的資料(https://www.apple.com/tw/iphone-xs/a12-bionic/),這款晶片搭載了一個「神經網路引擎」,每秒能執行五兆次運算來做到「即時的機器學習(Real-time Machine Learning)」。

 

上一段提及的「即時的機器學習」,實際在新一代iPhone上的應用是什麼呢?舉例而言,當小編想使用新一代iPhone照相,當我按下手機上快門後,A12晶片的「神經網路引擎」會快速運作從照片的場景中精確辨識出所要拍攝的人物、臉孔,然後把這項資訊提供給iPhone相機內建的「人像模式」使用,使我們可以在運用「人像模式」拍攝照片完畢後,自由地調整背景虛化。在這裡,真是要給Apple按個讚,因為通常一張照片景深的控制,多半在按下相機快門那一剎那就決定了,現在藉由「神經網路引擎」運用機器學習的技術,可在照片拍攝好後調整背景虛化,的確能夠幫助更多非專業攝影師,拍攝出更具質感、更有創意的照片。

圖2 搭配機器學習的技術,使用者可運用新一代iPhone相機,輕鬆拍攝出具備適合景深的照片。

 

除透過「神經網路引擎」在iPhone上實踐機器學習之外,Apple更首次讓非蘋果的開發人員,可透過Core ML(https://developer.apple.com/documentation/coreml)運用前面提到的「神經網路引擎」。什麼是Core ML呢?簡而言之,它是一個Apple開發的機器學習框架,目的是讓開發者可將機器學習部署至Apple裝置上。這樣的開放、突破將帶出什麼影響呢?預期將會有更多開發者能把機器學習運用到他們所設計的App上,讓使用者在社交、藝術創作⋯⋯等等層面上,有更棒、更豐富的體驗。

 

最後要提到的是,Apple總公司雇用了來自Google的頂尖AI主管John Giannandrea(https://www.apple.com/tw/leadership/john-giannandrea/),擔任機器學習與AI策略的主管,直接向執行長Tim Cook負責。由此可知,Apple加強了在機器學習與AI人工智慧上的發展力道,不僅是開發人員可以運用Apple現有的產品做出更棒的產品,一般使用者也能享受到更好的軟硬體操作體驗。

 

備註:若欲購買CAVEDU自造的AI人工智慧產品,請洽機器人王國商城,謝謝。

 

相關文章

[翻譯] 2018.8.14-根據TensorFlow團隊,TensorFlow 2.0預覽版預計於下半年發佈(繁、簡中文版)

原文作者

Martin Wicke

發佈時間

原文發佈日期:2018年8月14日

翻譯宗諭審閱吉弘
說明

轉載自TensorFlow團隊社群內的公開公告,非常感謝TensorFlow團隊的授權翻譯,特此致謝!

Since the open-source release in 2015, TensorFlow has become the world’s most widely adopted machine learning framework, catering to users and use-cases. In this time, TensorFlow has evolved along with rapid developments in computing hardware, machine learning research, and commercial deployment.

 

自從TensorFlow於2015年以開放原始碼形式發佈後,已成為全球最廣為採用的機器學習框架,提供給廣泛的使用者及案例。時至今日,TensorFlow也隨著運算硬體、機器學習研究及商用部署的快速發展而不斷進化。

 

自从TensorFlow于2015年以开放原始码形式发布后,已成为全球最广为采用的机器学习框架,提供给广泛的使用者及案例。时至今日,TensorFlow也随着运算硬体、机器学习研究及商用部署的快速发展而不断进化。

 

Reflecting these rapid changes, we have started work on the next major version of TensorFlow. TensorFlow 2.0 will be a major milestone, with a focus on ease of use. Here are some highlights of what users can expect with TensorFlow 2.0:

  • Eager execution will be a central feature of 2.0. It aligns users’ expectations about the programming model better with TensorFlow practice and should make TensorFlow easier to learn and apply.
  • Support for more platforms and languages, and improved compatibility and parity between these components via standardization on exchange formats and alignment of APIs.
  • We will remove deprecated APIs and reduce the amount of duplication, which has caused confusion for users.

 

爲回應這股快速變遷的趨勢,我們(TensorFlow團隊)已開始研發TensorFlow下一個主要版本。TensorFlow 2.0將會是重要的里程碑,著眼於讓大家更容易使用。以下是一些使用者可期盼的焦點:

  • Eager execution將會是0版本的中心特色,它能滿足使用者對於實做更棒的程式模型的期待,並且應該會使TensorFlow更易於學習及應用。
  • 支援更多的平台及語言,亦改善了相容性,並且透過交換格式及API調整的標準化,在這些元件中取得平衡。
  • 我們將會移除已棄用的API,並且降低重複性,避免造成使用者混淆。

 

为回应这股快速变迁的趋势,我们(TensorFlow团队)已开始研发TensorFlow下一个主要版本。 TensorFlow 2.0将会是重要的里程碑,着眼于让大家更容易使用。以下是一些使用者可期盼的焦点:

  • Eager execution将会是0版本的中心特色,它能满足使用者对于实做更棒的程式模型的期待,并且应该会使TensorFlow更易于学习及应用。
  • 支援更多的平台及语言,亦改善了相容性,并且透过交换格式及API调整的标准化,在这些元件中取得平衡。
  • 我们将会移除已弃用的API,并且降低重复性,避免造成使用者混淆。

 

We are planning to release a preview version of TensorFlow 2.0 later this year.

 

我們預計於2018年下半年發佈TensorFlow 2.0的預覽版本。

 

我们预计于2018年下半年发布TensorFlow 2.0的预览版本。

 

Public 2.0 design process

Shortly, we will hold a series of public design reviews covering the planned changes. This process will clarify the features that will be part of TensorFlow 2.0, and allow the community to propose changes and voice concerns. Please join developers@tensorflow.org if you would like to see announcements of reviews and updates on process. We hope to gather user feedback on the planned changes once we release a preview version later this year.

 

公開的 TensorFlow 2.0設計程序

簡而言之,我們將針對已在計劃中的更新有一系列的「公開設計評論」。這個過程會說明那些即將納入TensorFlow 2.0中的功能,並且允許社群提出修改且表達關切。若您想得知評論的公告與設計過程的進展,請加入developers@tensorflow.org。一旦預覽版本於2018年下半年發佈之後,我們期盼收到使用者對於計畫中的更新的回饋意見。

 

公开的 TensorFlow 2.0设计程序

简而言之,我们将针对已在计划中的更新有一系列的「公开设计评论」。这个过程会说明那些即将纳入TensorFlow 2.0中的功能,并且允许社群提出修改且表达关切。若您想得知评论的公告与设计过程的进展,请加入developers@tensorflow.org。一旦预览版本于2018年下半年发布之后,我们期盼收到使用者对于计画中的更新的回馈意见。

 

Compatibility and continuity

TensorFlow 2.0 is an opportunity to correct mistakes and to make improvements which are otherwise forbidden under semantic versioning.

 

相容性與連續性

TensorFlow 2.0的發佈是一個改正錯誤的好機會,並且針對在semantic versioning下被禁止的部分作出改善。

 

相容性与连续性

TensorFlow 2.0的发布是一个改正错误的好机会,并且针对在semantic versioning下被禁止的部分作出改善。

 

To ease the transition, we will create a conversion tool which updates Python code to use TensorFlow 2.0 compatible APIs, or warns in cases where such a conversion is not possible automatically. A similar tool has helped tremendously in the transition to 1.0.

 

為減緩過渡時期的衝擊,我們將提供一個轉換工具,它具備兩項功能:(1)更新Python程式碼得以使用相容於TensorFlow 2.0的API;(2)假如轉換無法完全自動完成時,將發出警告。類似的工具在當年轉換到Tensorflow1.0版時可真是幫了大忙呢。

 

为减缓过渡时期的冲击,我们将提供一个转换工具,它具备两项功能:(1)更新Python程式码得以使用相容于TensorFlow 2.0的API;(2)假如转换无法完全自动完成时,将发出警告。类似的工具在当年转换到Tensorflow1.0版时可真是帮了大忙呢。

 

Not all changes can be made fully automatically. For example, we will be deprecating APIs, some of which do not have a direct equivalent. For such cases, we will offer a compatibility module (tensorflow.compat.v1) which contains the full TensorFlow 1.x API, and which will be maintained through the lifetime of TensorFlow 2.x.

 

並非所有的更新皆可全部自動完成。例如以棄用API來說,有些將要被棄用的API並沒有一個直接可對應的應用程式去處理。針對這樣的情況,我們將提供一套相容性模組(tensorflow.compat.v1),包含完整的TensorFlow 1.x API,並且確保它在TensorFlow 2.0的產品週期中被維護。

 

并非所有的更新皆可全部自动完成。例如以弃用API来说,有些将要被弃用的API并没有一个直接可对应的应用程式去处理。针对这样的情况,我们将提供一套相容性模组(tensorflow.compat.v1),包含完整的TensorFlow 1.x API,并且确保它在TensorFlow 2.0的产品周期中被维护。

 

We do not anticipate any further feature development on TensorFlow 1.x once a final version of TensorFlow 2.0 is released. We will continue to issue security patches for the last TensorFlow 1.x release for one year after TensorFlow 2.0’s release date.

 

一旦TensorFlow 2.0最終版本發佈後,就不會在開發任何TensorFlow 1.x的功能了。我們將在TensorFlow 2.0發佈一年之內,針對TensorFlow 1.x的最新版持續提供安全性修正程式(Security Patch)。

 

一旦TensorFlow 2.0最终版本发布后,就不会在开发任何TensorFlow 1.x的功能了。我们将在TensorFlow 2.0发布一年之内,针对TensorFlow 1.x的最新版持续提供安全性修正程式(Security Patch)。

 

On-disk compatibility

We do not intend to make breaking changes to SavedModels or stored GraphDefs (i.e., we plan to include all current kernels in 2.0). However, the changes in 2.0 will mean that variable names in raw checkpoints might have to be converted before being compatible with new models.

 

儲存的相容性

我們無意針對SavedModels或儲存的GraphDefs做出大幅度的修改。(例如,我們想在TensorFlow 2.0中納入所有現行的核心。)然而,在TensorFlow 2.0中的更新代表在原始檢查點中的變數名稱,在順利相容於新模型前可能需要進行轉換。

 

储存的相容性

我们无意针对SavedModels或储存的GraphDefs做出大幅度的修改。 (例如,我们想在TensorFlow 2.0中纳入所有现行的核心。)然而,在TensorFlow 2.0中的更新代表在原始检查点中的变数名称,在顺利相容于新模型前可能需要进行转换。

 

tf.contrib

TensorFlow’s contrib module has grown beyond what can be maintained and supported in a single repository. Larger projects are better maintained separately, while we will incubate smaller extensions along with the main TensorFlow code. Consequently, as part of releasing TensorFlow 2.0, we will stop distributing tf.contrib. We will work with the respective owners on detailed migration plans in the coming months, including how to publicise your TensorFlow extension in our community pages and documentation. For each of the contrib modules we will either a) integrate the project into TensorFlow; b) move it to a separate repository or c) remove it entirely. This does mean that all of tf.contrib will be deprecated, and we will stop adding new tf.contrib projects today. We are looking for owners/maintainers for a number of projects currently in tf.contrib, please contact us (reply to this email) if you are interested.

 

tf.contrib

TensorFlow的contrib模組的規模已超過可在單一版本庫中維護並支援的程度。較大的專案最好是獨立維護,同時我們會讓較小的擴充檔去跟著TensorFlow主線去走。結論是,作為發佈TensorFlow 2.0過程的一部分,我們將停止發佈tf.contrib。我們會在這幾個月之內針對個別擁有者去敲定遷移的細節,包括如何在我們的社群網頁和文件中宣傳您的TensorFlow擴充。針對每一個補充支援模組,我們將採取以下三項措施中的一項:

(a)整合專案進TensorFlow中;

(b)移至另外的版本庫,或

(c)將它整個移除。

這代表所有的tf.contrib未來都不會再使用,並且從今天起就不再允許加入新的補充支援模組專案。我們對目前tf.contrib的某些專案正在徵求維護者,如果您有興趣的話請和我們連繫(announce@tensorflow.org)。

 

tf.contrib

TensorFlow的contrib模组的规模已超过可在单一版本库中维护并支援的程度。较大的专案最好是独立维护,同时我们会让较小的扩充档去跟着TensorFlow主线去走。结论是,作为发布TensorFlow 2.0过程的一部分,我们将停止发布tf.contrib。我们会在这几个月之内针对个别拥有者去敲定迁移的细节,包括如何在我们的社群网页和文件中宣传您的TensorFlow扩充。针对每一个补充支援模组,我们将采取以下三项措施中的一项:

(a)整合专案进TensorFlow中;

(b)移至另外的版本库,或

(c)将它整个移除。

这代表所有的tf.contrib未来都不会再使用,并且从今天起就不再允许加入新的补充支援模组专案。我们对目前tf.contrib的某些专案正在征求维护者,如果您有兴趣的话请和我们连系(announce@tensorflow.org)。

 

Next steps

For questions about development of or migration to TensorFlow 2.0, contact us at discuss@tensorflow.org. To stay up to date with the details of 2.0 development, please subscribe to developers@tensorflow.org, and participate in related design reviews.

 

下一步

針對TensorFlow 2.0的開發或轉的的相關問題,請來信discuss@tensorflow.org 詢問。若想要得知TensorFlow 2.0的最新進度,請訂閱developers@tensorflow.org ,並且參與相關的設計評論,謝謝。

 

下一步

针对TensorFlow 2.0的开发或转的的相关问题,请来信discuss@tensorflow.org 询问。若想要得知TensorFlow 2.0的最新进度,请订阅developers@tensorflow.org ,并且参与相关的设计评论,谢谢。

 

On behalf of the TensorFlow team,

Martin

 

謹代表全體TensorFlow團隊

Martin

 

谨代表全体TensorFlow团队

Martin

 

相關文章

[課程紀錄文] 2018.8.13-14-跟著CAVEDU學AI人工智慧:一堂結合機器學習中的影像辨識及邊緣運算的深度課程

記錄

宗諭

攝影

吉弘

講師

吉弘、豐智

上課地點台灣微軟大樓
課程時間

2018年8月13-14日

8月13至14日,一場AI人工智慧的深度學習課程,在台灣微軟大樓展開⋯⋯。

 

然而,早在課程開始前的一個月,CAVEDU教育團隊這邊的兩位講師:「阿吉老師」曾吉弘與徐豐智,以及與此次課程的相關人員,便已針對這門課程展開緊鑼密鼓地準備。從剛開始針對課程內容進行深入研究、討論;至中期的針對「Microsoft Azure DSVM資料科學虛擬機器」持續調整、設定,並且訓練模型;最後一週與課程各單位間的持續溝通、協調、聯繫,針對上課要使用的RK Car不斷調測,設計、印刷試跑RK Car需用的道路地墊⋯⋯等等。可以說,CAVEDU教育團隊真是為這次課程卯足全勁了!

 

課程的結果也是十分甜美。根據微軟方面人員的統計,參與課程21位學員的AI AGV車皆成功跑車,一個步驟都沒有漏掉。而微軟方面亦十分肯定CAVEDU教育團隊,在這次課程中展現出的專業能力

圖1 講師之一「阿吉老師」曾吉弘

 

圖2 另外一位講師徐豐智(中著紅衣者)

 

回到這門課程,究竟教授給學員的是什麼呢?

 

課程的設計是屬於實務導向,簡而言之,就是訓練無人車達成路牌辨識的目標,等學員訓練好模型後,再至CAVEDU教育團隊設計、製作的地墊上試跑。

圖3 學員讓RK Car在CAVEDU製作的道路地墊上試跑

 

我們運用什麼工具訓練模型呢?答案是微軟的Azure DSVM資料科學虛擬機器。Azure DSVM是一種雲端服務,透過常用於資料分析、機器學習服務及AI訓練的數個熱門工具,預先安裝、設定及測試的Azure虛擬機器映像。

圖4 資料蒐集並訓練模型

 

下圖是課程中使用的無人載具RK Car,車子由CAVEDU教育團隊自造,以Raspberry Pi單板電腦為核心。RK Car上藍色的是Intel Movidius神經運算棒,阿吉老師有向學員們展示Intel的AI模型,透過Movidius的加速,針對道路上各種車輛進行分類,以及街景影像的辨識,例如街道上的人、車牌、摩托車⋯⋯等等。透過Intel Movidius,能使硬體等級沒有非常高的Raspberry Pi單板電腦,以更快速度進行影像辨識。(若欲購買RK Car,請洽機器人王國商城。)

圖5 安裝上Intel Movidius神經運算棒的RK Car

 

下圖是學員們跑車的情況。每位學員的無人載具皆需學會辨識左轉、右轉、停止標示,才能成功完成道路地墊上的試跑。在阿吉老師、豐智及助教的悉心準備、指導下,所有學員皆跑車大成功!

圖6 所有學員順利完成跑車

 

對CAVEDU教育團隊而言,這次課程使我們在AI人工智慧領域又邁進一步。之前我們較著重在「邊緣運算」,也就是將應用程式、資料及服務的運算,由網路中心節點移至網路邏輯上的邊緣節點進行處理。

 

這次,我們實作了機器學習中的影像辨識,並整合剛剛提及的邊緣運算,成功達成一次AI實務的軟硬整合課程。套一句阿吉老師的課後感言:「我想,我們應是最先推出AI實務軟硬整合課程的團隊吧。」歡迎跟著我們一起成長、一起學習AI,微軟將繼續於9月份、10月開課,歡迎點此報名

 

最後,播放一段輪型機器人視角的跑車影片,給各位讀者欣賞。

 

相關文章

[Movidius神經運算棒] 認識與操作Neural Compute SDK:mvNCCheck

作者/攝影曾吉弘
文章分類教學(翻譯)
時間3小時
成本
難度******   (1~10)
材料表
  • Raspberry Pi 3單板電腦
  • Intel Movidius神經計算棒

(Original post from Intel Movidius NCS blog: “Using and Understanding the Neural Compute SDK: mvNCCheck”:https://movidius.github.io/blog/mvNCCheck/

 

Neural Compute SDK Toolkit: mvNCCheck

Intel® Movidius™ 神經運算軟體開發套件(Neural Compute Software Development Kit,NCSDK)包含三套工具,用於幫助使用者順利上手,操作Intel® Movidius™ 神經運算棒(Intel® Movidius™ NCS)。這些工具包含:mvNCCheck,mvNCCompile及mvNCProfile。本文將幫助您更認識mvNCCheck工具程式的運作方式,以及如何將它整合至Neural Compute SDK的整體工作流程中。

圖1

 

使用mvNCCheck的網路會有怎樣的效果呢?

您將學到:

  • 如何使用mvNCCheck tool
  • 如何解釋mvNCCheck的輸出結果

 

您會需要:

  • Intel Movidius Neural Compute Stick 神經運算棒 – 購買請按我
  • 執行Ubuntu 16.04的 x86_64 筆記型電腦

 

如果尚未做過的話,請在您的開發電腦上安裝NCSDK。安裝步驟請參考Intel Movidius NCS Quick Start GuideCAVEDU的Intel Movidius相關文章

 

檢查網路

Step 1:開啟terminal,切換至ncsdk/examples/caffe/GoogLeNet目錄下

Step 2:使用mvNCCheck 來使Intel Movidius NCS上的網路生效。

mvNCCheck deploy.prototxt -w bvlc_googlenet.caffemodel

 

Step 3:完成了!您應該會看到類似下面的畫面訊息:

USB: Myriad Connection Closing.
USB: Myriad Connection Closed.
Result:  (1000,)
1) 885 0.3015
2) 911 0.05157
3) 904 0.04227
4) 700 0.03424
5) 794 0.03265
Expected:  (1000,)
1) 885 0.3015
2) 911 0.0518
3) 904 0.0417
4) 700 0.03415
5) 794 0.0325
------------------------------------------------------------
 Obtained values 
------------------------------------------------------------
 Obtained Min Pixel Accuracy: 0.1923076924867928% (max allowed=2%), Pass
 Obtained Average Pixel Accuracy: 0.004342026295489632% (max allowed=1%), Pass
 Obtained Percentage of wrong values: 0.0% (max allowed=0%), Pass
 Obtained Pixel-wise L2 error: 0.010001560141939479% (max allowed=1%), Pass
 Obtained Global Sum Difference: 0.013091802597045898
------------------------------------------------------------

 

mvNCCheck的功能為何,為何要用到它?

作為NCSDK的一部分,mvNCCheck提供以下三項主要功能:

  • 確保資料從fp32轉為fp16時的正確性
  • 快速確認指定網路是否相容於Intel NCS
  • 對網路各層進行快速除錯

 

確保結果的準確性

為確保結果的正確性,mvNCCheck會比較Intel Movidius NCS 與網路原生框架(Caffe/TensorFlow™)兩者間的推論結果。由於Intel Movidius NCS與NCSDK採用16-bit 浮點數資料,因此必須將收進來的32-bit浮點數資料轉為16-bit。fp32/fp16的轉換過程可能在推論結果中產生minor rounding的問題,這時候mvNCCheck工具程式就很好用了,它可檢查您所使用的網路是否產生正確的結果。

 

首先,mvNCCheck工具程式會讀取網路,並將模型轉換為Intel Movidius NCS可用的格式。接著它會在Intel Movidius NCS上使用網路來推論,也會用網路原生框架(Caffe/TensorFlow)來執行推論。

 

最後,mvNCCheck 會產生一份簡易的報表,比較Intel Movidius NCS與網路原生框架兩者的推論結果。這些結果可用於確認某個神經網路在fp32/fp16轉換後,是否還能產生一定正確性以上的結果。比較結果接下來會詳細討論。

 

判斷網路與Intel Movidius NCS的相容性

mvNCCheck也可用於檢查某個網路是否相容於Intel Movidius NCS。有蠻多原因都會造神經網路與Intel Movidius NCS不相容,其中包括(但不限於)記憶體限制、不支援的層或不支援的神經網路架構。若想了解更多原因,請參考 Intel Movidius NCS documentation website 上關於TensorFlow與Caffe框架的說明。另外,最新的 NCSDK Release Notes也會說明關於SDK的勘誤與最新功能⋯⋯等等。

 

使用mvNCCheck對網路進行偵錯

若您的網路執行不如預期,可運用mvNCCheck來對網路偵錯,只要執行 mvNCCheck 時加上 -in-on 選項即可。

  • -in 選項可讓您將某個節點指定為輸入節點
  • -on 選項可讓您將某個節點指定為輸出節點

使用mvNCCheck並搭配 -in-on 參數,透過逐層分析或二元搜尋分析,比較Intel NCS 與Caffe/TensorFlow的結果,這樣便有機會找出發生錯誤/差異的層。

 

偵錯範例:

假設您的網路架構如下:

  • Input – Data
  • conv1 – Convolution Layer(卷積層)
  • pooling1 – Pooling Layer(池化層)
  • conv2 – Convolution Layer(卷積層)
  • pooling2 – Pooling Layer(池化層)
  • Softmax – Softmax

假設您執行mvNCCheck所取得的結果為nan(並非數字)。請用以下指令搭配 -on  選項來檢查第一卷積層(Convolution layer) “conv1” 的輸出結果:

mvNCCheck user_network -w user_weights -in input -on conv1 

 

若是較大的網路時,使用二元搜尋法將有助於降低找到發生問題的那一層所需的時間。

 

理解mvNCCheck的輸出結果

圖2

 

來看看上述 mvNCCheck 輸出所代表的意義:

  • 綠色方框為Intel NCS的前五項推論結果
  • 紅色方框為原生框架(可能是Caffe或TensorFlow)的前五項推論結果
  • 藍色方框是兩者推論結果的各項比較結果

若想要深入理解這些結果,我們得先了解Intel Movidius NCS與Caffe/TensorFlow的輸出都是儲存在一個tensor中(tensor 要簡單定義的話,就是一個值的陣列)。五項測試都是兩個tensor間的數學性比較。

 

名詞解釋:

  • ACTUAL – 神經運算棒的tensor輸出
  • EXPECTED– 框架(Caffe或TensorFlow)的 tensor 輸出
  • Abs – 計算絕對值
  • Max – 計算一個(或多個)tensor的最大值
  • Sqrt – 計算某數值的平方根
  • Sum – 計算某數值的加總

 

 

最小像素正確度(Min Pixel Accuracy):

本數值代表兩個輸出tensor值之間的最大誤差。

圖3

 

平均像素正確度(Average Pixel Accuracy):

兩個 tensor 數值的均差。

圖4

 

錯誤值百分比:

本數值代表Intel Movidius NCS的tensor值,與框架tensor間的誤差是否超過 2%。

圖5

 

為什麼是2%?這個閾值設定扣掉了來自fp32/fp16轉換後的精度降低的影響程度。

 

Pixel-wise L2 error:

本數值代表整個輸出tensor的約略相對誤差。

圖6

 

將差異加總起來:

將Intel Movidius NCS tensor與框架tensor之間的所有差異加總起來。

圖7

 

沒有輸入的話,mvNCCheck如何進行推論?

在神經網路中進行向前傳遞時,常見的作法是以一個tensor或一個數值陣列作為輸入。如果未指令輸入的話,mvNCCheck使用範圍在 -1 至 1之間的隨機浮點數作為輸入tensor。只要在圖像路徑後加上 “-i” 參數,也可將讓 mvNCCheck 接受圖像輸入。

 

可能發生的錯誤與解決方法

若執行 mvNCCheck 但網路發生錯誤時,可能原因如下:

 

輸入值縮放

某些神經網路要求輸入值得先被縮放(scale)調整過。若輸入未經縮放的話,可能造成Intel Movidius NCS與網路原生框架的推論結論不一致的狀況。

 

使用 mvNCCheck 時,可用–S選項來指定用於縮放輸入值的除數。圖像通常以每個顏色通道數值範圍介於 0 到 255 間的方式儲存。若有個神經網路需要輸入值介於 0.0 到 1.0 之間,請用–S 255選項將所有輸入數值除以255,就可以把它們縮放到 0.0 到 1.0 之間了。

 

  –M 選項可用於對輸入值減去均值。例如,若某個神經網路需要輸入值介於 -1 到 1 之間的話,請同時用–S 128–M 128選項將做到此事。

 

未支援的層

Intel Movidius NCS 並未支援前所有的神經網路架構與層。若執行 mvNCCheck 後看見“Stage Details Not Supported”的錯誤訊息,就代表您所選用的網路需額外處理步驟,或是Neural Compute SDK尚未支援這些層。想知道目前支援哪些層,請參考 Neural Compute Caffe SupportNeural Compute TensorFlow Support 等說明網頁。

 

其他Bug

其他造成不正確結果的可能原因就是bug啦!請來這邊回報吧:Intel Movidius Neural Compute Developer Forum.

 

更多關於mvNCCheck

關於 mvNCCheck 所以有可用的參數,請參考 mvNCCheck 文件頁面

 

延伸閱讀

 

相關文章

[AI 人工智慧應用] MovidiusNCS在PC中設定Ubuntu虛擬機並執行NCSDK(上)

作者

袁佑緣

時間

三小時

難度

***

材料表

前言

為了要能夠在電腦上使用Movidius Neural Computation Stick(NCS), 我們必須在個人電腦上準備一些必要的工具, 例如:Ubuntu 16.04作業系統(目前NCS正式支持的系統版號)以及安裝必要的函式庫NCSDK。

由於一般人的電腦的作業系統都不是Ubuntu16.04, 所以我們必須要在電腦上安裝虛擬機來跑一個虛擬的系統。

以下我們將一步一步的帶各位讀者在自己的電腦上完成詳細的虛擬機設定, 如果是想要直接使用我們已經幫您做完的版本, 請直接跳到 “[Movidius NCS] 如何在PC中設定Ubuntu虛擬機並執行NCSDK(下) 的虛擬機的Import/Export 小節“。

懶人包教學影片可以看這裡,想一步一步自己設定請往下繼續看:

懶人包影片軟體連結,想一步一步自己設定請往下繼續看

1、更多Movidius AI運算連結,請下載2、3、4的檔案

2、VirtualBox軟體安裝檔連結

3、VirtualBox 作業系統懶人包安裝檔, Ubuntu for intel Movidius 神經運算棒 作業系統連結

4、VirtualBox USB2.0、USB3.0 Extension Pack.下載連結

安裝VirtualBox與下載Ubuntu作業系統

首先請先到以下的網址下載VirtualBox虛擬機, 並且根據您的作業系統來選擇要下載的安裝檔, 例如:假設讀者的電腦作業系統是Windows的話, 就在VirtualBox 52.6 platform packages, 就點選”Windos hosts”來下載。

接下來我們還必須要去下載VritulBox Extension Pack, 才能讓虛擬機使用USB3.0的功能。

再來請到以下的網站去下載Ubuntu 16.04系統,

新增虛擬機

下載完成後,請打開Virtualbox,並按下New新增一個虛擬機器。

接下來在Name上打上虛擬機的名稱, 並選擇Type為Linux, 選擇Version為Ubuntu (64-bit),如下圖。

接下來指定記憶體的大小,基本上至少要有2GB會比較夠。

接下來選擇建立一個虛擬的硬碟。

選擇硬碟檔案格式為VDI(VritualBox Disk Image)

指定硬碟維dynamically allocated。

最後指定虛擬硬碟的大小,建議10~15GB,或15GB以上。

設定安裝光碟

完成後在VirtualBox左邊的選單應該可以看到剛剛新增的虛擬機, 如下圖中的ubunutu-NCS, 接下來請按下右鍵,並點選Settings。

先選擇擇Storage, 然後在Optical Device點選光碟小圖示, 並選擇剛剛下載的Ubunutu 16.04安裝光碟。

設定USB Controller

接下來我們要來設定USB界面, 為了要讓虛擬機可以辨識到Movidius的NCS, 請先選擇Enable USB Controller, 並勾選USB 3.0 (xHCI) Controller。 如果不能勾選USB3.0的話,有可能是您沒有安裝前面提過的VirtualBox Extension Pack。

接下來在下面的USB Filter新增USB2跟USB3的設定,如下圖。

網路設定

最後,為了要讓使用者可以使用SSH遠端登入虛擬機中, 我們必須設定一個Port Forwarding的設定。

如下圖,將Host的port 2222轉送到Guset的port 22, 也就是說在讀者的電腦上如果用SSH連線到自己localhost的port 2222, 就會連線到虛擬機中的Ubuntu系統中(一般SSH Server預設是port 22)。

安裝Ubuntu系統

以上的設定都完成後, 請點選向右的箭頭(Start), 將虛擬機開機。

進入Ubuntu安裝光碟後, 請選擇右邊的Install Ubuntu。

接下來選擇Erase disk and install Ubuntu。

按下Continue繼續安裝。

選擇時區設定,如下範例中的台北。

在台灣的話,選擇預設的Keyboard Layout即可。

最後設定一下使用者名稱及密碼。

以上設定完成後, 虛擬機會需要花上一點時間安裝全新的Ubuntu作業系統。

當出現以下的圖示時, 就代表已經安裝完成了, 接下來只要按下Restart Now重新開機即可。

一般來說, 安裝完新的系統後,就會需要退出當初使用的安裝光碟, 不過不用擔心,VirtualBox會自動幫你做完, 所以讀者只要直接按下Enter繼續即可。

虛擬機重開之後, 應該就能夠進到新安裝的Ubuntu作業系統, 請輸入您設定的使用者密碼。

成功登入後, 讀者應該就可以看到如下圖的桌面, 代表已經安裝成功囉!

接下來,請讀者繼續到 [Movidius NCS] 如何在PC中設定Ubuntu虛擬機並執行NCSDK(下)完成剩下的NCSDK安裝設定。

 

相關文章:

[ 報導 ] 2018.2.27-藉由教育與推廣,機器人在產業應用上大進擊,指日可待!!

如果有一天,小七泡咖啡的都變成機器人,我們該怎麼辦!?

 

除了探討機器人應用、機器人教育、機器人推廣之外,

教育,亦是這次在淡江大學舉辦的「教育 X 自造 X 機器人論壇」的主軸,

有分享近期火熱的Micro:bit在中小學的應用,以及大學Maker教育的落實。

一起來看看這次論壇的精彩內容!

作者/攝影宗諭
活動時間2018年2月27日 下午1:30至5:00
活動地點淡江大學守謙國際會議中心

 

淡江大學是南科智慧機器人創新自造基地計畫中,位於北部唯一的衛星基地,因此,自然肩負建設完善機器人自造場域與交流平台的使命。於是,在淡江大學一系列推動計畫中,首先登場的是,2月27日於淡江大學淡水校區守謙國際會議中心舉行的「教育x自造x機器人∞交集」論壇,為後續豐富的課程與競賽等計畫內容揭開序幕。

01-守謙國際會議中心

02-守謙國際會議中心設備新穎

 

1個願景、夢想:當小七賣咖啡的都變成機器人!?

議程中,新漢股份有限公司沈亦中處長提出一個非常遠大的願景,就是機器人取代所有現有人力所進行重複性的事務,使人類生活變得更加美好!他認為,機器人取代人力,將於未來五至十年內發生,幫助人類解決人手無法達成的事。

03-某天早上醒來,小七變成機器人在賣咖啡!?(示意圖)

沈亦中認為,機器人(或機器手臂)的強項在於進行重複性的事務,在這一點上,人無法與機器人競爭;而AI可進行所有有邏輯性的事務,如果是這樣的話,未來,人類的價值在哪裡?經驗,或許是人可以嘗試的路,沈亦中認為,在這一點上,AI、機器人無法取代人類。

04-重複一百遍、一千遍、一萬遍,機器人也不會累。

新漢股份有限公司正在努力的方向,就是培養一群願意用機械手臂進行各種產業應用的人才,幫助他們把程式寫出來。簡單說,就是系統化機器人學教育,讓機器人可以做各種不同事情,例如賣雞排、賣鹹酥雞、做車輪餅、搖手搖茶⋯⋯等等。(口水都快流出來了!)未來,在社會上每個角落,只要是重覆性工作,都可以用機械手臂取代!雖然,目前這只是一個願景,但沈亦中預估,可能在3至5年內,這個現象就會逐步實現在社會上各個角落。

 

除了探討機器人的應用外,這場論壇另一個主軸是:教育。從國中小STEAM教育,一直到大學的Maker教育。

 

1塊板子:Micro:bit的教育現場

麥克Lee土饅頭工坊創辦人李俊德,就介紹近來很火燙的Micro:bit,在STEAM教育上的開展。

05-李俊德(Ted Lee)介紹Micro:bit

 

他舉例,Micro:bit的應用可以與生活經驗連結,像是繪圖小車 計數器⋯⋯等等。

06-Micro:bit小彼特

07-運用Micro:bit製作的繪圖小車(擷取自臉書社團「麥克樂彼特(Micro:bit)太好玩社」,作者為Youmans Yang)

因為Micro:bit的程式並不困難,小編實際看過Ted Lee的介紹後,覺得跟Scratch很類似,同時也可以轉換成JavaScript,可以有很多的變化。因此,可以讓國中小學生充分發想創意,使編程通識教育普及化、縮減數位落差!

08-Micro:bit的程式(擷取自Micro:bit官網)

 

之後,由李俊德等人發起的「大Soobi計畫」,今年還將在3月16日邀請Micro:bit教育基金會新任CEO訪台,並舉辦研討會,大家拭目以待囉!

 

1種教育方式:大學也需要動手做的Maker

淡江大學電機系周建興教授,曾多此與CAVEDU教育團隊合作,他認為,大學也很需要Maker,因為做研究需要一些裝置,就需要Maker,亦即動手並解決問題的人。

09-笑容滿面的周建興教授,與CAVEDU有多次合作經驗。

Maker一定要是工科學生嗎?不一定喔!大學需要Maker來自不同科系,才能激盪出不同火花。以下是周教授實驗室團隊製作出來VR頭盔:

 

 

周教授很重視Maker教育,常帶學生參與亞洲地區的Maker Faire。透過參展,讓學生自信心得到很大鍛鍊與提升,對學生們的人生有很重大影響!以下是他們參加2014東京Maker Faire的一些花絮:

 

 

∞無限創意延伸

淡江大學研發長王伯昌於論壇中指出,未來淡江大學還將舉辦三場機器人相關競賽系列課程,並致力建設完善機器人自造場域及交流平台。盼望此次衛星基地計畫,能在北台灣淡水地區,甚至北海岸地區營造出優良的交流環境,向上培育機器人軟硬整合的設計人才,向下培養學生對機器人的興趣,多方向推廣並營造出具整體性的自造文化。

 

文末彩蛋:Visual components(數位工廠軟體)

在這次論壇中,還介紹了一款數位工廠軟體,名叫Visual components。簡單說,就是工廠老闆的規劃神器,因為這個軟體就像一座虛擬工廠,可以在工廠實體營運前,把想法設備設計出來,然後跑軟體內的數據,看實際讓工廠這樣運作是否可行。小編看了之後,覺得這套軟體蠻實用的,因此介紹給大家,放上軟體網站與相關圖片,請大大們品香!

 

網站:https://www.visualcomponents.com/

10-軟體的介面

 

11-建構起一間虛擬的數位工廠

12-這是「五」力全開、「五」功高強的概念嗎?

 

相關文章: