2018年12月14日 星期五

CUDA driver version is insufficient for CUDA runtime version



問題1: 程式只要 import keras 就會掛掉!!

解法==> conda update keras
                conda update tensorflow


問題2: UDA driver version is insufficient for CUDA runtime version

\Anaconda3\lib\site-packages\tensorflow\python\client\session.py in __init__(self, target, graph, config)
    674     try:
    675       # pylint: disable=protected-access
--> 676       self._session = tf_session.TF_NewSessionRef(self._graph._c_graph, opts)
    677       # pylint: enable=protected-access
    678     finally:

InternalError: cudaGetDevice() failed. Status: CUDA driver version is insufficient for CUDA runtime version



解法==> 就是要讓 cuda driver和 cudnn 匹配. 若是在Anaconda , 因為Anaconda 會去做軟體版本匹配的整合, 所以最簡單的作法就是直接執行  conda update --all


若tensorflow 要使用底層GPU架構,要安裝對應的軟體.

Keras --> Tensorflow --> cuDNN --> CUDA Driver  --> GPU graphic card


cuDNN [1]: The NVIDIA CUDA® Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for deep neural networks. cuDNN provides highly tuned implementations for standard routines such as forward and backward convolution, pooling, normalization, and activation layers. cuDNN is part of the NVIDIA Deep Learning SDK.

CUDA Driver : Driver for NVIDIA graphic card


References:

2018年11月17日 星期六

iPAS 物聯網應用工程師考試



0.) 關於iPAS 物聯網應用工程師考試簡介



1.) IoT 技術架構簡介
    -- IoT 架構: 感知層,網路層,應用層 
-- Cloud computing: IaaS,PaaS,SaaS. BaaS
   -- 物聯網規格標準四大陣營

--Cloud Platform: MediaTek Cloud Sandbox, ARM mbed Cloud,WISE-Paas,Xively, ThingSpeak,..
    -- ARM mbed Connector
     --  ARM mbed OS:
     --  物聯網應用層通訊協定標準比較 CoAP vs MQTT                     
   MQTT Lab:
 
    --IoT Gateway (WSN,IEEE 802.15.4,Zigbee)
   
    -- LPWAN 長距離低功耗通信技術 : NB-IoT vs LoRa

2) 物聯網系統與應用 
  -- 開源硬體介紹
     MPU v.s. MPU  ==> Raspberry Pi v.s. Arduino
  -- 開源軟體規劃與授權規範
      GPL,LGPL,Apache,CC
  -- I/O 通訊與控制方式基礎
     Analog v.s. Digital
     UART:https://www.slideshare.net/itembedded/raspberry-pi-pm25-dust-sensor
     SPI: https://www.slideshare.net/itembedded/spi-interface
     I2C: https://www.slideshare.net/itembedded/i2c-eeprom
     https://www.slideshare.net/itembedded/raspberry-pi-linux-i2c-driver
 
3.)  Quick Overview
  -- 考試準備  https://www.slideshare.net/itembedded/2018-ipas-review
  -- NoSQL-MongoDB https://www.slideshare.net/itembedded/nosqlmongodb-103537729
  -- RFID Project: https://www.slideshare.net/itembedded/rfid-15614650

4.) Youtube Demo:

ARM mbed 物聯網平台實戰(課程節錄)
https://youtu.be/sslJLgOPfCM



ARM mbed Cloud 平台架構簡介
https://youtu.be/GrMD8Me5qg0




IoT Gateway Demo
https://youtu.be/tZFMY5UIG6s



智慧POS機-人臉自動結帳
https://youtu.be/DHTQCF6t1Jw



AIoT智能居家燈控系統
https://youtu.be/Dcz28sASv0w



Control your Raspberry Pi using Line Bot
https://youtu.be/WL2RrYrGB1Q



Iot自動販賣機
https://youtu.be/9jxIuyiIXko



2018年11月7日 星期三

安裝MinGW - Minimalist GNU for Windows




對於不熟悉Linux,又想要用GNU gcc 編譯你的 C code或g++編譯你的C++ code, 你可以在windows上安裝minGW, 使得你的windows也有最小的GNU程式開發工具.


MinGW - Minimalist GNU for Windows

 1.) MinGW 下載 並在windows下進行安裝

MinGW: A native Windows port of the GNU Compiler Collection (GCC), with freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All of MinGW's software will execute on the 64bit Windows platforms.

安裝後, 在windows上將MinGW的執行檔路徑 加入到[Path環境變數]中, 使得gcc這個指令可以被執行。Path 是一個系統變數,可讓您的作業系統從指令行或終端機視窗中尋找所需的可執行檔。

在桌面的電腦圖示按一下滑鼠右鍵 從內容功能表中選擇內容 按一下進階系統設定連結, 可以看到如下的畫面, 就可以修改環境變數



      


在Path 這個變數, 將其變數值加入 C:\MinGW\bin  (此路徑為MinGW你安裝工具的路徑)





