路由器是啥?路由器在幹嘛?一篇文章講清楚!
路由器是啥?路由器在幹嘛?一篇文章講清楚! Hello Guys, I’m LukeTseng. 本篇將來介紹什麼是路由器,若本篇文章有誤,歡迎各位指正,若你也喜歡這篇文章,不妨按下愛心跟追蹤我的個人頁面吧! 另外本篇文章主要針對上課內容製作筆記,斟酌參考~ 路由器(Router) 圖片來源:https://www.ithome.com.tw/review/96747 路由器的主要功能是連接不同的網路。 詳細一點,就是一個負責將資料封包(Packets)從一個網路傳送到另一個網路的設備。 來做個比喻: 網際網路(Internet):一顆地球,是一整個世界。 家中網路(LAN:Local-Area Networks 區域網路):一棟大樓。 數據機(Modem):大樓的大門,把外面的路(電話線 / 光纖)連進來。 路由器(Router):大樓裡的收發室管理員。 當外面(網際網路)寄來一封信(資料)時,信封上只寫了大樓的地址(公開 IP)。路由器的工作就是看這封信具體是要給 101 室的 XX(手機),還是 202 室的 YY(電腦),然後精準的把信送到對應的人手上。 如果沒有路...
一些常見的網路操作指令
一些常見的網路操作指令 Hello Guys, I’m LukeTseng. 本篇將來介紹一些常見的網路操作指令,如 ping、nslookup 等等,若本篇文章有誤,歡迎各位指正,若你也喜歡這篇文章,不妨按下愛心跟追蹤我的個人頁面吧! 另外本篇文章主要針對上課內容製作筆記,斟酌參考~ 測試連線、發送封包:ping Windows:預設發送 4 個 ICMP 封包後自動停止。 Linux:預設會持續不斷地每秒發送一個封包,直到按下 Ctrl+C 終止。 封包數量控制 Windows:用參數 -n 指定次數。 1ping -n 10 www.google.com Linux:用參數 -c 指定次數。 1ping -c 10 www.google.com 不斷的 ping Windows 需要再加上 -t 參數才能持續的 ping 別人: 1ping -t www.google.com Linux 預設就是了,所以不用。 封包大小差異 Windows: 預設封包大小 32 bytes。 用 -I 參數指定大小:ping -I 800 www.google.com Linux: ...
【C++】競程筆記:Stack 考題總整理
【C++】競程筆記:Stack 考題總整理 Stack in STL: 先引入標頭檔 <stack>。 建立一個堆疊:stack <T> st;。T 為資料型態。 堆入堆疊:st.push(123);。根據當初宣告的資料型態丟入對應值。 存取堆疊頂端:st.top();。回傳堆疊頂端的值。 移除堆疊頂端的值:st.pop();。 檢查堆疊是否為空:st.empty();。 回傳堆疊大小:st.size()。 :::info 需要特別注意的點:每次要做 pop() 的時候,都要檢查 stack 是否為空,否則會 segmentation fault。 ::: 1. 基礎操作 輔助堆疊:155. Min Stack Problem Source:https://leetcode.com/problems/min-stack/description/ 題目有個函式叫做 getMin(),除 top() 要回傳頂端值外, getMin() 也要回傳堆疊中的最小值。 解法:在現有堆疊 s 的基礎上再多加一個堆疊 ms,表示要存放最小值的堆疊。 在實作 push(...
簡單理解 TCP/IP 模型
簡單理解 TCP/IP 模型 Hello Guys, I’m LukeTseng. 本篇將來介紹 TCP/IP 模型,若本篇文章有誤,歡迎各位指正,若你也喜歡這篇文章,不妨按下愛心跟追蹤我的個人頁面吧! 另外本篇文章主要針對上課內容製作筆記,斟酌參考~ 為什麼要有 TCP/IP 模型? Image Source:TCP/IP Model - GeeksforGeeks 上圖是 OSI 模型與 TCP/IP 模型的對應關係,先只看 TCP/IP 就好。 首先要理解為什麼要有 TCP/IP 模型? 可以試想如果全世界不同語言的人要溝通,是不是要亂成一團?每個人只要各講各的就好了,而電腦也是一樣。mac、Windows 電腦、手機等,硬體設備都不同,為了讓這些設備能彼此傳送資料,所以就需要一套通用的溝通規則。 這套規則的標準,就叫做 TCP/IP 模型。其中 TCP 跟 IP 的意思分別是以下這兩個: TCP:Transmission Control Protocol(負責確保資料送達) IP:Internet Protocol(負責地址與路徑) TCP/IP 是一個分層架構,從...
【C++】競程筆記:二分搜考題總整理
【C++】競程筆記:二分搜考題總整理 二分搜寫法模板 模板一(找精確值): while (left <= right),迴圈結束後 left > right。 模板二(找邊界/答案): while (left < right),通常配合 right = mid 或 left = mid + 1,結束時 left == right。 索引搜尋(Index Search) 標準搜尋入門題(704. Binary Search) Problem Source:https://leetcode.com/problems/binary-search/ 123456789101112131415161718192021class Solution {public: int search(vector<int>& nums, int target) { int left = 0, right = nums.size() - 1; while (left <= right) ...
【Pytorch 深度學習筆記】用 Tensors 表示現實世界的資訊
【Pytorch 深度學習筆記】用 Tensors 表示現實世界的資訊 哈囉大家好我是 LukeTseng,感謝您點進本篇筆記,該篇筆記主要配合讀本 《Deep Learning with pytorch》 進行學習,另外透過網路資料作為輔助。本系列筆記是我本人奠基深度學習基礎知識的開始,若文章有誤煩請各位指正,謝謝! 本篇為 《Deep Learning with pytorch》 這本書第四章 Real-world data representation using tensors 的相關筆記。 處理影像 一張彩色照片是如何用數字表示的? 用張量表示。假設有張 800×600 像素的照片: 每個像素有 3 個顏色通道(Channel):RGB。 整張照片可以表示為形狀為 (3, 800, 600) 的張量。 第一個維度:3 個顏色 Channel。 第二、三個維度:圖片的寬和高。 由於書中範例是使用 imageio Module,但我比較習慣用 PIL,所以以下是 PIL 的範例: 有一張向日葵的圖片我拿來當範例(文章的圖片是壓縮過的,下載原檔執行程式才會是正確結果...
網路常見軟體、協定(FTP、TELNET 等)
網路常見軟體、協定(FTP、TELNET 等) Hello Guys, I’m LukeTseng. 本篇將來介紹 ip-address 跟 mac-address 的原理,若本篇文章有誤,歡迎各位指正,若你也喜歡這篇文章,不妨按下愛心跟追蹤我的個人頁面吧! 另外本篇文章主要針對上課內容製作筆記,斟酌參考~ FTP(File Transfer Protocol) FTP(File Transfer Protocol)直接翻譯就是檔案傳輸協定,專門用來在兩台電腦之間上傳和下載檔案。 假設你在學校寫好程式作業,想傳到家裡的電腦繼續改,就可以用 FTP。 FTP 使用明文傳輸,意思就是資料沒有加密。因此現代比較少單獨使用 FTP,反而搭配 SSH 使用 SFTP(Secure FTP)來加密傳輸。 而 FTP 採用主從式(Client-Server)架構,也就是客戶端對到一台伺服端。有一台主機作為 FTP 伺服器(用來儲存檔案),客戶端則用電腦(用戶端)連線並操作這台伺服器。 接下來 FTP 雙通道設計不像 HTTP 只用一個連線,FTP 同時開啟兩個 TCP 連線: 控制通道(po...
ip address、mac address 的原理
ip address、mac address 的原理 Hello Guys, I’m LukeTseng. 本篇將來介紹 ip-address 跟 mac-address 的原理,若本篇文章有誤,歡迎各位指正,若你也喜歡這篇文章,不妨按下愛心跟追蹤我的個人頁面吧! IP 位址(Internet Protocol Address) IP 位址(Internet Protocol Address)是網路層的邏輯位址(Logical Address),用於網際網路上識別和定位設備。 這個 IP 位址基本上可以想像成是你家的地址,這樣想就好。 而邏輯位址是什麼呢?邏輯位址(Logical Address)在電腦網路和作業系統領域裡,泛指「軟體層級」所使用的、非直接對應硬體的位址。 Image Source:https://medium.com/@lagom247/網路架構-tcp-ip-四層架構-osi七層架構-e2c92c9cdc32 如圖,邏輯位址所在的地方就在網路層(Network Layer)的部分,而在 TCP/IP 架構裡面是網路互連層(Internet Layer)。 與...
什麼是梯度(Gradient)
什麼是梯度(Gradient) 大家好我是 LukeTseng!近期學習機器學習跟深度學習時,遇到一些不懂的名詞,於是我就想將這些名詞各別製作一個筆記彙整起來,以便我日後學習、複習再次閱覽。如果文章有誤煩請各位協助指出,謝謝您點入本篇文章!接下來讓我們開始吧。 Loss Function(損失函數) 損失函數顧名思義就是告訴你這個模型他跑出來的預測數值,與實際數值有多差,若損失函數出來的數值越小,表示這個模型預測數值與實際數值相近(越小越好就對了)。 這邊假設有一個損失函數長這樣子: $$L(x) = (x - a)^2$$ 當中 $x$ 是輸入值,為模型的參數值,而 $a$ 為目標值(ground truth)。 在訓練模型的時候,要怎麼知道輸入值 x 該怎麼調整?這時候就需要梯度(gradient)的概念了。 梯度(gradient) 這邊假設 a = 0,則這樣子 $L(x)$ 就等於 $L(x) = x^2$ 。 而所謂的梯度在一維情況,也就是只有一元的變數時,他就是所謂的切線斜率,也就是函數的變化方向跟速度。 在機器學習中最常見的優化方法就屬 Gradient desc...
Windows PC 電腦 / 筆電在打字時滑鼠鼠標不見?調整 1 功能解決!
Windows PC 電腦 / 筆電在打字時滑鼠鼠標不見?調整 1 功能解決! 大家好我 LukeTseng 啦!近期換了一台新筆電,發現在閱讀文章時怎麼有時候鼠標會莫名的不見,查閱相關資料後,才知道原理是這個問題! 步驟 1:開啟滑鼠內容 按下鍵盤上的 windows 鍵加上 r,開啟「執行」,輸入 control mouse 並按下 enter。 步驟 2:進入指標設定 步驟 3:關閉「打字時隱藏指標」 將以下的選項「打字時隱藏指標」給關閉即可! 簡短的教學就在此結束,感謝您的觀看~記得隨手按顆愛心或是追蹤我唷。
【C++】競程筆記(DP:Top Down & Bottom up)
【C++】競程筆記(DP:Top Down & Bottom up) 程式碼範例參考:NTUCPC Guide,此筆記僅為個人學習用途。 Stack overflow Stack overflow 是一個 IT 論壇,然後在程式當中也會發生這種情形XD,有時候說 Stack overflow 也是一個雙關語。 至於 Stack overflow 是什麼呢?字面上意思就是堆疊溢位,是指程式使用過多的記憶體時導致呼叫堆疊產生的溢位。通常最常見的原因就是因為函式呼叫中使用到遞迴,導致遞迴過深。 遞迴的原理就是使用到了 stack 這個資料結構,每次呼叫會把值堆入堆疊,直到終止條件再將這些值一個一個拿出來。 94 . [Tutorial] 別離太遠 Problem Source:https://oj.ntucpc.org/problems/94 這題可以體會一下什麼叫做 stack overflow。 題目沒有給你 N = 1 跟 N = 2 的情況,但這兩個情況很簡單,稍微推算一下就可以知道方法數了。 N = 1:由於只有一個,所以方法數是 1。 N = 2:有 1 跟 2,...
【Pytorch 深度學習筆記】神經網路的基礎知識與建立神經網路
【Pytorch 深度學習筆記】神經網路的基礎知識與建立神經網路 哈囉大家好我是 LukeTseng,感謝您點進本篇筆記,該篇筆記主要配合讀本 《Deep Learning with pytorch》 進行學習,另外透過網路資料作為輔助。本系列筆記是我本人奠基深度學習基礎知識的開始,若文章有誤煩請各位指正,謝謝! 神經網路(Neural Network, NN)是什麼? 神經網路(Neural Network,簡稱 NN),也稱為類神經網路或人工神經網路(Artificial Neural Network, ANN),是一種模仿人類大腦神經系統運作的計算模型,透過類似「人腦分層結構」中的互連節點或神經元(neuron),來學習、分析並預測各類數據。它使用數學模型來模擬大腦神經元的運作,由大量神經元組成,經由外部輸入資料後,神經網路會調整內部參數來獲得學習結果。 在這邊把神經網路稱作是類神經網路會比較好一些,因為在 AI 的世界中,所建構的神經網路其實是一種非線性的統計模型,他是一個去模仿人類神經網路的東西,所以叫做類神經網路比較沒啥毛病 XD。 神經網路最大的功用是從資料中自...
【Pytorch 深度學習筆記】搞懂什麼是深度學習以及 Pytorch 的基礎
【Pytorch 深度學習筆記】搞懂什麼是深度學習以及 Pytorch 的基礎 哈囉大家好我是 LukeTseng,感謝您點進本篇筆記,該篇筆記主要配合讀本 《Deep Learning with pytorch》 進行學習,另外透過網路資料作為輔助。本系列筆記是我本人奠基深度學習基礎知識的開始,若文章有誤煩請各位指正,謝謝! 深度學習(Deep Learning, DL)是什麼? 深度學習(Deep Learning)是機器學習的一個分支,是一種以人工神經網路為架構、對資料進行表徵學習的演算法。比較通俗一點的說法是說,深度學習可以透過模仿人類大腦的神經網路,讓機器能像人腦一樣進行學習。 至於「深度」這個詞指的是在網路中使用了多層結構,這些多層結構能夠處理更複雜的特徵和模式。 機器學習 vs 深度學習 《Deep Learning with pytorch》這本書中提到深度學習的變革,以及為什麼需要深度學習。 過去機器學習使用的傳統方法高度依賴於特徵工程(feature engineering)這個技術,也就是人工輸入資料的轉換方式,以利於下游演算法產生正確結果。(以下 goog...
【C++】競程筆記(DP:動態規劃)
【C++】競程筆記(DP:動態規劃) 程式碼範例參考:NTUCPC Guide,此筆記僅為個人學習用途。 什麼是動態規劃(DP, Dynamic Programmnig) 動態規劃(Dynamic Programming, DP)是一種解決複雜問題的演算法技巧,核心概念是將大問題拆解成小問題,然後把小問題的答案給存起來,避免重複計算。 DP 的核心精神就是「空間換時間」的概念,會用到記憶法(memoization)的概念去記下小問題。 舉個栗子,在刷題的時候,如果每次遇到相同的計算題,都要重算一遍會很浪費時間,不如把答案記在草稿紙上,在有需要的時候再拿起來複習一下就好了。 爬樓梯問題 爬樓梯問題是每個初學 DP 的人都會遇到的第一道問題。 Problem link : https://oj.ntucpc.org/problems/17 Description : 小明現在需要爬 $N$ 階的樓梯,他可以一次爬一階或兩階,請問他有幾種方法? 舉例來說,假設小明需要爬三階的樓梯,那他有以下三種爬法: 每次都只爬一階,也就是依序爬上第一階、第二階再到第三階。 先爬第一階後,直接一口氣...
【Python 筆記】Matplotlib Pyplot 套件應用(下)
【Python 筆記】Matplotlib Pyplot 套件應用(下) 感謝您點進本篇文章,我是 LukeTseng,該系列主要以筆記加上口語白話形式學習 Python,若文章某處有誤敬請告知,非常感謝。 繪製長條圖以及橫條圖 plt.bar():繪製長條圖。 plt.barh():繪製橫條圖。其中 h 是 horizontal 的意思。 plt.bar() 的語法如下: 12plt.bar(x, height, width=0.8, bottom=None, align='center', color=None, edgecolor=None, linewidth=None, label=None, alpha=None) x: x 軸的座標位置(可以是數字或類別) height: 長條的高度(數值大小) width: 長條的寬度,預設為 0.8(範圍 0~1) bottom: 長條的起始位置,預設為 0(y 軸起始座標) align: 對齊方式,‘center’(中心對齊)或 ‘edge’(邊緣對齊) color: 長條的顏色 ed...






