發表文章

深度學習筆記

 AI>ML>DL AI: Neural Network→DL的祖先 Fuzzy Theory:有程度的變數 Genetic Algorithm:由Evolution(演化) Algorithm而來 量子電腦Quantum Computer:縮小AI體積、加快運算速度 ML學習法: 監督 Supervised learning(最常用):分類、迴歸 非監督Unsupervised learning:聚類 半監督Semi-Supervised learning:少量資料已label 增強 Reinforcement learning:獎賞機制、評估(有交互作用、需有高階設備),用於分類 轉移 Transfer learning:轉移某個已經學好的參數到一個新的模型上使用,用於資料集較少的。 BPNN ,1985年,是multilayer perceptron架構(全連接)+Backpropagation Learning Algorithm(為監督式),可用於非線性分類處理。傳統BP一個神經元只能分2類。 傳統NN/DL: DNN 深度學習(Deep Neural Networks):多層NN 全連結Fully Conected 有很多權重值/參數要訓練 就是有很多隱藏層的BPNN CNN 捲積(Convolutional Neural Networks):抽特徵 Convolution捲積: neighborhood processing 特徵抽取,公式: R=g*f =ΣΣg(i,j)*f(x+i,y+j),g:filter、f:原始訊號。 包含 Convolution 層(feature Extraction)、[ Pooling ](feature Selection)、 Fully connected 層(Classification),前兩層目的在於 降維 。 例如:LeNet5、AlexNet、GoogleNet...... AlexNet :5個捲積產生 feature map ,每個捲積層之後都有一個ReLu非線性啟動層完成非線性轉換。3個池化有 max pooling 和 Average pooling 降低特徵圖的解析度。3個全連接,最後有softmax歸一化指數層(分類機率)。 RNN ( Recurrent Neural Netw

深度學習考古題

圖片
1.請寫出SVM的英文全寫並寫出他的分類概念。 Support Vector Machine,是在分類與迴歸分析中分析資料的監督式學習模型與相關的學習演算法。 2.請寫出Perceptron的學習演算法並說明其特性。 前向式、監督式、做線性可分的處理。 3.請問要使用深度學習來解決問題要考慮那些面向? dataset、model、framework、hardware 4.請寫出AI、ML、DL的差異。 5.請問什麼是Transfer Learning? 轉移式學習,轉移某個已經學好的參數到一個新的model上使用。 6.請依據confusion matrix寫出sensitivity rate、specificity rate和accuracy rate的定義。 sensitivity rate:TP/(TP+FN) specificity rate:FP/(FP+TN) accuracy rate:(TP+TN)/(TP+TN+FN+FP) 7.請寫出CUDA的英文全寫並寫出CUDA的處理程序步驟? Compute Unified Device Architecture 8.請寫出CNN的英文全寫並寫出他的三個重要層與每個層在執行什麼任務。 Convolution Neural Network 捲積層:特徵抽取 池化(Pooling)層:feature selection 全連接層:分類 9.請寫出你對AlexNet的了解。 2012年Image Net挑戰賽冠軍

【AI】Anaconda

圖片
  但沒有下載Pycharm(只有30天免費) [ 動手玩系列 #2] TensorFlow 帶你無師自通成為植物學家 開啟jupyter note新增python,貼上網址內的code,記得修飾一下程式碼。在:後的下一行加入空格(tab)才不會編譯出錯。 但是最後產生No module named 'tensorflow'的錯誤。 5/19更新 安裝tensorflow-gpu 2.4版本 1.事先更新GPU驅動程式 2.下載最新版CUDA(11.7)並安裝 3.對照CUDA版本及系統規格(Win11)下載cudnn(需創帳號) 4.將cudnn壓縮檔內的3個資料夾複製到CUDA的資料夾中(安裝時預設路徑C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7) 5.開啟Anaconda新增新環境(python版本3.9) 6.開啟此環境的Terminal 7.下指令: pip install tensorflow-gpu pip install spyder spyder 8.就會開啟spyder IDE,輸入 import tensorflow as tf print(tf.test.is_gpu_available()) print(tf.config.list_physical_devices('GPU')) 9.RUN後結果出現TRUE,並顯示本機的GPU版本,表示成功抓到GPU 5/21更新 AlexNet 撰寫AlexNet訓練oxflower17時,遇到DNN library is not found,疑似cudnn版本不符。 提示訊息:Loaded runtime CuDNN library: 8.0.5 but source was compiled with: 8.1.0.  CuDNN library needs to have matching major version and equal or higher minor version. If using a binary install, upgrade your CuDNN library.  If building from sources, make sure the library loa

【實習】nodemailer:寄信

參考: W3C-Node.js Send an Email node.js使用nodemailer傳送郵件例項Script   Error: Invalid login: 535-5.7.8 Username and Password not accepted 一開始利用官網範例試做,卻無法登入信箱帳號。 下載 :npm install nodemailer 匯入 :var  nodemailer = require( 'nodemailer' ); createTransport : var  transporter =  nodemailer. createTransport ({   service:  'gmail' ,   auth: {      user:  ' youremail@gmail.com ' , //信箱帳號      pass:  ' yourpassword ' //信箱密碼   } }); mailOptions : var mailOptions = {    from:  ' youremail@gmail.com ' , //寄信者    to:  ' myfriend@yahoo.com ' , //收信者   subject:  'Sending Email using Node.js' , //主旨   text:  'That was easy!' //內容 }; 寄信 : transporter. sendMail (mailOptions,  function (error, info){    if  (error) {     console. log (error);   }  else  {       console. log ( 'Email sent: '  + info. response );   } }); 爬文說需要更改gmail設定: gmail help 在信箱設定→查看所有設定→轉寄和POP/IMAP→開啟POP和IMAP→儲存變更。 後來查詢其他範例(參考2.),將createTransport內新增host: 'smtp.gmail.

【實習】node.js連MSSQL(EXPRESS)

圖片
參考教學: https://dotblogs.com.tw/explooosion/2017/05/28/012745 SQL設定: 先設定伺服器屬性→安全性→伺服器驗證要選擇【SQL Server及Windows驗證模式】 先以windows連線進入,點伺服器底下的安全性資料夾→登入→打開sa的屬性(或點兩下)→【狀態】的【登入】選擇開啟,在【一般】可以設定密碼。 也可新增登入,但使用新增的登入者不確定是否因為有權限問題,使用node.js連不上。 重新以sa連線,新增資料庫,新增資料表,先key一點資料進去以測試。也可附加資料庫,把教學網址的ExpressDemo匯入資料庫。 電腦設定:      win+R輸入指令【compmgmt.msc】開啟電腦管理,點開【服務與應用程式】→【SQL Server組態管理員】→ 【SQL Server服務】→將SQL Server Browser啟動。不想每次重開電腦都手動開啟,可按右鍵→內容→服務→啟動模式改自動開啟。 【SQL Server網路組態】→SQLEXPRESS的通訊協定→啟用TCP/IP(預設port為1433),啟用後須將SQL重新啟動(在伺服器名稱上按右鍵選重新啟動) 建立專案: 建一個新資料夾做專案的資料夾,然後在vscode開啟資料夾,Ctrl+`呼叫PS(PowerShell),輸入指令,下載套件。 npm install npm install mssql 新增檔案(寫API):test.js 匯入套件: const   sql  =  require ( 'mssql' ); 連線設定(config): const   config  = {      "user" :   "sa" ,      "password" :   "12345678" ,      "server" :   "localhost \\ SQLEXPRESS" ,      "database" :   "Foodie" }; 錯誤訊息: sql . on ( 'error' ,  err   => {      c

【實習】React Native

圖片
資料:https://ithelp.ithome.com.tw/users/20129575/ironman/3353(30天用React native製作app!! 系列) 7/5跟著實作: DAY2:下載vscode、node.js *vscode跟VS不同,原本以為一樣,但在VS找不到 React Native Tools 此延伸模組。 DAY3: 安裝Expo CLI 命令列工具:cmd輸入npm install -g expo-cli(要有node.js才能使用npm指令),手機也要在play商店下載Expo才能掃QRcode顯示。 建立空白專案:打開node.js command prompt輸入cd desktop>expo init (專案名稱,如:foodie),連按2下enter(空白專案),等他下載好,就能看到桌面建立一個foodie資料夾的專案。 開啟專案:檔案>開啟資料夾>選foodie>確認,點開APP.js(預設啟動檔,不可以任意改名) 按下control+`(1左邊那個按鈕)呼叫Vscode的終端機並輸入npm start,結果錯誤。 回到node.js command prompt,輸入cd foodie>npm start,成功。 cmd: web: run in web browser: 手機掃QRcode失敗,CONNECTION轉成Tunnel就能成功連到,先等待手機下載好東西(javascript...)才會顯示出和瀏覽器一樣的畫面。 7/16:電腦重灌,重新建立環境 將需要的工具下載回來:node.js、vscode、MSSQL。 一樣先install expo cli,在D槽建立新專案:cmd>d:>expo init foodie 修改app.js的內容,執行npm start可以從iOS、安卓、網頁瀏覽結果。 要有跳頁、下方導覽列,需下載react-navigation/native和react-navigation/stack和react-navigation/bottom-tabs。 官方教學: https://reactnavigation.org/docs/getting-started/ https://reactnavigation.org/docs/stack

【ngrok】簡易架站

圖片
 HTML、JS(利用Onsen UI)、PHP,並用WAMP做虛擬伺服器。 要一進入localhost就顯示自製網頁的首頁(我命名為index.html),拖移到wamp/www,用自己的首頁取代原本的index.php。 首頁的內容有連結就要用"./專案資料夾/要連結的頁面名稱.html(或.php)" 網頁內容寫完後,架站用ngrok。(官網: https://ngrok.com/ ) 註冊帳號(用google帳號登入) 下載ngrok 解壓縮 執行ngrok.exe 在ngrok登入後,在setup頁面,會產生一串token 複製./ 後面的ngrok authtoken .....到ngrok.exe的執行畫面,按enter(不要./) 命令執行成功saved authtoken,換複製ngrok http 80,enter 執行成功後,畫面會跳到下面這樣 Forwarding就是可以連到本機的網址,複製網址到瀏覽器打開就可以連到自己的網站,不論內網外網都可連到。 Ctrl+C取消連線(或關機),要再連就要重新執行ngrok.exe,且會產生不一樣的網址。