此時你可以開啓windows 命令視窗(cmd.exe) , 執行gcc -v , 會顯示gcc版本, 若能正確顯示, 就表示Path已正確指定到gcc 路徑.

2018年11月3日 星期六

[Linux 程式設計] IPC--Message Queue


Linux 程式設計課堂CH8裡的msg1.c跟msg2.c都會出現如下問題
請問一下為什麼msgget會產生失敗??







fprintf(stderr, "msgget failed with error: %d\n", errno);  

errno: 88 是 #define ENOTSOCK 88 /* Socket operation on non-socket */

這錯誤是核心無法建立Message Queue



解決方式:  讓核心支援Message Queue

cd ~/linux-rpi-4.4.y ;  make menuconfig


 ( toolcahin 路徑要設定好且要有 ncurse.h 才行!)     sudo apt-get install libncurses5-dev

[General Setup] --> [POSIX Message Queues] 編進核心內 [*] 或編成核心模組 [M]









更多核心編譯及模組使用, 可參考 嵌入式Linux設計開發 


按講師提供的Linux程式範例, 執行的正常畫面像是這樣, 






2018年10月25日 星期四

安裝jupyter notebook 於Raspberry Pi


1.) 安裝 jupyter notebook 

sudo pip3 install jupyter   

(約等個15分鐘吧..耐心等候)

2.) 讓 jupyter-notebook Server 可從windows連入

==> jupyter notebook --generate-config

#修改 ~/.jupyter/jupyter_notebook_config.py 找到
#c.NotebookApp.ip = ‘localhost'

改成

c.NotebookApp.ip = '0.0.0.0’ 





# 設定瀏覽器登入 jupyter notebook server密碼

==> jupyter notebook password

3.)啓動jupyter-notebook 


sudo jupyter-notebook

如果是root ,則要多加 --allow-root 才能啓動    sudo jupyter-notebook --allow-root     





4.) 在windows上,打開瀏覽器連入

http://192.168.1.252:8888/


Note: 192.168.1.252 為 Pi的Ethernet IP, 也可以用Wi-Fi 的IP連入, 只要那個IP是Windows能連到的即可 (同一個router所配的IP都OK!)

如何查Pi的IP?  請執行ifconfig  ==> 查看Pi網路IP 

(更多Pi 的基礎操作, 請看課程學習 )




 成功登入 jupyter notebook畫面~



 看一下 jupyter notebook kernel 使用的python 版本






2018年10月24日 星期三

工程師不可不知的影像辨識 3 階段



AI 時代中,「#影像辨」是其中一項熱門的應用,在許多產業都可以見到「影像辨」的蹤跡。若你擁有「影像辨」的技術,意味著你所擁抱的機會更大。然而這項技術實際上有許多眉眉角角」影響著專案的成果,如何讓你的「影像辨識」專案的準確率更高呢?更符合你設定的目標呢?

首先在第1個階段,從低階的處理技術進行 #影像預處 (image preprocessing)。由於你所取得的影像資訊可能有尺寸大小不一、雜訊(noise)、對比度差異等問題,而為了增加後續作業的準確率,依據你所取得的影像狀況,你可以用 #OpenCV 這項工具進行 #影像預處理 的工作,像是 #對比度增 #去雜 #尺寸重 等。

接著在第2階段,運用 #OpenCV 進行像是 #影像閾值#形態學轉#Canny邊緣檢#Harris角點檢 等演算法來擷取 #影像特,方便後續的影像處理作業,像是 ##Segmentation) #(#Classifiacation)等。

然後在第3個階段,運用 #Tensorflow#Keras  #AI 工具建立 #深度學#DeepLearning)模型,讓演算法去 #擷取影像特 進行模型訓練,依據結果,在流程中的相應環節進行調整,讓機器實現「#」的目的。

如果你對影像辨識有濃厚的興趣,並且希望學習不是只有聽聽就忘了,而是能真正從影像處理、影像偵測,一直到影像辨識/感知 完整學會與產業接軌的技術,歡迎加入艾鍗的學習行列。

小班制教學 : 與老師一對一的互動,可以讓你的問題可以得到快速解答。
主題式實作演練 : 循序漸進的主題式引導搭配學員上機演練,讓你自然而然地學會關鍵技術,牢牢記住。
完整範例程式碼 : 程式碼均由老師debug(除錯)過,並附詳細解說加上秘技,讓你複習有依據,學習高成效,不會再因為卡關而放棄成就自己的機會。
產業工程師親授 : 學到書本上沒有的知識,賺到老師實務開發的經驗。而且有老師帶著學,學得更快。

別在把人生白白蹉跎掉,你值得更好的未來!
立即預約專業諮詢,請撥(02)2316-7736
=============================
<AI
影像系列課程>
💡AI深度學習與影像辨識 http://bit.ly/2NRDM5a
💡機器人AI視覺整合實務 http://bit.ly/2PMpYFU
💡影像辨識與邊緣運算實戰
 http://bit.ly/2PRvvuK